Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1336to1340
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
Inhaltsverzeichnis

Per VBA Pivot Datenquelle auf andere Piv.umstellen

Per VBA Pivot Datenquelle auf andere Piv.umstellen
07.11.2013 14:49:13
Georg
Hallo werte Mitstreiter,
meine VBA Kenntnisse sind bescheiden und eingerostet, aber offensichtlich hält sich hier im Büro noch hartnäckig die Meinung, dass ich immer noch den schwarzen Künsten fröhne.
Ich wurde gebeten ein kleines VBA Makro zu schreiben, welches in einer Excel Datei, die mehrere Pivot-Tabellen enthält, die erste Pivot Tabelle zur Datenquelle aller anderen Pivot Tabellen macht. Genauso, wie man das bei Assistenten via: "Where is the data that you want to analize? - Another PivotTable report or PivotChart report" macht.
ich bin mir sicher, da gibts eine einfache Lösung, aber ausser Fehlermeldungen habe ich nichts zusammengebracht. Sogar, wenn ich das händisch mit eingeschaltenem Macrorekorder mache und dann einfach abspiele gibts einen Fehler.
Schön wärs, wenn die lösung 2003/2007/2010 kompatibel ist.
Ich bitte inständigst um Erleuchtung
Liebe Grüsse aus Wien
Georg

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per VBA Pivot Datenquelle auf andere Piv.umstellen
07.11.2013 15:30:17
fcs
Hallo Georg,
diesen Menüpunkt gibt es in dieser Form im Assisten für Pivots unter Excel 2010 nicht mehr.
Wenn alle Pivottabellen die gleiche Datenquelle benutzen sollen, dann kann man das mit folgendem Makro umsetzen - zumindest dann, wenn auf eine Exceltabelle als Quelle zugegriffen wird.
mfg
Franz
Sub Pivottables_Same_Cache()
Dim objCache As PivotCache
Dim pvMasterPivot As PivotTable, pvSlavePivot As PivotTable
Dim wks As Worksheet, wksMasterPivot As Worksheet
Set wksMasterPivot = ActiveWorkbook.Worksheets("Tabelle3")       'Blattname anpassen
Set pvMasterPivot = wksMasterPivot.PivotTables(1)   'ggf. Nr. anpassen oder durch _
Pivottable-Name in Anführungszeichen ersetzen.
Set objCache = pvMasterPivot.PivotCache
For Each wks In ActiveWorkbook.Worksheets
For Each pvSlavePivot In wks.PivotTables
If wks.Name  wksMasterPivot.Name _
Or (wks.Name = wksMasterPivot.Name _
And pvSlavePivot.Name  pvMasterPivot.Name) Then
pvSlavePivot.PivotCache.SourceData = objCache.SourceData
End If
Next
Next
End Sub

Anzeige
AW: Per VBA Pivot Datenquelle auf andere Piv.umstellen
07.11.2013 15:54:17
Georg
Lieber Franz!
das schaut ziemlich gut aus!
'...zumindest dann, wenn auf eine Exceltabelle als Quelle zugegriffen wird'
was muss ich ändern, wenn auf eine access datenbank zugegriffen wird?
Liebe Grüsse
Georg

AW: Per VBA Pivot Datenquelle auf andere Piv.umstellen
07.11.2013 17:10:49
fcs
Hallo Georg,
du musst nur eine Zeile anpassen. Zumindest hat es mit einer simplen Accestabelle funktioniert.
mfg
Franz
    'Datenquelle ist eine Exeltabelle
'pvSlavePivot.PivotCache.SourceData = objCache.SourceData
'Datenquelle ist Tabelle in einer Accessdatenbank oder Exceltabelle
pvSlavePivot.ChangePivotCache (wksMasterPivot.Name & "!" & pvMasterPivot.Name)

Anzeige
AW: Per VBA Pivot Datenquelle auf andere Piv.umstellen
08.11.2013 11:43:49
Georg
Lieber Franz!
Erstmal: Pivot Steuerung über VBA ist garstig! Und vielen Dank, ohne deine Hilfe hätt ich das niemals rausgefunden ;)
Wenn die Art der Datenquelle gleich bleibt funktioniert der Code, das habe ich mit excel als Datenquelle getestet. Wenn sich jedoch in der Arbeitsmappe einige Pivots auf eine Access Datenquelle (die die komplett gleiche Struktur, wie die Excel Source hat) beziehen, dann steht zwar in der Sourcedata der betreffenden pivot die Excel Source richtig drin, geh ich dann manuell auf die Pivot und klicke update, dann versucht er auf die Access Datenquelle zuzugreifen. Die hab ich ihm zu testzwecken weggemoved, damit ich weiss, wohin er greifen will.
Irgendwelche Ideen dazu?

Anzeige
AW: Per VBA Pivot Datenquelle auf andere Piv.umstellen
07.11.2013 16:25:26
Georg
Lieber Franz,
noch etwas: ich habe, nachdem ich versucht habe den code zu verstehen, meine pivot tabellen testweise auf eine externe excel datei als datenbasis gesetzt und sowohl bei excel 2003 alsauch bei 2010 wirft es das Makro beim Updateversuch der 2. pivot, die sich im nächsten sheet befindet mit einem 1004er Fehler.
in den variablen vom workbook ubers sheet bis zur sourcedata steht das richtige drin. Der Fehler passiert hier: pvSlavePivot.PivotCache.SourceData = objCache.SourceData
Was hab ich da falsch gemacht?
Liebe Grüsse
Georg

AW: Per VBA Pivot Datenquelle auf andere Piv.umstellen
07.11.2013 17:13:40
fcs
Hallo Georg,
schau mal in meine vorherige Antwort, die scheint für verschiedene Quellen (intern und extern) zu funktionieren.
Pivottabelle sind unter VBA wegen ihrer vielfältigen Möglichkeiten nicht so ganz einfach zu händeln.
mfg
Franz
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige