Excel VBA: Arbeitsblätter ausblenden und einblenden (Tutorial)

Melden

Hier ist ein umfassendes Tutorial, wie du in Excel mit VBA Arbeitsblätter (Worksheets) ein- und ausblenden kannst – von den Grundlagen bis hin zum Profi-Modus „Very Hidden“.


In Excel gibt es mehr Möglichkeiten, Blätter zu verstecken, als nur den Rechtsklick auf den Reiter. Mit VBA kannst du diesen Prozess automatisieren und sogar Blätter so verstecken, dass ein normaler Benutzer sie nicht einfach wieder einblenden kann.

1. Die drei Status der Sichtbarkeit

Bevor wir starten, musst du wissen, dass es in VBA drei Zustände für die Eigenschaft .Visible gibt:

  1. xlSheetVisible (-1): Das Blatt ist ganz normal sichtbar.
  2. xlSheetHidden (0): Das Blatt ist ausgeblendet (kann per Rechtsklick vom Benutzer wieder eingeblendet werden).
  3. xlSheetVeryHidden (2): Das Blatt ist "sehr tief" versteckt. Es taucht nicht im "Einblenden"-Menü von Excel auf. Es kann nur über VBA wieder sichtbar gemacht werden.

2. Ein Blatt ausblenden (Einfach)

Um ein bestimmtes Arbeitsblatt auszublenden, nutzt du diesen Code:

Sub BlattAusblenden()
    ' Das Blatt mit dem Namen "Tabelle2" wird normal ausgeblendet
    Sheets("Tabelle2").Visible = xlSheetHidden
End Sub

3. Ein Blatt "Very Hidden" machen (Sicher)

Dies ist nützlich für Hilfstabellen oder Berechnungen, die der Endnutzer nicht sehen oder verändern soll.

Sub BlattSehrSicherAusblenden()
    ' Dieses Blatt kann NICHT über die Excel-Oberfläche eingeblendet werden
    Sheets("Setup").Visible = xlSheetVeryHidden
End Sub

4. Ein Blatt wieder einblenden

Egal ob es Hidden oder VeryHidden war, so machst du es wieder sichtbar:

Sub BlattEinblenden()
    Sheets("Tabelle2").Visible = xlSheetVisible
End Sub

5. Praxis-Beispiel: Alle Blätter außer dem aktiven ausblenden

Ein häufiger Anwendungsfall ist, dass man alle Tabellen bis auf eine einzige verstecken möchte. Hinweis: Excel erzwingt, dass immer mindestens ein Blatt sichtbar bleibt.

Sub AlleAusserAktiveAusblenden()
    Dim ws As Worksheet
    Dim aktuelleTabelle As String

    aktuelleTabelle = ActiveSheet.Name

    ' Schleife durch alle Blätter der Arbeitsmappe
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> aktuelleTabelle Then
            ws.Visible = xlSheetHidden
        End If
    Next ws
End Sub

6. Praxis-Beispiel: Alle Blätter auf einmal einblenden

Wenn du viele versteckte Blätter hast, ist es mühsam, jedes einzeln per Hand einzublenden. VBA erledigt das in Millisekunden:

Sub AlleEinblenden()
    Dim ws As Worksheet

    For Each ws In ThisWorkbook.Worksheets
        ws.Visible = xlSheetVisible
    Next ws
End Sub

7. Schritt-für-Schritt: So baust du den Code ein

  1. Öffne deine Excel-Datei.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Gehe im Menü auf Einfügen -> Modul.
  4. Kopiere einen der oben genannten Codes in das weiße Fenster.
  5. Schließe den Editor.
  6. Du kannst das Makro nun über ALT + F8 ausführen oder es einer Schaltfläche (Einfügen -> Illustrationen -> Formen) zuweisen.

8. Wichtige Tipps & Fallstricke

  • Fehlermeldung vermeiden: Wenn du versuchst, alle Arbeitsblätter einer Mappe auszublenden, wird VBA einen Fehler ausgeben. Es muss immer ein Blatt sichtbar sein (xlSheetVisible).
  • Blattschutz: Wenn die Struktur der Arbeitsmappe geschützt ist (Überprüfen -> Arbeitsmappe schützen), kann VBA die Sichtbarkeit nicht ändern. Du musst den Schutz erst mit ThisWorkbook.Unprotect "DeinPasswort" aufheben.
  • Speichern: Vergiss nicht, deine Datei als Excel Arbeitsmappe mit Makros (.xlsm) zu speichern, sonst gehen deine VBA-Codes beim Schließen verloren!

Bonus: Umschalter (Toggle)

Hier ist ein praktischer Code, der ein Blatt einblendet, wenn es versteckt ist, und ausblendet, wenn es sichtbar ist:

Sub ToggleBlattSichtbarkeit()
    With Sheets("Tabelle2")
        If .Visible = xlSheetVisible Then
            .Visible = xlSheetHidden
        Else
            .Visible = xlSheetVisible
        End If
    End With
End Sub
0