Zeilenhöhe automatisch verändern wenn bestimmtes Wort vorkommt
#1
Question 
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.


Angehängte Dateien Thumbnail(s)
   
Top
#2
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
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • Panzermeyerxx
Top
#3
Danke. Leider klappt das nicht. Ich bekomme einen Laufzeitfehler gemeldet, der mir sagt dass die Typen unverträglich sind  Undecided
Top
#4
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.
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • Panzermeyerxx
Top
#5
Moin

Mit einer Pivot-Tabelle sollte das alles möglich sein.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top
#6
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
Top
#7
Ohne Beispielmappe, die ident aufgebaut ist, wird das wohl nichts.
Schöne Grüße
Berni
Top
#8
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?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste