Seite 1 von 2

Zellenhöhe an Text anpassen

Verfasst: Sa 21. Mär 2020, 19:38
von Wolfgang
Es gibt in die Option, Text in einer Zelle an die Zellengröße anzupassen. Geht es aber auch umgekehrt? Kann bei fixer(!) Zellenbreite die Zellenhöhe an die Menge der nötigen Textzeilen angepasst werden, wenn Text mit variabler Länge von einer Formel, z.B. SVERWEIS, eingefügt wurde?

Re: Zellenhöhe an Text anpassen

Verfasst: Sa 21. Mär 2020, 20:47
von Helmut_S
Hast du Format -> Zelle -> (Strg+1) Ausrichtung -> Zeilenumbruch schon versucht, oder ist das nicht das Richtige?
Gruß Helmut

Re: Zellenhöhe an Text anpassen

Verfasst: Sa 21. Mär 2020, 21:34
von Wolfgang
Doch, diese Option ist aktiviert. Trotzdem sind die Zellen nach dem Befüllen durch den SVERWEIS manchmal zu niedrig, wenn es mehr als 1 Zeile wird.

Re: Zellenhöhe an Text anpassen

Verfasst: So 22. Mär 2020, 08:03
von Wolfgang
Ich habe eine kleine Demo angehängt, um zu das Problem sichtbar zu machen: trage in die Zelle A8 nacheinander ein:

a1
a2
a3

In der Zelle daneben ist ein indirekter Bezug, der den Text dann einsetzt. Obwohl diese Zelle als Text mit Textumbruch formatiert wurde, ändert sie ihre Höhe leider nicht, wenn es mehr als eine Zeile wird.

Re: Zellenhöhe an Text anpassen

Verfasst: So 22. Mär 2020, 09:10
von Helmut_S
Hallo Wolfgang, deine Beispieldatei verhält sich bei mir korrekt. Mit LO-Calc 6.4.2.2 unter Linux Mint19.3 und openSUSE LEAP 15.1
Ich würde versuchen das LO-Benutzerverzeichnis umzubenennen. Vielleicht ist dort irgendwas korrupt?
Gruß Helmut

Re: Zellenhöhe an Text anpassen

Verfasst: So 22. Mär 2020, 09:19
von Wolfgang
Gut, dann werde ich mal versuchen, zu aktualisieren. Bei mir läuft noch 6.4.0.3. Mal sehen, ob das den Unterschied ausmacht.

Nachtrag: der Versionsunterschied war nicht die Ursache. Die Zelle b8 ändert ihre Höhe nicht automatisch abhängig vom Inhalt.

Nicht, dass wir uns missverstehen: ich meine eine *automatische* Anpassung der Höhe, wenn sich der Inhalt ändert. Manuell kann ich die Höhe natürlich anpassen, wenn ich den Spalt zwischen Tabellenreihe 8 und 9 doppelt klicke.

Re: Zellenhöhe an Text anpassen

Verfasst: So 22. Mär 2020, 09:50
von Helmut_S
Hallo Wolfgang, nein ich habe dich nicht missverstanden, sondern so wie du vorgeschlagen hast, a1, danach a2 und anschließend a3 in Zelle A8 eingegeben, und der jeweilige Text wurde in der Zelle - bei gleichbleibender Zellen-Breite korrekt umgebrochen.
Ich meinte aber das Benutzerverzeichnis von Libreoffice umbenennen. Wo das liegt siehst du in den Optionen unter Pfade.
Das liegt beim mir (unter Linux) unter /home/helmut/.config/libreoffice/4/user. Das kannst du versuchen umzubenennen. z.B. in .../user.bak. Nicht löschen! Zuerst LO vollständig beenden. Es wird beim Start von LO neu angelegt.
Das Aktualisieren auf die letzte Version von Lo (6.4.2.2) halte ich nicht für notwendig, aber du kannst es natürlichg versuchen.
Gruß Helmut

Re: Zellenhöhe an Text anpassen

Verfasst: So 22. Mär 2020, 10:00
von F3K Total
Moin,
wenn du dieses kurze Makro an das Tabellenereignis "Inhalt geändert" hängst, passiert die Anpassung der Zellenhöhe bei Änderung in A8 automatisch:

Code: Alles auswählen

Sub automatic_row_height(event)
    if event.AbsoluteName =("$Tabelle1.$A$8") Then
    thiscomponent.calculateall
    thisComponent.sheets(0).Rows.OptimalHeight = true
    end if
End Sub
Gruß R

Re: Zellenhöhe an Text anpassen

Verfasst: So 22. Mär 2020, 10:12
von Wolfgang
Das Makro ist schon mal hilfreich. :)

Wie muss ich es ändern, damit es in einer Datei mit mehreren Tabellen die aktuelle/aktivierte/vordergründige Tabelle nimmt, und nicht die erste Tabelle?

Re: Zellenhöhe an Text anpassen

Verfasst: So 22. Mär 2020, 10:34
von F3K Total
Hallo,
hier ein Code, der, wenn in den Zellen A8 bis A30 auf dem aktuellen Blatt, bei dem jeweils das Makro an das o.a. Tabellenereignis gebunden ist, etwas geändert wird, die Zeilenhöhe anpasst, Beispiel anbei.

Code: Alles auswählen

Sub automatic_row_height(event)
    if event.supportsService("com.sun.star.sheet.SheetCell") then
        oSheet = thisComponent.sheets.getbyIndex(event.celladdress.Sheet)
        oRange = oSheet.getCellrangeByName("A8:A30")'Wenn in A8:A30 auf dem aktuellen Tabellenblatt etwas geändert wird ...
        oQiS = oRange.queryIntersection(event.RangeAddress)
        if oQiS.count > 0 Then
            thiscomponent.lockControllers
            thiscomponent.calculateall
            oSheet.Rows.OptimalHeight = true
            thiscomponent.unlockControllers
        end if
     endif
End Sub
Gruß R