Anhand einiger Beispiele, die ich online gefunden habe, habe ich die folgende VBA geschrieben, die erfüllt, was ich brauche. Ich habe auf meiner Übersichtsseite eine leere Pivot-Tabelle und eine mit diesem Makro verknüpfte Schaltfläche platziert, die alle anderen Pivot-Tabellen mit den gleichen Filtern aktualisiert.
HAFTUNGSAUSSCHLUSS: Dies funktioniert nicht für Felder, die "(Alle)" ausgewählt haben. Es war für mich nicht notwendig, nachzuschauen, aber es ist möglich, den folgenden Code so zu ändern, dass er die Unterstützung "(Alle)" enthält.
Sub UpdateAllPivotTables() Dim ws As Worksheet Dim wsMain As Worksheet Dim ptMain As PivotTable Dim pt As PivotTable Dim pfMain As PivotField Dim piMain As PivotItem Dim pi As PivotItem Dim pf As PivotField Dim hadError As Boolean On Error Resume Next Set wsMain = ActiveSheet Set ptMain = ActiveSheet.PivotTables(1) Application.EnableEvents = False For Each ws In ThisWorkbook.Worksheets If (Not (ws.Name = wsMain.Name)) Then ws.Unprotect For Each pt In ws.PivotTables pt.ManualUpdate = True For Each pf In pt.PageFields For Each pi In pf.PivotItems If (Not (pi.Visible = ptMain.PageFields(pf.Name).PivotItems(pi.Name).Visible)) Then pi.Visible = ptMain.PageFields(pf.Name).PivotItems(pi.Name).Visible End If Next pi Next pf pt.ManualUpdate = False Next pt 'ws.Protect End If Next ws Application.EnableEvents = True End Sub