Zeilen abhängig von einer Bedingung ausblenden

In diesem Artikel zeigen wir Ihnen, wie Sie mithilfe eines einfachen VBA-Makros in Excel Zeilen basierend auf bestimmten Bedingungen ausblenden können. Das gezeigte Beispiel prüft, ob in den Zellen der Spalte A (Zeilen 1 bis 100) ein Wert steht oder nicht. Falls die Zelle leer ist, wird die entsprechende Zeile ausgeblendet. Alle anderen Zeilen bleiben unangetastet. Sie können das Makro leicht anpassen, um komplexere Bedingungen oder andere Spalten zu berücksichtigen.

Grundlegendes Makro: Zeilen ausblenden, wenn Spalte A leer ist

Hier ist das Basis-Makro, das prüft, ob in den Zellen der Spalte A (Zeilen 1 bis 100) ein Wert steht. Ist die Zelle leer, wird die entsprechende Zeile ausgeblendet.

Public Sub Zeilen_ausblenden()
Application.ScreenUpdating = False ' Bildschirmaktualisierung stoppen für bessere Performance
For i = 1 To 100
 If Cells(i, 1).Value = "" Then
 Rows(i).Hidden = True ' Zeile ausblenden, wenn die Zelle leer ist
 End If
 Next i
 Application.ScreenUpdating = True ' Bildschirmaktualisierung wieder aktivieren
 Range("A1").Select ' Zurück zur Zelle A1 springen
End Sub


Erweiterung: Zeilen basierend auf bestimmten Werten in einer Spalte ausblenden

Dieses Makro lässt sich leicht anpassen, um Zeilen nicht nur bei leeren Zellen, sondern auch bei bestimmten Werten auszublenden. Nehmen wir an, Sie möchten alle Zeilen ausblenden, die den Wert "0" in der Spalte B enthalten.

Public Sub Zeilen_ausblenden_wenn_0()
Application.ScreenUpdating = False
 For i = 1 To 100
 If Cells(i, 2).Value = 0 Then ' Prüfung auf den Wert "0" in Spalte B
 Rows(i).Hidden = True
 End If
 Next i
 Application.ScreenUpdating = True
 Range("A1").Select
End Sub




Weitere Anpassungen: Kombination mehrerer Bedingungen

Sie können das Makro auch so anpassen, dass mehrere Bedingungen berücksichtigt werden. Zum Beispiel: Ausblenden aller Zeilen, in denen Spalte A leer ist oder in denen in Spalte C der Wert "nein" steht

Public Sub Zeilen_ausblenden_mehrere_Bedingungen()
Application.ScreenUpdating = False
 For i = 1 To 100
 If Cells(i, 1).Value = "" Or Cells(i, 3).Value = "nein" Then
 Rows(i).Hidden = True
 End If
 Next i
 Application.ScreenUpdating = True
 Range("A1").Select
End Sub



Zeilen wieder einblenden

Falls Sie nach dem Ausblenden die Zeilen wieder einblenden möchten, können Sie das folgende Makro verwenden:

Public Sub Alle_Zeilen_einblenden()
 Application.ScreenUpdating = False
 Rows.Hidden = False ' Alle Zeilen wieder einblenden
 Application.ScreenUpdating = True
 Range("A1").Select
End Sub


Hinweise zur Optimierung und Performance

  • ScreenUpdating deaktivieren: Durch das Deaktivieren der Bildschirmaktualisierung (Application.ScreenUpdating = False) während der Ausführung des Makros können Sie die Performance erheblich verbessern, insbesondere bei großen Datenmengen. Am Ende des Makros sollte die Bildschirmaktualisierung wieder aktiviert werden.
  • Dynamischer Bereich: Wenn sich der Datenbereich in Ihrer Tabelle häufig ändert, können Sie das Makro so anpassen, dass es automatisch den letzten gefüllten Bereich berücksichtigt. Verwenden Sie hierfür UsedRange.Rows.Count, um die letzte gefüllte Zeile zu ermitteln:
Public Sub Zeilen_ausblenden_dynamisch()
Application.ScreenUpdating = False
Dim letzteZeile As Long
letzteZeile = Cells(Rows.Count, 1).End(xlUp).Row ' Letzte gefüllte Zeile in Spalte A
For i = 1 To letzteZeile
If Cells(i, 1).Value = "" Then
Rows(i).Hidden = True
End If
Next i
Application.ScreenUpdating = True
Range("A1").Select
End Sub


  • Mehrere Spalten gleichzeitig prüfen: Sie können das Makro erweitern, um nicht nur eine, sondern mehrere Spalten zu prüfen und bei Bedarf mehrere Bedingungen gleichzeitig anzuwenden. Dies kann nützlich sein, wenn die Ausblendbedingungen komplexer werden.

Fazit

Mit den gezeigten Makros können Sie Zeilen in Excel dynamisch und flexibel ausblenden, basierend auf einer Vielzahl von Bedingungen. Ob Sie nur leere Zellen oder spezifische Werte in bestimmten Spalten prüfen möchten, das Makro lässt sich leicht an Ihre Bedürfnisse anpassen. Denken Sie daran, die Bildschirmaktualisierung zu deaktivieren, um die Ausführungsgeschwindigkeit zu optimieren, besonders bei größeren Datenmengen.


Sie brauchen eine individuelle Excel-/Office-Lösung?

Wir entwickeln Ihr Makro, Tool oder Ihre Datenbank – passgenau für Ihr Unternehmen.

Relevante Artikel

  • Eingaben in Tabellenblatt protokollieren

    Die folgende Lösung zeigt, wie Sie Eingaben in ein Tabellenblatt protokollieren können. Zum Protokollieren, müssen Sie die Werte nur auf...

  • Unikate in eigene Spalte extrahieren

    Mit diesem Makro werden alle nicht doppelten Daten aus Spalte A in Spalte B geschrieben. Jeder Wert wird also maximal...

  • Zeilen (Einträge) abhängig vom Datum löschen

    Aus diesem Datenbestand sollen die Zeilen gelöscht werden, deren Datum in Spalte A im Monat November liegt.     A B C D 1 12.08.2002 daten daten daten 2 15.08.2002 daten daten daten 3 20.08.2002 daten daten daten 4 12.09.2002 daten daten daten 5 15.09.2002 daten daten daten 6 20.09.2002 daten daten daten 7 12.10.2002 daten daten daten 8 15.10.2002 daten daten daten 9 20.10.2002 daten daten daten 10 15.11.2002 daten daten daten 11 15.11.2002 daten daten daten 12 15.11.2002 daten daten daten 13 15.11.2002 daten daten daten 14 12.12.2002 daten daten daten 15 15.12.2002 daten daten daten 16 20.12.2002 daten daten daten Nach...

  • Zellinhalt auf Formel, Zahl, Datum, Fehler oder Text prüfen

    In diesem Beispiel zeigen wir Ihnen, wie sich ganz einfach ermitteln lässt, welcher Datentyp sich in einer Zelle...

  • Farbschleife - Zellen abwechselnd einfärben

    Dieses Beispiel zeigt, wie ausgehend von der aktuell markierten Zelle, weitere 33 Zellen, also insgesamt 34 Zellen mit...

Projekt-Anfrage

Excel automatisieren. Zeit sparen.
Fehler vermeiden.
Wir entwickeln Ihre individuelle
Excel- / VBA-Lösung.
Jetzt anfragen!