Clever-Excel-Forum

Normale Version: Zeilenhöhe automatisch verändern wenn bestimmtes Wort vorkommt
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,ich hoffe ihr könnt mir helfen.


Ich verzweifel schon länger an einem Problem.
In einer Exel Tabelle habe ich alle Kunderrechnungen eingetragen. 
Ich sortiere die Rechnungen nach Teilergebnis nach Kunde.
Bis hier her läuft alles ohne Probleme.

Ich muss nun aber unbedingt die Zeilenhöhe in der das jeweilige Teilergebnis steht um ca. den doppelten Wert erhöhen.

Ich will das eigentlich über das Wort "Ergebnis" lösen, welches in jeder entsprechenden Zeile vorkommt, die vergrößert werden soll.
Leider klappt es hinten und vorne nicht.

Hat jemand eine Idee?
Zusätzlich sollte der Text dieser Zeile dann in der Zeile oben ausgerichtet sein damit unten ein Leerraum entsteht...  Huh Huh Huh Huh


Ich komm hier einfach nicht weiter.. 

PS eigentlich wollte ich ja nach jedem Teilergebnis automatisch eine Leerzeile einfügen lassen aber das gestaltet sich anscheinend noch schwieriger.
Hallo,

kannst du zB so lösen:

Code:
Sub Zeilenhoehe()
Dim i As Integer, letzte As Integer

With Sheets("Tabelle1")
   letzte = .Cells(Rows.Count, "B").End(xlUp).Row
   .Rows(i & ":" & letzte).RowHeight = 15
   .Rows(i & ":" & letzte).VerticalAlignment = xlBottom
   For i = 8 To letzte
       If InStr(.Cells(i, "B"), "Ergebnis") > 0 Then
           .Rows(i).Height = Rows(i).RowHeight * 2
           .Rows(i).VerticalAlignment = xlTop
       End If
   Next i
End With
End Sub
Danke. Leider klappt das nicht. Ich bekomme einen Laufzeitfehler gemeldet, der mir sagt dass die Typen unverträglich sind  Undecided
Denkfehler meinerseits. Ersetze

Code:
   .Rows(i & ":" & letzte).RowHeight = 15
   .Rows(i & ":" & letzte).VerticalAlignment = xlBottom
durch
Code:
   .Rows(8 & ":" & letzte).RowHeight = 15
   .Rows(8 & ":" & letzte).VerticalAlignment = xlBottom
Für die Zukunft: "Klappt nicht" und "Laufzeitfehler" helfen nicht beim Helfen. Konkretisiere, welche Zeile den Laufzeitfehler hervorruft, indem du den Code mit F8 schrittweise durcharbeitest.
Moin

Mit einer Pivot-Tabelle sollte das alles möglich sein.
Danke und Verzeihung.
Wenn ich den Code nun mit F8 durcharbeite springt er von Zeile 8 direckt auf Zeile 11 und dann direkt 5 mal von Zeile 12 (Next i) auf Zeile 8 (If InStr...) bei fünften Durchlauf nimmt er sich dann auch die Zeile 9 (.Rows(i) vor und hier wird dann wieder ein Laufzeitfehler (1004) gemeldet.  Undecided

Ich hoffe ich habe es jetzt nicht zu verwirrend beschrieben beschrieben.  


Sub Zeilenhoehe()
Dim i As Integer, letzte As Integer

With Sheets("Tabelle1")
   letzte = .Cells(Rows.Count, "B").End(xlUp).Row

   .Rows(8 & ":" & letzte).RowHeight = 15
   .Rows(8 & ":" & letzte).VerticalAlignment = xlBottom

   For i = 8 To letzte
       If InStr(.Cells(i, "B"), "Ergebnis") > 0 Then
           .Rows(i).Height = Rows(i).RowHeight * 2
           .Rows(i).VerticalAlignment = xlTop
       End If
   Next i
End With
End Sub
Ohne Beispielmappe, die ident aufgebaut ist, wird das wohl nichts.
Hallöchen,

ich versuchs mal ohne Beispieldatei.

Dein Code lautet in der Fehlerzeile
Rows(i).Row = Rows(i).RowHeight * 2

Schon mal
Rows(i).RowHeight = Rows(i).RowHeight * 2
versucht?