![]() |
Betrifft: Automatische Zeilenhöhe auf Maximum begrenzen?
von: Schmitty
Geschrieben am: 01.10.2014 08:02:39
Guten morgen zusammen.
In meiner Excel-Liste wird die Zeilenhöhe automatisch nach dem größten Zelleninhalt angepasst. Das ist auch soweit super.
Aber: Kann ich die automatische Zeilenhöhe auf max. 250 Pixel begrenzen?
Gruß
Christian
![]() ![]() |
Betrifft: AW: Automatische Zeilenhöhe auf Maximum begrenzen?
von: yummi
Geschrieben am: 01.10.2014 09:29:19
Hallo christian,
mal exemplarisch für reihe 3:
With Rows("3:3") .AutoFit If .Height > 187.5 Then '187.5 entspricht 250 pixel .RowHeight = 187.5 End If End WithGruß
![]() ![]() |
Betrifft: AW: Automatische Zeilenhöhe auf Maximum begrenzen?
von: Schmitty
Geschrieben am: 01.10.2014 12:48:25
Hallo Yummi,
danke für deine Antwort.
Leider sind jetzt alle Zeilen 187,5 groß, egal wieviel Inhalt in den Zellen steht...
Hier mal mein leicht abgewandelter Code:
' Automatische Zeilenhöhe With Rows("6:2500") .AutoFit If .Height > 187.5 Then '187.5 entspricht 250 pixel .RowHeight = 187.5 End If End WithGruß
![]() ![]() |
Betrifft: AW: Automatische Zeilenhöhe auf Maximum begrenzen?
von: yummi
Geschrieben am: 01.10.2014 13:06:24
Hallo christian,
das liegt daran weil du mit with rows("6:2500" einen gesamtbereich festlegst. wenn du die zeilen einzeln betrachten willst, musst du so etwas machen z.B
for i = 6 to 2500 ' Automatische Zeilenhöhe With Rows(i) 'oder Rows(i & ":" i) .AutoFit If .Height > 187.5 Then '187.5 entspricht 250 pixel .RowHeight = 187.5 End If End With next iGruß
![]() ![]() |
Betrifft: AW: Automatische Zeilenhöhe auf Maximum begrenzen?
von: Schmitty
Geschrieben am: 01.10.2014 15:29:32
Hallo Yummi,
wenn ich
for i = 6 to 2500 ' Automatische Zeilenhöhe With Rows(i) .AutoFit If .Height > 187.5 Then '187.5 entspricht 250 pixel .RowHeight = 187.5 End If End With next ischreibe, dann läuft das Makro und hört nicht mehr auf!
for i = 6 to 2500 ' Automatische Zeilenhöhe With Rows(i & ":" i) .AutoFit If .Height > 187.5 Then '187.5 entspricht 250 pixel .RowHeight = 187.5 End If End With next ibekomme ich einen Syntaxfehler... :-/
![]() ![]() |
Betrifft: AW: Automatische Zeilenhöhe auf Maximum begrenzen?
von: Hajo_Zi
Geschrieben am: 02.10.2014 07:03:03
hast du es schon im Einzelschritt getestet, ca. 2500 Zeilen kann schon eine Weile dauern. Der erste Code ist korrekt.
![]() ![]() |
Betrifft: AW: Automatische Zeilenhöhe auf Maximum begrenzen?
von: Schmitty
Geschrieben am: 02.10.2014 07:26:46
Guten Morgen Hajo,
du hast recht. Ich habe den Code jetzt so umgebaut, dass er nur die Zellen 6 bis 200 prüft und das dauert ca. 15 Sekunden! Wenn ich das hochrechne bei meinen 2.500 Zeilen... Muss ich mir was anderes überlegen.
Wie kann ich es anstellen, dass der Code nur für die Zeile ausgeführt wird, in der ich gerade eine Änderung vorgenommen habe?
Gruß
Christian
![]() ![]() |
Betrifft: AW: Automatische Zeilenhöhe auf Maximum begrenzen?
von: Hajo_Zi
Geschrieben am: 02.10.2014 07:36:06
Hallo Christian,
das ist das Change Ereignis unter der Tabelle (Target.row)
Gruß Hajo
![]() ![]() |
Betrifft: AW: Automatische Zeilenhöhe auf Maximum begrenzen?
von: Schmitty
Geschrieben am: 02.10.2014 08:42:41
Hallo Hajo,
danke. Das Change Ereignis hatte ich auch schon im Sinn, jedoch habe ich im Moment das Problem, dass ich nicht weiß, wie ich es in meinem speziellen Fall einbauen soll.
Hier noch mal die Rahmenbedingungen:
Die Zeilenhöhe der Zeilen 6 bis 2.500 soll sich automatisch ändern, maximal aber bis 250 Pixel.
Ein Code habe ich ja dafür. Allerdings braucht es zu lange um immer alle Zellen so anzupassen.
Deshalb mein Wunsch: Sollte ich z. B. irgendwo in der Zeile 365 den Inhalt einer Zelle ändern, dann soll der Code für die automatische Zeilenhöhe auch nur für die Zeile 365 ausgeführt werden.
Das ist für meine bescheidenden VBA-Kenntnisse noch etwas zu hoch...
Gruß
Christian
![]() ![]() |
Betrifft: AW: Automatische Zeilenhöhe auf Maximum begrenzen?
von: Hajo_Zi
Geschrieben am: 02.10.2014 08:49:53
Hallo Christian,
Eingabe nur in einer Zelle.
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row >= 6 And Target.Row <= 2500 Then With Rows(Target.Row) .AutoFit If .Height > 187.5 Then '187.5 entspricht 250 pixel .RowHeight = 187.5 End If End With End If End SubGruß Hajo
![]() ![]() |
Betrifft: AW: Automatische Zeilenhöhe auf Maximum begrenzen?
von: Schmitty
Geschrieben am: 02.10.2014 10:33:13
Super!
Danke, jetzt funktioniert es problemlos!
Gruß
Christian
![]() |