Error 1004 bei PivotCache-Zuordnung
22.10.2014 16:20:18
Hendrik
ich bin nach langer Testphase an einem Punkt angekommen, an dem ich euch um Unterstützung bitten muss.
Script-Hintergrund: Es gibt 2 Excel-Workbooks. Nennen wir sie mal Quelle und Ziel.
In der Quell-Datei wird eine große Tabelle mit Budgetdaten monatlich aktualisiert und als Monatsdatei gespeichert (zu Archivierungszwecken). In der Zieldatei befinden sich etwa 25 Sheets, die jeweils ein Projekt abdecken. Die Trennung erfolgt, da die Datei mit den Projektdaten als Wertekopie weiter versendet wird, ohne das die Quelldatei offengelegt werden muss.
Script Ziel: Bei allen Sheets der Quelle muss einmal im Monat die Datenquelle auf die neue Monatsdatei gezogen werden. Hierzu könnte man das in jedem Sheet manuell tun.
Herangehensweise: Ich versuche, es über die Pivotcaches zu lösen. Ich ändere bei einem Sheet manuell die Datenquelle (Sheet 2) und weise jeder Pivottabelle den Cache der ersten Pivottabelle in diesem Sheet zu. Das sieht so aus (Script habe ich aus einem Tutorial kopiert):
1 Sub ChangePivotCache()
2 Dim pt As PivotTable
3 Dim wks As Worksheet
4
5 For Each wks In ActiveWorkbook.Worksheets
6 For Each pt In wks.PivotTables
7 pt.CacheIndex = ThisWorkbook.Sheets(2).PivotTables(1).CacheIndex
8 Next pt
9 Next wks
10 End Sub
Das Script lief eine Zeit lang wunderbar, aber plötzlich kommt bei jedem Ausführen eine Fehlermeldung "Laufzeitfehler 1004 Anwendungs- oder objektdefinierter Fehler" in Zeile 7.
Interessanterweise funktioniert die ausführung, wenn ich statt Sheet 2 bspw. Nummer 3 wähle (noch mit dem alten Cache) und damit die eben vorgenommene manuelle Änderung überschreibe.
Ich hoffe die Beschreibung ist verständlich.
Grüße,
Hendrik