Pivot-Datenschnitte per VBA auslesen
Schritt-für-Schritt-Anleitung
Um die aktiven Felder eines Datenschnitts in einer Pivot-Tabelle per VBA auszulesen, kannst du die folgenden Schritte befolgen:
-
Öffne den VBA-Editor:
- Drücke
ALT + F11, um den VBA-Editor zu öffnen.
-
Ein neues Modul erstellen:
- Klicke im Projekt-Explorer mit der rechten Maustaste auf
VBAProject (DeineDatei.xlsm) und wähle Einfügen > Modul.
-
Code einfügen:
- Füge den folgenden VBA-Code in das Modul ein:
Sub AuslesenDatenschnitt()
Dim ws As Worksheet
Dim pvt As PivotTable
Dim pvtField As PivotField
Dim slicer As Slicer
Dim item As SlicerItem
Set ws = ThisWorkbook.Sheets("DeinPivotSheetName") ' Ersetze mit dem Namen deines Arbeitsblatts
Set pvt = ws.PivotTables(1) ' Ersetze mit der entsprechenden Pivot-Tabelle
For Each slicer In ThisWorkbook.SlicerCaches(1).Slicers ' Ersetze die Indexnummer nach Bedarf
For Each item In slicer.SlicerItems
If item.Selected Then
Debug.Print item.Name ' Gibt den Namen des ausgewählten Items aus
End If
Next item
Next slicer
End Sub
-
Makro ausführen:
- Schließe den VBA-Editor und kehre zu Excel zurück.
- Drücke
ALT + F8, wähle AuslesenDatenschnitt und klicke auf Ausführen.
-
Ergebnisse prüfen:
- Die ausgewählten Werte werden in der unmittelbaren Fenster (Debug.Print) angezeigt. Du kannst die Werte nach Bedarf weiterverarbeiten.
Häufige Fehler und Lösungen
Alternative Methoden
Wenn du die aktiven Felder eines Datenschnitts nicht über VBA auslesen möchtest, kannst du auch die Excel-Funktion GETPIVOTDATA verwenden. Diese Funktion ermöglicht es dir, Daten direkt aus einer Pivot-Tabelle zu extrahieren. Der Nachteil ist, dass sie nicht die Auswahl von Datenschnitten berücksichtigt.
Praktische Beispiele
Nehmen wir an, du hast einen Datenschnitt für Währungen erstellt und möchtest nur die ausgewählten Währungen in einer Zelle anzeigen. Du kannst den VBA-Code anpassen, um die Werte in eine bestimmte Zelle zu schreiben:
Sub AuslesenUndSchreiben()
Dim ws As Worksheet
Dim result As String
result = ""
' Rest des Codes ...
For Each item In slicer.SlicerItems
If item.Selected Then
result = result & item.Name & ", "
End If
Next item
' Entferne das letzte Komma
If Len(result) > 0 Then
result = Left(result, Len(result) - 2)
End If
ws.Range("A1").Value = result ' Schreibe das Ergebnis in Zelle A1
End Sub
Tipps für Profis
- Automatisierung: Du kannst das Auslesen der Datenschnittwerte automatisieren, indem du das Makro beim Öffnen der Datei oder beim Ändern eines Datenschnitts auslöst.
- Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen in deinem VBA-Code, um unerwartete Probleme zu vermeiden.
FAQ: Häufige Fragen
1. Wie kann ich die Schriftgröße der Datenschnitte in Excel ändern?
Du kannst die Schriftgröße der Datenschnitte ändern, indem du mit der rechten Maustaste auf den Datenschnitt klickst, Größe und Eigenschaften auswählst und die Schriftart anpasst.
2. Was tun, wenn ich keine Verbindung zu meinem Datenschnitt herstellen kann?
Stelle sicher, dass der Datenschnitt korrekt mit der Pivot-Tabelle verbunden ist. Überprüfe die Datenquelle der Pivot-Tabelle und stelle sicher, dass sie aktuell ist.