🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Tabelle: Spalten anfügen, OHNE Breite anderer Spalten zu verändern

WRITER hat alles, was Sie von einer modernen, voll ausgestatteten Textverarbeitung erwarten.
Antworten
volvox
Beiträge: 5
Registriert: Mi 27. Feb 2019, 21:47

Tabelle: Spalten anfügen, OHNE Breite anderer Spalten zu verändern

Beitrag von volvox » Mo 4. Mär 2019, 08:37

Liebe Foren-Kolleg_innen,

meine Frage betrifft einen sehr häufigen Vorgang, ich vermute daher, dass es eine entsprechende Instellung in Writer gibt, habe aber auf Anhieb keine Lösung gefunden.

Problem:
- Ich habe eine Tabelle, die ich nach meinen Vorstellungen formatiert habe.
- Nun möchte ich ganz einfach eine (oder mehrere) Spalten rechts anfügen.
- Mache ich das mittels Einfügen/Spalten rechts, Einfügen/Spalten... oder mit dem entsprechenden Button, wird zwar eine Spalte angefügt, die in ihren Dimensionen derjenigen gleicht, in der ich meinen Cursor stehen hatte;
ABER leider werden automatisch auch die Spaltenbreiten der links der neu eingefügten Spalten verändert.
Das macht mich verrückt, nach jeder Erweiterung einer Tabelle muss ich sie insgesamt neu formatieren - sehr unpraktisch!
Logisch wäre ein solches Verhalten nur, wenn durch die neu angefügten Spalten ein Teil der Tabelle vom Blatt verdrängt würde.

Es ist mir ehrlich gesagt schleierhaft, wie ein solches Verhalten als Default vorgesehen werden konnte,
aber wenn es eine Einstellung gibt, dieses Verhalten einfach zu ändern, sei es mir recht.

Frage:

--> Gibt es also eine Einstellung, mit der ich festlegen kann, dass hinzugefügte Spalten den Rest der Tabelle einfach völlig unverändert lassen; und wo kann ich sie finden?

Ich danke im Voraus für eure Hilfe.

Grüße aus Wien!

Mondblatt24
* LO-Experte *
Beiträge: 3342
Registriert: Fr 3. Mär 2017, 17:12

Re: Tabelle: Spalten anfügen, OHNE Breite anderer Spalten zu verändern

Beitrag von Mondblatt24 » Mo 4. Mär 2019, 09:58

Hallo,
Nun möchte ich ganz einfach eine (oder mehrere) Spalten rechts anfügen.
Spalten werden nicht angefügt, sondern nur in die bestehende Tabelle eingefügt.

Gruß Peter
Win 11 (x64) ▪ LO 25.2.5.1 (x64) ▪ AOO Portable 4.1.15
Wenn Eure Frage zutreffend beantwortet wurde, seid so nett und fügt dem Betreff der Eingangsfrage [GELÖST] hinzu.

Pit Zyclade
* LO-Experte *
Beiträge: 3041
Registriert: Mo 12. Nov 2012, 16:59

Re: Tabelle: Spalten anfügen, OHNE Breite anderer Spalten zu verändern

Beitrag von Pit Zyclade » Mo 4. Mär 2019, 10:06

volvox hat geschrieben:
Mo 4. Mär 2019, 08:37
... Mache ich das mittels Einfügen/Spalten rechts, Einfügen/Spalten... oder mit dem entsprechenden Button, wird zwar eine Spalte angefügt, die in ihren Dimensionen derjenigen gleicht, in der ich meinen Cursor stehen hatte;
ABER leider werden automatisch auch die Spaltenbreiten der links der neu eingefügten Spalten verändert...
...
Dem ist nicht so. Diese Spalte wird ebenfalls schmaler. Übrigens ist es völlig gleich, ob man die Spalte vor oder nach der betreffenden einfügt. Einzig die Tabellenbreite bleibt unverändert. (Jedenfalls stimmt meine Feststellung bei leerer Tabelle.)

Nein, für deinen Wunsch habe ich derzeit auch keine Lösung.
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

volvox
Beiträge: 5
Registriert: Mi 27. Feb 2019, 21:47

Re: Tabelle: Spalten anfügen, OHNE Breite anderer Spalten zu verändern

Beitrag von volvox » Mo 4. Mär 2019, 15:20

@ Pit Zyclade:
Stimmt, du hast, recht, auch die anderen Spalten werden in ihrer Breite verändert.
Schade, dass man das Verhalten diesbezüglich scheinbar nicht festlegen kann; aber vielleicht kommt das ja noch :)
Danke jedenfalls für dein Bemühen.

