Seite 1 von 1
synchronisation Spaltenbreiten über mehrere Tabellen
Verfasst: Di 13. Okt 2026, 15:29
von vlad_tepesch
Gibt es eine Möglichkeit mehrere (an sich unabhängige) Tabellen so konfigurieren, dass die Spaltenbreiten bei allen Tabellen gleich sind und bei Änderung auch synchron gehalten werden?
zB angenommen, ich hab mehrere Tabellen mit Datenreihen - es sieht hässlich aus, wenn bei jeder die spalten anders breit sind, vor allem, wenn sie im Text nicht weit voneinander Entfernt gesetzt sind.
Re: snchronisation Spaltenbreiten über mehrere Tabellen
Verfasst: Di 13. Okt 2026, 19:56
von karolus
Sollte doch funktionieren wenn du statt mehrerer Tabellen, alles in eine Tabelle packst, und für den Text dazwischen jeweils eine Tabellenzeile zu einer Zelle zusammenfasst?!
Re: snchronisation Spaltenbreiten über mehrere Tabellen
Verfasst: Mi 14. Okt 2026, 10:01
von vlad_tepesch
das wäre aber schon ein ziemlich ekliger hack, da man ja vor der eigentlichen Tabelle leerzellen einbauen müsste, um die Einrückung der Tabelle auf mittig manuell zu bewerkstelligen
Und es scheitert spätestens dann, wenn man verschiedene Tabellentypen hat, die untereinander gleich sein sollen, aber zueinander inkompatibel sind.

- Screenshot 2026-10-14 100214.png (38.77 KiB) 609 mal betrachtet
Nebenbei: wie zur hölle bring man writer dazu, die Tabellenbeschriftung linksbündig am Tabellenrahmen auszurichten?
Er klatscht sie immer an den Zeilenanfang. Im Beispiel hab ich die Einzüge der Beschriftungen manuell angepasst
Re: snchronisation Spaltenbreiten über mehrere Tabellen
Verfasst: Mi 14. Okt 2026, 10:40
von karolus
vlad_tepesch hat geschrieben: ↑Mi 14. Okt 2026, 10:01
…
Und es scheitert spätestens dann, wenn man verschiedene Tabellentypen hat, die untereinander gleich sein sollen, aber zueinander inkompatibel sind.
Hast du aber in deinem Eingangsbeitrag
NICHT erwähnt!
Stelle eine Neue Frage im Unter-Bereich
Makroprogrammierung und häng dort eine Beispiel.odt an.
Re: snchronisation Spaltenbreiten über mehrere Tabellen
Verfasst: Mi 14. Okt 2026, 12:18
von F3K Total
Moin,
wie Karolus bereits vorgeschlagen hat, sollte dieses Thema eigentlich im Bereich
Makroprogrammierung behandelt werden, auch ich denke, dass es mit Bordmitteln nicht zu lösen ist.
Nun hat es mich interesssiert und ich habe einen Code geschrieben der:
- Die erste Tabelle als "Mastertabelle" analysiert
- Die Breite, die Ausrichtung, die Spaltenanzahl und die Spaltenbreite der folgenden Tabellen mit der ersten Tabelle synchronisiert, gelöscht werden keine Spalten
- Die erste Tabellenüberschrift analysiert
- Die Ausrichtung dieser Überschrift auf die folgenden überträgt
Anbei nun eine Beispieldatei.
Hier der Basiccode:
Code: Alles auswählen
Sub S_adjust_columns
oTextfieldsenum = ThisComponent.Textfields.CreateEnumeration
while oTextfieldsenum.hasmoreelements
oTextfield = oTextfieldsenum.nextelement
if oTextfield.CurrentPresentation = 1 and oTextfield.variableName = "Table" then 'erstes Tabellenbeschriftungsfeld
nParaadjust = oTextfield.Anchor.Paraadjust 'Ausrichtung erstes Tabellenschriftungsfeld auslesen
endif
wend
oTextfieldsenum = ThisComponent.Textfields.CreateEnumeration
while oTextfieldsenum.hasmoreelements
oTextfield = oTextfieldsenum.nextelement
if oTextfield.variableName = "Table" then
oTextfield.Anchor.Paraadjust = nParaadjust 'Ausrichtung erstes Beschriftungsfeld übertragen
endif
wend
oTexttables = ThisComponent.Texttables
oMasterTable = oTexttables(0) 'erste Tabelle
nOrient = oMastertable.HoriOrient 'Ausrichtung erste Tabelle
nWidth = oMasterTable.Width 'Breite erste Tabelle
nMasterColumnsCount = oMasterTable.columns.count 'Spaltenanzahl
aTableColumnSeparators = oMasterTable.TableColumnSeparators 'Spaltenbreiten erste Tabelle
for i = 1 to oTexttables.count - 1
oTable = oTexttables(i)
nColumnsCount = oTable.Columns.Count
if nColumnsCount < nMasterColumnsCount then
otable.columns.insertbyindex(nColumnsCount,nMasterColumnsCount-nColumnsCount) 'Spalten zufügen falls weniger als erste Tabelle
endif
otable.Width = nWidth 'Breite erste Tabelle zuordnen
oTable.HoriOrient = nOrient 'Ausrichtung erste Tabelle zuordnen
oTable.TableColumnSeparators = aTableColumnSeparators 'Spaltenbreiten erste Tabelle zuordnen
next i
End Sub
Viel Erfolg,
Gruß R