Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Zeilenhöhe einstellen

Forumthread: VBA Zeilenhöhe einstellen

VBA Zeilenhöhe einstellen
13.08.2003 08:11:59
Harald
Guten Morgen,
ich möchte in Abhängigkeit der Zelle L26, in der eine Zahl zwischen 1 und 21 steht die Zeilenhöhe der Zeilen ab Zeile 55 einstellen.
Und zwar bei 2 die Zeile 55 Zeilenhöhe 12, bei <2 Zeilenhöhe 0, bei 3 Zeilenhöhe der Zeile 55 und 56 auf 12, bei < 3 beide Zeilenhöhe 0,
bei 4 Zeile 55, 56 und 57 Zeilenhöhe 12 usw.
Kann mir jemand unter die Arme greifen?
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zeilenhöhe einstellen
13.08.2003 08:23:30
Guenter aus DO
Hallo Harald
benutze die CASE Struktur . s.u

Sub test
dim wert as integer
let wert = cells(26,12)
select Case Wert
case is 2
Rows("55:55").RowHeight = 12
case is < 2
Rows("55:55").RowHeight = 12
end select
End Sub

Guenter aus DO

AW: kleiner Fehler
13.08.2003 08:25:15
Guenter aus DO
Text:
Hallo Harald kleiner Fehler, in der zweiten Case Anweisung muß die Höhe auf "0" gesetzt werden.
benutze die CASE Struktur . s.u

Sub test
dim wert as integer
let wert = cells(26,12)
select Case Wert
case is 2
Rows("55:55").RowHeight = 12
case is < 2
Rows("55:55").RowHeight = 0
end select
End Sub


Anzeige
AW: VBA Zeilenhöhe einstellen
13.08.2003 08:37:26
galenzo
Mein Ansatz für dein Problem ist das Worksheet_Change-Ereignis, das bei Änderungen in der Tabelle ausgelöst wird. Dort fragst du ab, ob etwas in der Zelle "L26" geändert wird.
Abhängig von diesem Wert setz du dann die Zeilenhöhen.
(Dieser Teil des Makros ist sicherlich noch optimierbar).
Hier mein Code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("L26")) Is Nothing Then
Select Case Target.Value
Case Is < 2:    Rows(55).RowHeight = 0
Case 2:         Rows(55).RowHeight = 12
Case Is < 3:    Rows("55:56").RowHeight = 0
Case 3:         Rows("55:56").RowHeight = 12
' usw.
End Select
End If
End Sub


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilenhöhe mit VBA in Excel anpassen


Schritt-für-Schritt-Anleitung

Um die Zeilenhöhe in Excel mit VBA anzupassen, kannst Du den folgenden Ansatz nutzen. Hierbei wird die Zeilenhöhe abhängig von einem Wert in der Zelle L26 festgelegt.

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf "VBAProject (deine_datei.xlsm)" klickst und "Einfügen" > "Modul" wählst.
  3. Kopiere den folgenden Code in das Modul:
Sub ZeilenhöheAnpassen()
    Dim wert As Integer
    wert = Cells(26, 12)

    Select Case wert
        Case Is < 2
            Rows("55:55").RowHeight = 0
        Case 2
            Rows("55:55").RowHeight = 12
        Case Is < 3
            Rows("55:56").RowHeight = 0
        Case 3
            Rows("55:56").RowHeight = 12
        ' Füge hier weitere Bedingungen hinzu
    End Select
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus, um die Zeilenhöhe automatisch anzupassen.

Häufige Fehler und Lösungen

  1. Fehlermeldung wegen falscher Zeilenbezüge: Stelle sicher, dass die Zeilenbezüge im Code korrekt sind. Zum Beispiel: Rows("55:55") sollte existieren.

  2. Zeilenhöhe wird nicht aktualisiert: Wenn die Zeilenhöhe nicht aktualisiert wird, überprüfe, ob das Makro korrekt ausgeführt wurde und dass der Wert in Zelle L26 die erwarteten Werte hat.

  3. Fehlende Berechtigungen: Stelle sicher, dass Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Sicherheitscenter > Einstellungen für das Sicherheitscenter > Einstellungen für Makros und aktiviere die entsprechenden Optionen.


Alternative Methoden

Eine alternative Methode zur Anpassung der Zeilenhöhe ist die Nutzung des Worksheet_Change-Ereignisses. Dies ermöglicht eine automatische Anpassung, wenn sich der Wert in Zelle L26 ändert.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("L26")) Is Nothing Then
        Select Case Target.Value
            Case Is < 2: Rows(55).RowHeight = 0
            Case 2: Rows(55).RowHeight = 12
            Case Is < 3: Rows("55:56").RowHeight = 0
            Case 3: Rows("55:56").RowHeight = 12
            ' Weitere Bedingungen hinzufügen
        End Select
    End If
End Sub

Platzieren kannst Du diesen Code im entsprechenden Arbeitsblatt-Modul.


Praktische Beispiele

Hier ist ein Beispiel, wie Du die Zeilenhöhe für mehrere Zeilen gleichzeitig anpassen kannst:

Sub MehrereZeilenhöheAnpassen()
    Dim wert As Integer
    wert = Cells(26, 12)

    Select Case wert
        Case Is < 2
            Rows("55:57").RowHeight = 0
        Case 2
            Rows("55:55").RowHeight = 12
            Rows("56:56").RowHeight = 0
            Rows("57:57").RowHeight = 0
        Case 3
            Rows("55:56").RowHeight = 12
            Rows("57:57").RowHeight = 0
        ' Weitere Bedingungen hinzufügen
    End Select
End Sub

Hiermit kannst Du die Zeilenhöhe für mehrere Zeilen in Excel VBA gleichzeitig anpassen.


Tipps für Profis

  • Nutze die vba zeilenhöhe automatisch anpassen-Funktion für eine dynamische Anpassung der Zeilenhöhen basierend auf dem Inhalt.
  • Experimentiere mit Cells(row, column) für präzisere Anpassungen.
  • Verwende Application.ScreenUpdating = False zu Beginn Deines Codes, um Flickern zu vermeiden, und setze es am Ende wieder auf True.

FAQ: Häufige Fragen

1. Wie kann ich die Zeilenhöhe automatisch anpassen?
Durch das Setzen der RowHeight-Eigenschaft in VBA kannst Du die Zeilenhöhe automatisch anpassen, basierend auf dem Inhalt oder anderen Bedingungen.

2. Welche Excel-Versionen unterstützen VBA?
Alle modernen Excel-Versionen, einschließlich Excel 2013, 2016, 2019 und Microsoft 365, unterstützen VBA und die Anpassung der Zeilenhöhe über Skripte.

3. Wo finde ich die VBA-Entwicklungsumgebung?
Du kannst die VBA-Entwicklungsumgebung öffnen, indem Du ALT + F11 drückst, während Du in Excel bist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige