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

Forumthread: Leere Zeilen ausblenden mit VBA

Leere Zeilen ausblenden mit VBA
23.11.2015 14:03:36
Michael
Hallo,
ich suche nach einer Möglichkeit beim öffnen einer Excel Datei bei leeren Zellen in der Spalte B die gesamte Zeile auszublenden. Dazu habe ich diesen Code gefunden:
Private Sub Workbook_Open()
Dim rngBlnk As Range
On Error Resume Next 'in case no blanks are present...
Set rngBlnk = Range("B1:B4600").SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
If Not rngBlnk Is Nothing Then
Debug.Print rngBlnk.Address()
rngBlnk.EntireRow.Hidden = False
End If
End Sub
leider funktioniert es nicht weil ich scheinbar Formeln in den Zellen hab. Die formeln sollen bestehen bleiben, da ich hiermit Werte aus anderen Dateien rüber hole falls vorhanden. Wie müsste ich den Code anpassen damit trotz der Formeln leere Zellen (ohne Werte) und damit die gesamte Zeile ausgeblendet wird.
Gruß
Michael

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leere Zeilen ausblenden mit VBA
23.11.2015 14:16:42
Rudi
Hallo,
dann musst du alle Zellen auf "" prüfen.
Sub aaa()
Dim r As Range, rBlank As Range
For Each r In Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp))
If r = "" Then
If rBlank Is Nothing Then
Set rBlank = r
Else
Set rBlank = Union(rBlank, r)
End If
End If
Next
If Not rBlank Is Nothing Then rBlank.EntireRow.Hidden = True
End Sub
Gruß
Rudi

Anzeige
AW: Leere Zeilen ausblenden mit VBA
23.11.2015 14:34:19
Michael
Danke!

AW: Leere Zeilen ausblenden mit VBA
23.11.2015 14:17:17
Daniel
Hi
merke: Zellen die eine Formel enthalten, sind nie leer.
wenn das Formelergebnis der Leerstring "" enthält diese Zelle technisch gesehen einen Text.
am besten ist, du verwendest den Autofilter, denn dieser unterscheidet nicht zwischen echten Leerzellen und Zellen mit dem Formelergebnis "".
der Code wäre dann:
Private Sub Workbook_Open()
ActiveSheet.Usedrange.Autofilter Field:=2, Criteria1:=""
End Sub

den ursprünglichen Code könntest du verwenden, wenn die Formeln in Spalte B entweder den Leerstring oder ansonsten eine Zahl bzw Datum als Ergebnis ausgeben, dann könnten die .SpecialCells diesen unterschied erkennen und die Zellen mit Text ausblenden:
Set rngBlnk = Range("B1:B4600").SpecialCells(xlCellTypeFormulas, 2)

wobei die 2 hier für Text steht und das .SpecialCells hier alle Zellen findet, die eine Formel enthalten die einen Text als Ergebnis haben.
andersrum geht's natürlich auch, dh wenn deine Formeln normalerweise Texte ausgeben, dann müssest du die Formeln so umgestalten, dass statt dem Leerstring die Zahl 0 ausgeben wird.
dann könntest du alle Zeilen mit Zahl in Spalte B ausblenden:
Set rngBlnk = Range("B1:B4600").SpecialCells(xlCellTypeFormulas, 1)

die 1 steht hier für Zellen mit Zahl als Inhalt.
Gruß Daniel

Anzeige
AW: Leere Zeilen ausblenden mit VBA
23.11.2015 14:34:49
Michael
Danke für die ausführliche Erläuterung!
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Leere Zeilen in Excel automatisch ausblenden mit VBA


Schritt-für-Schritt-Anleitung

Um leere Zeilen in Excel automatisch auszublenden, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke im Projektfenster mit der rechten Maustaste auf Diese Arbeitsmappe und wähle Code anzeigen.

  3. Füge den folgenden Code ein:

    Private Sub Workbook_Open()
        Dim rngBlnk As Range
        On Error Resume Next
        Set rngBlnk = Range("B1:B4600").SpecialCells(xlCellTypeBlanks)
        On Error GoTo 0
        If Not rngBlnk Is Nothing Then
            rngBlnk.EntireRow.Hidden = True
        End If
    End Sub
  4. Schließe den VBA-Editor und speichere die Datei als .xlsm (Makro-aktivierte Arbeitsmappe).

  5. Schließe und öffne die Datei erneut, um die leeren Zeilen auszublenden.


Häufige Fehler und Lösungen

  • Fehler: Der Code funktioniert nicht, weil die Zellen Formeln enthalten.

    • Lösung: Du musst die Zellen auf "" prüfen. Verwende folgenden Code:
    Sub LeereZeilenAusblenden()
        Dim r As Range, rBlank As Range
        For Each r In Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp))
            If r = "" Then
                If rBlank Is Nothing Then
                    Set rBlank = r
                Else
                    Set rBlank = Union(rBlank, r)
                End If
            End If
        Next
        If Not rBlank Is Nothing Then rBlank.EntireRow.Hidden = True
    End Sub
  • Fehler: Du möchtest leere Zeilen ausblenden, aber die Formeln sollen erhalten bleiben.

    • Lösung: Nutze den Autofilter, um zwischen echten leeren Zellen und Zellen mit Formelergebnissen zu unterscheiden:
    Private Sub Workbook_Open()
        ActiveSheet.UsedRange.AutoFilter Field:=2, Criteria1:=""
    End Sub

Alternative Methoden

Neben VBA gibt es auch andere Möglichkeiten, um leere Zeilen in Excel auszublenden:

  • Filter-Funktion: Nutze die Filterfunktion, um nur die Zeilen anzuzeigen, die Daten enthalten. Du kannst dies über die Menüleiste aktivieren.
  • Formelbasierte Ansätze: Du kannst auch eine Hilfsspalte erstellen, die die Zeilen markiert, die du ausblenden möchtest, und dann mit dem Filter arbeiten.

Praktische Beispiele

  1. Beispiel 1: Wenn du eine Tabelle hast, in der die Spalte B für Namen genutzt wird und du nur die ausgefüllten Zeilen anzeigen möchtest, kannst du den Autofiltern verwenden, um Zellen zu filtern, die keinen Text enthalten.

  2. Beispiel 2: Um leere Spalten auszublenden, kannst du eine ähnliche Technik wie beim Ausblenden der Zeilen verwenden. Der Code könnte wie folgt aussehen:

    Sub LeereSpaltenAusblenden()
        Dim col As Range
        For Each col In ActiveSheet.UsedRange.Columns
            If Application.WorksheetFunction.CountA(col) = 0 Then
                col.EntireColumn.Hidden = True
            End If
        Next col
    End Sub

Tipps für Profis

  • Automatisierung: Du kannst das Ausblenden der leeren Zeilen automatisch beim Öffnen der Datei aktivieren, indem du den entsprechenden VBA-Code in das Workbook_Open-Ereignis einfügst.
  • Debugging: Nutze Debug.Print, um den Status der Zellen zu überprüfen, bevor du sie ausblendest.
  • Kombination von Methoden: Du kannst VBA mit Excel-Formeln kombinieren, um noch flexiblere Lösungen zu entwickeln.

FAQ: Häufige Fragen

1. Wie kann ich leere Zeilen in Excel automatisch ausblenden?
Du kannst dies mit einem VBA-Skript tun, das beim Öffnen der Datei ausgeführt wird.

2. Funktioniert das Ausblenden von leeren Zeilen auch bei Formeln?
Ja, du musst jedoch sicherstellen, dass du die Zellen auf "" prüfst, da Formeln, die leer erscheinen, technisch gesehen nicht leer sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige