Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Pivot - alte Daten nur ein Worksheet

Forumthread: Pivot - alte Daten nur ein Worksheet

Pivot - alte Daten nur ein Worksheet
18.12.2007 13:41:11
lobby007
Hallo,
habe folgenden Coder ergoogelt:

Sub DeleteOldPivotItemsWB()
'löschen von nicht mehr verwendeten Einträgen in Pivot-Tabellen
'basierend auf MSKB (Q202232)
'Quelle: Thomas Ramel
Dim wS              As Worksheet
Dim pt              As PivotTable
Dim pf              As PivotField
Dim pi              As PivotItem
On Error Resume Next
For Each wS In ActiveWorkbook.Worksheets
For Each pt In wS.PivotTables
pt.RefreshTable
For Each pf In pt.PivotFields
For Each pi In pf.PivotItems
If pi.RecordCount = 0 And _
Not pi.IsCalculated Then
pi.Delete
End If
Next
Next
Next
Next
End Sub


Das dauert aber ewig - 15 Minuten mit einer Datei mit 6 Pivottabellen.
Frage 1. geht das irgendwie schneller?
Frage 2. Habe versucht den Code nur auf das aktive worksheet umzuschreiben - bin aber gescheitert - wer weiß wie es geht wenn man es nur für das aktuelle Tabellenblatt oder gar nur für die aktuelle Pivottabelle geht auf der man steht?
Vielen Dank
Gruß
lobby007

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pivot - alte Daten nur ein Worksheet
18.12.2007 13:45:26
Rudi
Hallo,
2.1:

Sub DeleteOldPivotItemsWB()
'löschen von nicht mehr verwendeten Einträgen in Pivot-Tabellen
'basierend auf MSKB (Q202232)
'Quelle: Thomas Ramel
Dim wS              As Worksheet
Dim pt              As PivotTable
Dim pf              As PivotField
Dim pi              As PivotItem
On Error Resume Next
For Each pt In ActiveSheet.PivotTables
pt.RefreshTable
For Each pf In pt.PivotFields
For Each pi In pf.PivotItems
If pi.RecordCount = 0 And _
Not pi.IsCalculated Then
pi.Delete
End If
Next
Next
Next
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Pivot - alte Daten nur ein Worksheet
18.12.2007 14:35:00
lobby007
Hallo Rudi,
vielen Dank.
Ich wünsche Dir schöne Weihnachten.
gruß lobby007

AW: Pivot - alte Daten nur ein Worksheet
18.12.2007 14:23:00
Luschi
Hallo lobby007,
ab Excel-XP kannst Du auch diese Routine benutzen:

Sub DeleteOldPivotItemsWB()
'Pivots aktualisieren
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.PivotCache.Refresh
pt.PivotCache.MissingItemsLimit = xlMissingItemsNone
Next pt
Next ws
End Sub

Zudem ist auch diese Routine, wenn mehrere Pivot-Tabellen die gleiche Datenquelle haben:


Sub PivotCacheAngleichen()
'Setzt alle Pivot-Tabellen in der Arbeitsmappe mit gleicher Datenquelle auf
'den gleichen Pivotcache-Index, um Speicherplatz zu sparen
'von NoNet
Dim ws, ws2, p1, p2
For Each ws In Worksheets
For Each p1 In ws.PivotTables
For Each ws2 In Worksheets
For Each p2 In ws2.PivotTables
If ws.Name ws2.Name Or p1.Name p2.Name Then
If p1.SourceData = p2.SourceData Then
p2.CacheIndex = p1.CacheIndex
End If
End If
Next
Next
Next
Next
End Sub

Gruß von Luschi
aus klein-Paris

Anzeige
AW: Pivot - alte Daten nur ein Worksheet
18.12.2007 14:35:11
lobby007
Hallo Luschi,
vielen Dank, werde es morgen austesten - bin jetzt nicht mehr im Büro.
Ich wüsnche Dir schöne Weihnachten.
gruß lobby007
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige