Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
932to936
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

240 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige