VBA – Pivot-Tabelle bzw. Alle Pivot-Tabellen aktualisieren
In this Article
In diesem Tutorial zeigen wir Ihnen, wie Sie eine Pivot-Tabelle oder alle Pivot-Tabellen mit VBA aktualisieren können.
Pivot-Tabellen sind ein äußerst leistungsfähiges Datentool in Excel. Pivot-Tabellen ermöglichen es, große Datenmengen zu analysieren und zu interpretieren, indem sie Felder und Zeilen gruppieren und zusammenfassen.
Wenn wir eine Pivot-Tabelle erstellen, werden die Daten in einem so genannten Pivot-Tabellen-Cache gespeichert.
Wenn die Datenquelle der Pivot-Tabelle aktualisiert wird, wird die Pivot-Tabelle selbst nicht aktualisiert. Zum Aktualisieren der Quelldaten der Pivot-Tabelle muss der Excel-Benutzer auf die Schaltfläche Alle aktualisieren, die sich unter der Hauptregisterkarte Daten in der Menüleiste befindet, klicken.
Alternativ dazu können wir Makros, die die Daten für uns aktualisieren, in VBA schreiben!
Alle Datenverbindungen aktualisieren
Die einfachste Methode, die Daten zu aktualisieren, ist die Verwendung von VBA, um nachzuahmen, was die Schaltfläche Alle aktualisieren, die sich auf der Menüleiste befindet, bewirkt.
Sub VerbindungenAktualisieren()
ActiveWorkbook.RefreshAll
End Sub
Mit dieser Methode werden alle Verbindungen zu den Daten in Ihrer aktuellen Arbeitsmappe aktualisiert. Es wird auch nicht nur eine einzelne Pivot-Tabelle aktualisiert, sondern mehrere, wenn Sie mehr als eine mit verschiedenen Datensätzen verbunden haben.
Alle Pivot-Tabellen aktualisieren
Um nur die Pivot-Tabellen in unserer Arbeitsmappe zu aktualisieren, aber alle anderen Datenverbindungen auszuschließen, können wir eine Methode namens RefreshTable verwenden.
Wenn wir mehrere Pivot-Tabellen in unserer Arbeitsmappe haben, müssten wir alle Pivot-Tabellen in einer Schleife durchlaufen, um sie alle zu aktualisieren. Dazu deklarieren wir zunächst eine Pivot-Tabellen-Variable und erstellen dann eine For-Each-Schleife, um alle Pivot-Tabellen in der aktuellen Arbeitsmappe zu durchlaufen.
Sub NurPivotTabellenAktualisieren()
Dim tblPivot As PivotTable
For Each tblPivot In ActiveWorkbook.PivotTables
tblPivot.RefreshTable
Next tblPivot
End Sub
Wir können ein ähnliches Makro verwenden, um die Pivot-Tabellen in unserem aktuellen Blatt und nicht in der gesamten Arbeitsmappe zu aktualisieren. Wir würden dann eine Schleife zum Durchlaufen der Pivot-Tabellen in ActiveSheet und nicht in ActiveWorkbook erstellen.
Sub NurPivotTabellenImAktuellenBlattAktualisieren()
Dim tblPivot As PivotTable
For Each tblPivot In ActiveSheet.PivotTables
tblPivot.RefreshTable
Next tblPivot
End Sub
Dieses Makro wäre am nützlichsten, wenn wir einfachen Zugriff darauf in unserem ActiveSheet hätten. Um dies zu erreichen, können wir eine Schaltfläche auf dem Blatt erstellen, um das Makro auszuführen.
Eine Pivot-Tabelle aktualisieren
Wenn wir nur die Pivot-Tabelle, an der wir gerade arbeiten, aktualisieren wollen und nicht alle anderen Pivot-Tabellen in der Arbeitsmappe, müssen wir die spezifische Pivot-Tabelle identifizieren. Voraussetzung dafür ist natürlich, dass Wir den Namen der Pivot-Tabelle kennen. In diesem Fall lautet er PivotTabelle1.
Sub EineTabelleAktualisieren()
ActiveSheet.PivotTables("PivotTabelle1").RefreshTable
End Sub
Aktualisieren vom Pivot-Tabellen-Cache
Wenn wir mehrere Pivot-Tabellen, die aber alle dieselben Daten verwenden, in unserer Arbeitsmappe haben, können wir den Pivot-Tabellen-Cache aktualisieren, anstatt die eigentliche Pivot-Tabelle zu aktualisieren. Durch das Aktualisieren des Caches werden dann alle Pivot-Tabellen, die die im Cache enthaltenen Daten verwenden, automatisch aktualisiert.
Sub CacheAktualisieren()
Dim chPivot As PivotCache
For Each chPivot In ActiveWorkbook.PivotCaches
chPivot.Refresh
Next chPivot
End Sub