VBA für Pivot-Tabellen: Plus- und Minus-Buttons zum Erweitern und Reduzieren
Schritt-für-Schritt-Anleitung
- Buttons erstellen: Erstelle zwei Schaltflächen in deinem Excel-Dokument, einen für das Erweitern und einen für das Reduzieren der Pivot-Daten.
- VBA-Editor öffnen: Drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Modul hinzufügen: Füge ein neues Modul hinzu, indem du im Menü auf
Einfügen
> Modul
klickst.
- Code einfügen: Füge den folgenden Code in das Modul ein, um die Pivot-Tabelle zu erweitern und zu reduzieren:
Sub Diagramm_reduzieren()
With Worksheets("Pivot Board")
.PivotTables("PivotTable8").PivotFields("Ende Jahr").ShowDetail = False
.PivotTables("PivotTable9").PivotFields("Ende Jahr").ShowDetail = False
End With
End Sub
Sub Diagramm_erweitern()
With Worksheets("Pivot Board")
.PivotTables("PivotTable8").PivotFields("Ende Jahr").ShowDetail = True
.PivotTables("PivotTable9").PivotFields("Ende Jahr").ShowDetail = True
End With
End Sub
- Buttons zuweisen: Weisen den Schaltflächen die entsprechenden Makros zu, indem du mit der rechten Maustaste auf die Schaltfläche klickst und
Makro zuweisen
wählst.
Häufige Fehler und Lösungen
Alternative Methoden
Eine alternative Methode zur Steuerung der Detailansicht in Pivot-Tabellen ist die Verwendung von Excel-Datenfiltern. Du kannst auch Slicer einschalten, um die Daten interaktiv zu filtern. Dies kann die Benutzerfreundlichkeit erhöhen, da Slicer oft intuitiver sind als das Erweitern oder Reduzieren von Pivot-Tabellen.
Praktische Beispiele
-
Einfaches Beispiel: Du hast eine Pivot-Tabelle, die Verkäufe nach Jahr und Quartal anzeigt. Mit dem Plus-Button kannst du die Quartale anzeigen lassen, während der Minus-Button die Ansicht auf Jahre reduziert.
-
Erweiterte Nutzung: Du kannst den Code anpassen, um auch Monate einzuschließen. Hier ein Beispiel, das die Monate ebenfalls berücksichtigt:
Sub Diagramm_erweitern()
Dim intStatus As Integer
With Worksheets("Pivot Board")
intStatus = fncStatusEnde_Jahr(.PivotTables("PivotTable8").PivotFields("Ende Jahr")) _
+ fncStatusQuartale(.PivotTables("PivotTable8").PivotFields("Quartale")) * 10
Select Case intStatus
Case 21 'nur Quartale sind eingeblendet
.PivotTables("PivotTable8").PivotFields("Quartale").ShowDetail = True
.PivotTables("PivotTable9").PivotFields("Quartale").ShowDetail = True
Case Else
.PivotTables("PivotTable8").PivotFields("Ende Jahr").ShowDetail = True
.PivotTables("PivotTable9").PivotFields("Ende Jahr").ShowDetail = True
End Select
End With
End Sub
Tipps für Profis
- Nutze Statusvariablen für einen dynamischen Wechsel zwischen verschiedenen Detailstufen.
- Halte deinen VBA-Code modular, um die Wartung zu erleichtern.
- Experimentiere mit ShowDetail-Funktionen, um gezielt bestimmte Daten anzuzeigen oder auszublenden.
FAQ: Häufige Fragen
1. Wie kann ich die Pivot-Tabelle automatisch aktualisieren?
Du kannst die Pivot-Tabelle automatisch aktualisieren, indem du das Workbook_Open
-Ereignis im VBA-Editor nutzt, um das Makro beim Öffnen der Datei auszuführen.
2. Kann ich die Buttons auch anders benennen?
Ja, du kannst die Schaltflächen nach Belieben umbenennen, um ihre Funktion klarer zu machen, z.B. "Details anzeigen" und "Details ausblenden".
3. Funktionieren diese Codes in jeder Excel-Version?
Die oben genannten Codes sollten in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen. Achte darauf, dass du eine kompatible Version verwendest.