Pivot-Tabellen mit VBA aktualisieren
Schritt-für-Schritt-Anleitung
Um eine Pivot-Tabelle in Excel mithilfe von VBA zu aktualisieren, kannst du den folgenden Code verwenden. Dieser Code aktualisiert eine Pivot-Tabelle, nachdem ein SVERWEIS in einem bestimmten Bereich durchgeführt wurde.
Sub auto_open()
MsgBox "Sverweis wird aktualisiert"
With Sheets("Zusammenfassung")
.Visible = True
.Range("A2153:CF2153").AutoFill Destination:=.Range("A2153:CF12152")
.Visible = False
End With
Dim pvTab As PivotTable
With Sheets("MZW")
Set pvTab = .PivotTables(1) 'oder den spezifischen Namen verwenden
pvTab.PivotCache.Refresh
End With
End Sub
Stelle sicher, dass der Name der Pivot-Tabelle korrekt ist. Alternativ kannst du auch den Index verwenden, wenn nur eine Pivot-Tabelle auf dem Blatt vorhanden ist.
Häufige Fehler und Lösungen
-
Bezugsfehler bei der Aktualisierung:
-
Pivot-Tabelle nicht sichtbar:
- Stelle sicher, dass das Tabellenblatt, auf dem die Pivot-Tabelle ist, nicht ausgeblendet ist.
- Verwende
Sheets("MZW").Visible = True vor der Aktualisierung.
-
Pivot-Tabellen-Referenz:
- Wenn du mehrere Pivot-Tabellen hast, stelle sicher, dass du die richtige Pivot-Tabelle identifiziert hast. Nutze entweder den Namen oder den Index.
Alternative Methoden
-
Pivot automatisch aktualisieren:
Du kannst auch die Option "PivotTable automatisch aktualisieren bei Öffnen der Datei" aktivieren. Dies kannst du in den PivotTable-Optionen finden.
-
Makro für alle Pivot-Tabellen aktualisieren:
Wenn du alle Pivot-Tabellen in einer Arbeitsmappe aktualisieren möchtest, verwende folgenden Code:
Sub AllePivotsAktualisieren()
Dim ws As Worksheet
Dim pt As PivotTable
For Each ws In ThisWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.RefreshTable
Next pt
Next ws
End Sub
Praktische Beispiele
Hier sind zwei Beispiele, wie du die VBA-Skripte anpassen kannst:
-
Aktualisieren einer spezifischen Pivot-Tabelle:
Sub AktualisierenPivot()
Sheets("MZW").PivotTables("PivotTable24").PivotCache.Refresh
End Sub
-
Aktualisieren aller Pivot-Tabellen in der aktuellen Arbeitsmappe:
Sub AllePivotsAktualisieren()
Dim pt As PivotTable
For Each pt In ActiveSheet.PivotTables
pt.RefreshTable
Next pt
End Sub
Tipps für Profis
- Vermeide die Verwendung von
.Select und .Activate, um deinen Code effizienter und schneller zu gestalten.
- Nutze
With-Blöcke, um den Code leserlicher zu machen und die Ausführung zu beschleunigen.
- Teste deinen Code schrittweise, um Fehler schnell zu identifizieren und zu beheben.
FAQ: Häufige Fragen
1. Wie kann ich eine Pivot-Tabelle automatisch aktualisieren, wenn ich Daten ändere?
Du kannst VBA verwenden, um die Pivot-Tabelle bei bestimmten Ereignissen, wie dem Ändern von Daten, zu aktualisieren. Füge den Code in das Arbeitsblattmodul ein.
2. Was ist der Unterschied zwischen PivotCache.Refresh und RefreshTable?
PivotCache.Refresh aktualisiert die Datenquelle, während RefreshTable die Pivot-Tabelle selbst aktualisiert. In der Regel ist es sinnvoll, beide Methoden zusammen zu verwenden.
3. Kann ich mehrere Pivot-Tabellen gleichzeitig aktualisieren?
Ja, du kannst ein Makro erstellen, das alle Pivot-Tabellen in der Arbeitsmappe durchläuft und aktualisiert, wie in den alternativen Methoden beschrieben.