Microsoft Excel

Herbers Excel/VBA-Archiv

Automatische Zeilenhöhe auf Maximum begrenzen?

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 With
Gruß
yummi


  

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 With
Gruß
Christian


  

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 i
Gruß
yummi


  

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 i
schreibe, dann läuft das Makro und hört nicht mehr auf!

Schreibe ich alternativ
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 i
bekomme 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.

GrußformelHomepage


  

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 Sub
Gruß 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


 

Beiträge aus den Excel-Beispielen zum Thema "Automatische Zeilenhöhe auf Maximum begrenzen?"