11.05.2014, 12:48
(Dieser Beitrag wurde zuletzt bearbeitet: 26.09.2019, 10:08 von Rabe.
Bearbeitungsgrund: Link zu Beitrag "Pivot-Tabellen" aktualisiert, sowie weitere Makros ergänzt
)
Hallo,
Excel bietet mit Pivot-Tabellen ein mächtiges Auswertungsinstrument an.
Wenn eine Pivottabelle (PT) aktualisiert werden soll, gibt es mehrere Alternativen:
Man nutzt den Button 'Aktualisieren' in den PivotTable-Tools
Mit der folgenden Einstellung wird beim Öffnen der Mappe die PT aktualisiert:
- Rechtsklick auf die PT - PivotTable-Optionen - Register Daten - [X] Aktualisieren beim Öffnen der Datei
Wenn die PT in einem separaten Tabellenblatt erstellt wurde, kann man hinter das Modul des Tabellenblattes auch ein Worksheet_Activate-Makro hinterlegen:
Wenn die PT im gleichen Arbeitsblatt liegt, dann könnte man einfach einen CommandButton aus den ActiveX-Steuerelementen im Menü Entwicklertools aufziehen und den folgenden Code hinterlegen:
Wenn mehrere PTs in einer Mappe liegen und auf einen Schlag alle PTs aktualisiert werden sollen, dann könnte man folgende Prozedur nutzen:
Für einen Durchlauf durch alle PTs einer Mappe kannst Du die folgende Prozedur nutzen:
[Ergänzung Rabe]
Aktualisierung aller PTs des Tabellenblattes bei Änderungen im Bereich A2 bis K12:
Wenn ein Makro hinter das Pivot-Blatt gelegt wird, dann werden bei Aktivierung des Blatts die Pivots automatisch aktualisiert.
hinter das Blatt:
als allgemeines Modul:
Excel bietet mit Pivot-Tabellen ein mächtiges Auswertungsinstrument an.
Wenn eine Pivottabelle (PT) aktualisiert werden soll, gibt es mehrere Alternativen:
Man nutzt den Button 'Aktualisieren' in den PivotTable-Tools
Mit der folgenden Einstellung wird beim Öffnen der Mappe die PT aktualisiert:
- Rechtsklick auf die PT - PivotTable-Optionen - Register Daten - [X] Aktualisieren beim Öffnen der Datei
Wenn die PT in einem separaten Tabellenblatt erstellt wurde, kann man hinter das Modul des Tabellenblattes auch ein Worksheet_Activate-Makro hinterlegen:
Code:
Private Sub Worksheet_Activate()
Dim pt As PivotTable
For Each pt In ActiveSheet.PivotTables
pt.RefreshTable
Next pt
End Sub
Wenn die PT im gleichen Arbeitsblatt liegt, dann könnte man einfach einen CommandButton aus den ActiveX-Steuerelementen im Menü Entwicklertools aufziehen und den folgenden Code hinterlegen:
Code:
Private Sub CommandButton1_Click()
Dim pt As PivotTable
For Each pt In ActiveSheet.PivotTables
pt.RefreshTable
Next pt
End Sub
Wenn mehrere PTs in einer Mappe liegen und auf einen Schlag alle PTs aktualisiert werden sollen, dann könnte man folgende Prozedur nutzen:
Für einen Durchlauf durch alle PTs einer Mappe kannst Du die folgende Prozedur nutzen:
Code:
Sub RefreshPT()
Dim wS As Worksheet
Dim pt As PivotTable
For Each wS In ActiveWorkbook.Worksheets
For Each pt In wS.PivotTables
pt.RefreshTable
Next pt
Next wS
End Sub
[Ergänzung Rabe]
Aktualisierung aller PTs des Tabellenblattes bei Änderungen im Bereich A2 bis K12:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich1 As Range
Dim pt As PivotTable
Set Bereich1 = Range("A2:K12")
If Not Intersect(Target, Bereich1) Is Nothing Then
For Each pt In ActiveSheet.PivotTables
pt.RefreshTable
Next pt
End If
End Sub
Wenn ein Makro hinter das Pivot-Blatt gelegt wird, dann werden bei Aktivierung des Blatts die Pivots automatisch aktualisiert.
hinter das Blatt:
Code:
Private Sub Worksheet_Activate()
Call Pivot_aktualisieren
End Sub
Code:
Sub Pivot_aktualisieren()
'
' Pivot_aktualisieren: alle Pivot einer einzelnen Tabelle
' (c) 21.09.2011, Ralf
' Aufgerufen mit Worksheet_Activate() im betreffenden Tabellenblatt
'
Dim pt As PivotTable
'
'Alle Pivot-Tabellen eines Tabellenblattes durchlaufen
For Each pt In ActiveSheet.PivotTables
'Den PivotCache der PT aktualisieren
pt.PivotCache.Refresh
Next pt
End Sub
Gruß
Peter
Peter