Tabellen ein- und ausblenden in Excel
Schritt-für-Schritt-Anleitung
- Öffne den VBA-Editor in Excel, indem du
ALT + F11
drückst.
- Wähle das Arbeitsblatt aus, in dem du die Logik implementieren möchtest (z.B. Tabelle1).
- Füge den folgenden VBA-Code in das Codefenster des Arbeitsblatts ein:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("B5:B25")) Is Nothing Then
On Error Resume Next
Sheets("Tabelle" & (Target.Row - 3)).Visible = (Target.Value <> "")
On Error GoTo 0
End If
End Sub
- Schließe den VBA-Editor und teste das Skript, indem du Werte in die Zellen B5 bis B25 eingibst. Die entsprechenden Tabellenblätter werden je nach Inhalt ein- oder ausgeblendet.
Häufige Fehler und Lösungen
Alternative Methoden
Wenn du flexiblere Optionen benötigst, kannst du eine der folgenden Methoden in Betracht ziehen:
- Variante mit Select Case:
Diese Methode erlaubt dir, spezifische Tabellenblätter über ihre Namen zu steuern. Der Code sieht folgendermaßen aus:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("B5:B25")) Is Nothing Then
Select Case Target.Address
Case "$B$5": Call umschaltenBlatt(Target.Value, "Tabelle2")
Case "$B$6": Call umschaltenBlatt(Target.Value, "Tabelle3")
' Weitere Cases hinzufügen
End Select
End If
End Sub
Private Sub umschaltenBlatt(Zellwert As String, Blatt As String)
Sheets(Blatt).Visible = (Zellwert <> "")
End Sub
- Direktes Ansprechen der Tabellenblätter:
Diese Methode ermöglicht es dir, Tabellenblätter beliebiger Namen zu steuern, erfordert aber mehr Code.
Praktische Beispiele
Ein praktisches Beispiel für das Ausblenden von Tabellenblättern könnte so aussehen:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
For Each Zelle In Target
If Zelle.Column = 2 And Zelle.Row >= 5 And Zelle.Row <= 25 Then
On Error Resume Next
Sheets("Tabelle" & (Zelle.Row - 3)).Visible = (Zelle.Value <> "")
On Error GoTo 0
End If
Next Zelle
End Sub
Hier wird geprüft, ob sich die Werte in den Zellen B5 bis B25 ändern. Entsprechend wird das zugehörige Tabellenblatt ein- oder ausgeblendet.
Tipps für Profis
- Nutze
On Error Resume Next
, um Fehler zu vermeiden, die auftreten, wenn ein Blatt nicht existiert.
- Überlege, zusätzliche Bedingungen in den Code einzufügen, um die Sichtbarkeit von mehr als nur zwei oder drei Tabellenblättern zu steuern.
- Teste deinen Code gründlich, um sicherzustellen, dass alle Bedingungen korrekt funktionieren.
FAQ: Häufige Fragen
1. Wie kann ich mehrere Tabellenblätter gleichzeitig ein- oder ausblenden?
Du kannst die Logik in der Worksheet_Change
-Prozedur erweitern, indem du zusätzliche Bedingungen und Cases hinzufügst, um weitere Tabellenblätter zu steuern.
2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der Code sollte in allen modernen Excel-Versionen (Excel 2007 und später) funktionieren, solange die VBA-Funktionen unterstützt werden.