@ Mondblatt24:
Nun, ich habe das absichtlich so formuliert, um meine Ausgangssituation möglichst genau zu beschreiben (da ich kein Bild raufladen kann);
Anfügen beschreibt, wie ich meine sprachlich korrekt, das Hinzufügen von Spalten an ein Ende einer Tabelle, das Einfügen das Hinzufügen im Binnenbereich einer Tabelle, also an einer Stelle, an der sowohl links als auch rechts mindestens eine Spalte liegt ;)
(Mag sein, dass in der Dokumentation von LO immer nur von Einfügen die Rede ist)

Wie dem auch sei, draußen scheint die Sonne ;)

LG

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Tabelle: Spalten anfügen, OHNE Breite anderer Spalten zu verändern

Beitrag von F3K Total » Mo 4. Mär 2019, 18:30

Hallo volvox,
ich wollte es wissen: Mit folgendem Makro, wird rechts an die Tabelle, in der der Cursor steht, eine 1 cm breite Spalte angehängt,
Beispieldatei anbei.

Code: Alles auswählen

Sub Insert_one_column
    oTexttable = thiscomponent.Currentselection(0).Texttable
    oTexttable.HoriOrient = 3
    nWidth = oTexttable.Width
    nColumnWidth = 1000 '1 cm
    oColumns = oTexttable.Columns
    nCount = oColumns.count
    oTableColumnSeparators = oTexttable.TableColumnSeparators
    dim nPos(nCount-1) as integer
    for i = 0 to uBound(oTableColumnSeparators)
        nPos(i) = oTableColumnSeparators(i).Position * nWidth /(nWidth + nColumnWidth)
    next i
    nPos(i) = 10000 * nWidth /(nWidth + nColumnWidth)'neue Spalte beginnt bei der alten Breite
    oColumns.insertByIndex( nCount, 1)
    oTableColumnSeparators = oTexttable.TableColumnSeparators
    for i = 0 to uBound(oTableColumnSeparators)
        oTCSs = oTableColumnSeparators
        oTCS = oTCSs(i)
        oTCS.Position = nPos(i)
        oTCSs(i)= oTCS
    next i
    oTexttable.Width = oTexttable.Width + nColumnWidth 'Tabelle breiter machen
    oTexttable.TableColumnSeparators = oTCSs 'Spalten wieder ausrichten
End Sub
Damit das Makro laufen darf, stellst du unter Extras/Einstellungen/Openoffice/Sicherheit/Makrosicherheit oder Extras/Optionen/LibreOffice/Sicherheit/Makrosicherheit mindestens die Stufe Mittel ein, dann wirst du beim Öffnen von Dokumenten gefragt, ob du Makros ausführen möchtest.
Gruß R
Dateianhänge
Tabellenspalte_zufuegen.odt
(12.15 KiB) 141-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Tabelle: Spalten anfügen, OHNE Breite anderer Spalten zu verändern

Beitrag von F3K Total » Di 5. Mär 2019, 16:40

Hallo,
hatte ich gestern noch vor, habe es aber nicht mehr geschafft. Folgendes Makro fügt eine Spalte ein, die die verfügbare Seitenbreite exakt ausnutzt, d.h. die Tabelle ist nach dem Einfügen der Spalte genau so breit, wie dier beschreibbare Bereich der aktuellen Seite.
Alle vorigen Spalten bleiben in ihrer Breite erhalten.

Code: Alles auswählen

Sub Insert_one_column
    oSel = thiscomponent.Currentselection(0)
    oTexttable = thiscomponent.Currentselection(0).Texttable
    oTexttable.HoriOrient = 3
    sPageStyle = oSel.PageStyleName
    oStyle = Thiscomponent.StyleFamilies.PageStyles.getbyName(sPageStyle)
    nPW = oStyle.Width
    nPRM = oStyle.RightMargin
    nPLM = oStyle.LeftMargin
    nWidth = oTexttable.Width
    nColumnWidth = nPW - nPRM - nPLM - nWidth
    oColumns = oTexttable.Columns
    nCount = oColumns.count
    oTableColumnSeparators = oTexttable.TableColumnSeparators
    dim nPos(nCount-1) as integer
    for i = 0 to uBound(oTableColumnSeparators)
        nPos(i) = oTableColumnSeparators(i).Position * nWidth /(nWidth + nColumnWidth)
    next i
    nPos(i) = 10000 * nWidth /(nWidth + nColumnWidth)'neue Spalte beginnt bei der alten Breite
    oColumns.insertByIndex( nCount, 1)
    oTableColumnSeparators = oTexttable.TableColumnSeparators
    for i = 0 to uBound(oTableColumnSeparators)
        oTCSs = oTableColumnSeparators
        oTCS = oTCSs(i)
        oTCS.Position = nPos(i)
        oTCSs(i)= oTCS
    next i
    oTexttable.Width = oTexttable.Width + nColumnWidth 'Tabelle breiter machen
    oTexttable.TableColumnSeparators = oTCSs 'Spalten wieder ausrichten
End Sub
Gruß R
Dateianhänge
Tabellenspalte_zufuegen.odt
(12.29 KiB) 158-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten