Clever-Excel-Forum

Normale Version: Automatische Zeilenhöhe plus extra Platz
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

wie der Titel verrät, versuche ich die Zeilenhöhe in meiner Tabelle erst automatisch anzupassen und dann um einen Wert X zu vergrößern damit der Text nicht komplett eingeklemmt steht.
Leider funktioniert das nicht ganz so wie ich möchte. AutoFit klappt noch, nur die Zeilenerhöhung macht nix.

So der Code, wie ich dachte er würde funktionieren.
Code:
    Rows("5:150").AutoFit
    Rows("5:150").RowHeight = Rows("5:150").RowHeight + 20

Und hier mein kompletter Code, falls das mehr bringen sollte. Bitte entschuldigt Form etc. bin noch recht neu in dem Thema VBA, weswegen das ein wenig wild aussehen kann. 20 

Code:
Sub Dispo_NEW()
Dim Tx As String, pos As Integer
Dim c As Range

For Each c In Range(Cells(1, 1), Cells(150, 1))
   Tx = c.Value
   pos = InStr(1, Tx, "AT", vbBinaryCompare)
   If pos Then
       If Mid(Tx, pos, 10) Like "AT########" Then
            c.Characters(pos, 10).Font.Bold = True
            c.Characters(pos, 10).Font.ColorIndex = 43
            c.Characters(pos, 10).Font.Size = 12
       End If
   End If
Next c
    Columns("A").ColumnWidth = 65
    Columns("G:I").ColumnWidth = 8
    Rows("5:150").AutoFit
    Rows("5:150").RowHeight = Rows("5:150").RowHeight + 20
    Columns("C:E").Select
    Selection.EntireColumn.Hidden = True
    Columns("H:H").Select
    Selection.EntireColumn.Hidden = True
    Application.CutCopyMode = False
    Columns("I").Select
    Selection.ClearContents
    Range("I4").Select
    ActiveCell.FormulaR1C1 = "Status"
End Sub

VG
Hi,

bist du dir sicher, dass die Zeilen 5:150 alle gleich groß sind? wenn nein, ist nach Ausführen der Zeile
Code:
Rows("5:150").RowHeight = Rows("5:150").RowHeight + 20
der komplette Bereich nur 20 hoch, da RowHeight bei unterschiedlichen Zeilenhöhen 0 zurück gibt. Du müsstest also eine Schleife über die Zeilen machen:
Code:
Dim Zeile As Range
...
For Each Zeile in Rows("5:150")
    Zeile.RowHeight = Zeile.RowHeight + 20
Next Zeile
ungetestet...
Das mit dem 0-Wert habe ich nicht gewusst. Wurde tatsächlich in keinem der Tutorials/Foren die ich mir angeschaut habe erwähnt. 19

Funktioniert jetzt so, vielen Dank!
Hi,

wenn ich etwas über eine Funktion wissen will, schaue ich als allererstes in die Onlinehilfe. Dazu einfach F1 drücken während er Cursor auf der/dem entsprechenden Befehl/Objekt/Eigenschaft/Methode steht. Und genau dort steht dann:
Zitat:Wenn ein Bereich Zeilen mit unterschiedlicher Höhe enthält, gibt RowHeight möglicherweise die Höhe der ersten Zeile zurück oder gibt Null zurück.