Zeilenhöhe verändern

Bild

Betrifft: Zeilenhöhe verändern
von: princess11
Geschrieben am: 20.08.2015 09:43:55

Hallo liebe Community :)
Ich bräuchte nochmal eure Hilfe.
Also in meiner Spalte A stehen verschiedene Texte (mit unterschiedlicher Länge). Nun soll ich einen Code schreiben, der wenn in einer Zelle die Textlänge größer als 100 Zeichen ist, die ersten 5 Zellen einer Zeile miteinander verbindet, einen Zeilenumbruch einfügt und die Höhe der Zeile auf 30 ändert.
Also z.B. wenn in Zelle A3 der Text mehr als 100 Zeichen hat, sollen dann die Zellen A3 bis E3 verbunden werden.
So sieht es momentan bei mir aus:
Dim Counter As Integer
Dim laenge As Integer
For Counter = A1 To A20
laenge = Len(Cells(Counter, 1))
If laenge > 100 Then
Rows(Counter).RowHeight = 30
Range(Cells(Counter, 1), Cells(Counter, 5)).Select
Selection.Merge True
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
End If
Next
Der Fehler wird bei mir in der Zeile: Rows(Counter).RowHeight = 30 angezeigt. Vielen Dank für Eure Hilfe :)

Bild

Betrifft: AW: Zeilenhöhe verändern
von: Michael
Geschrieben am: 20.08.2015 17:56:14
Hi Prinzesschen,
das wundert ich nicht, den A1 wird von VBA als nicht deklarierte, ganzzahlige Variable behandelt (A20 übrigens auch), und "neu eingeführte" Variablen habe immer erst mal den Wert 0.
D.h., Du greifst zuallererst auf die Zeile Nr. 0 zu, und die gibt es natürlich nicht.
Abhilfe: entweder Du schreibst:
A1=1
A20=20
For Counter = A1 To A20
oder Du schreibst schlicht:
For Counter = 1 To 20
oder, falls die Zählvariablen in die Zellen A1 und A20 eingegeben wurden:
For Counter = range("A1") To range("A20")
Schöne Grüße,
Michael

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zeilenhöhe verändern"