Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
816to820
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
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Aktualisierung von Verknüpfungen von PivotTables m

Aktualisierung von Verknüpfungen von PivotTables m
08.11.2006 14:24:35
Verknüpfungen
Hallo Excel-Freunde,
folgende Problemstellung:
- Die Master-PivotTable bezieht sich auf Access-Datenbank
(ca. 1 Mio. Zeilen)
- alle anderen PivotTables des Dokumentes sind mit dem Master PivotTable
verknüpft (aus Platz- und Aktualisierungsgründen)
- sobald die Access-Datenbank um eine Spalte erweitert wird (oder ein
Spaltenname verändert wird) gehen die Verknüpfungen verloren
- diese Verknüpfungen müssen für jedes PivotTable manuell mit 7 immer den
selben Schritten neu erstellt werden
- einige Tabellenblätter enthalten mehrere PivotTables
(d.h. die zu aktualisierenden PivotTables sind nicht immer an der
gleichen Stelle in den Tabellenblättern)
- die Datei enthält ca. 100 Tabellenblätter
Ich habe hierbei schon eine sher gute Hilfestellung im Forum bekommen.
(Vielen Dank an Hansueli!!!) Die Lösung funktioniert auch hervorragend.
Allerdings nur wenn die Rohdaten auf die die Masterpivottabelle zugreift
in Excel vorliegen. Sind die Rohdaten wie in meinem Fall in einer Access-Datei
gespeichert, dann kommt es zu einem Laufzeitfehler '13' (Typen unverträglich)
und zwar beim Statement tMasterSource = pt.SourceData (siehe Makro).
Anbei das Makro (programmiert von hansueli, danke nochmal!):

Sub ChildPivotAktualisieren()
Dim ws As Worksheet
Dim pt As PivotTable
Dim tMasterName, tMasterSource As String
'   Find first MasterPivot Table and its Sourcedata
tMasterName = "PivotTable1"                     ' Namen anpassen !!!
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
If pt.Name = tMasterName Then
tMasterSource = pt.SourceData
Exit For
End If
Next
If tMasterSource <> "" Then Exit For
Next
'   Replace all  Child-Pivot's Sourcedata
If tMasterSource <> "" Then
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
If pt.Name <> tMasterName Then
pt.SourceData = tMasterSource
iPTCnt = iPTCnt + 1
End If
Next
Next
MsgBox iPTCnt & " pivot table(s) adjusted to " & tMasterSource, vbOKOnly + vbInformation
Else
MsgBox "NO SOURCEDATA FOUND from pivot table <" & tMasterName & ">", vbOKOnly + vbCritical
End If
End Sub

Für einen Hinweis wäre ich sehr dankbar!
Viele Grüße,
Dirk

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktualisierung von Verknüpfungen von PivotTables m
08.11.2006 15:00:02
Verknüpfungen
Hallo Dirk,
Versuch mal anstatt "tMasterSource As String" "tMasterSource As Variant".
Schoene Gruesse
Stefan
AW: Aktualisierung von Verknüpfungen von PivotTables m
08.11.2006 15:07:47
Verknüpfungen
Hi Stefan,
danke für den Tip. Klappt aber leider nicht.
Immer noch die gleiche Fehlermeldung.
Ich vermute das da ein MS-Query übergeben werden muß und da
müssen mehrere Parameter (Connection, ODBC etc.) übergeben werden...
Gruß,
Dirk
AW: Aktualisierung von Verknüpfungen von PivotTables m
08.11.2006 16:43:57
Verknüpfungen
Hallo Dirk,
unter http://support.microsoft.com/kb/555165/de gibt es eine (saumäßig eingedeutschte) Fehlerbeschreibung dazu.
Dort wird empfohlen statt pt.SourceData den Konstrukt pt.PivotCache.CommandText zu benutzen.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Aktualisierung von Verknüpfungen von PivotTables m
08.11.2006 17:00:03
Verknüpfungen
Hallo Luschi,
du kommst wohl aus Heddernheim ;-). Lies die antwort durch, die ich eben gerade
nochmal an Stefan geschrieben habe. Insbesondere mit dem Speicherplatz-Problem.
Ich denke da könntest du mit dem pt.PivotCache.CommandText recht haben! Ich
weiß nur noch nicht ob meine VBA-Kenntnisse zum verwursten dieses Statements ausreichen.
Danke aber für den Hinweis!
Gruß,
Dirk
AW: Aktualisierung von Verknüpfungen von PivotTables m
08.11.2006 16:55:04
Verknüpfungen
Hallo Stefan,
mit dem Variant hats doch geklappt! Also Danke!!!
Mußte in der Folge aber dann die Zeilen 'If tMasterSource "" Then'
entfernen, da sonst wieder Fehler '13' auftritt.
Leider gibt es noch ein Riesenproblem, obwohl das Makro jetzt funktioniert:
Lauffähiges Makro:

Sub ChildPivotAktualisieren()
Dim ws As Worksheet
Dim pt As PivotTable
Dim tMasterName, tMasterSource As Variant
'   Find first MasterPivot Table and its Sourcedata
tMasterName = "PivotTable1"                     ' Namen anpassen !!!
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
If pt.Name = tMasterName Then
tMasterSource = pt.SourceData
Exit For
End If
Next
Exit For
Next
'   Replace all  Child-Pivot's Sourcedata
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
If pt.Name <> tMasterName Then
pt.SourceData = tMasterSource
iPTCnt = iPTCnt + 1
End If
Next
Next
End Sub

Folgendes Problem:
jetzt ist die Datei auf einmal 190Mb statt wie vorher 30Mb groß, weil jede
Pivottabelle eigenständig auf die Rohdaten zugreift und nicht wir vorher
jede Pivottabelle (platzsparend) auf die Masterpivottabelle zugreift.
Weiß hier noch jemand Rat? Zumal ich auch in der Masterpivot berechnete Felder
habe, die ich in den anderen Pivottabellen nur benutzen kann, wenn ich diese auf die Masterpivot referenziere!
Gruß,
Dirk
Anzeige
AW: Aktualisierung von Verknüpfungen von PivotTables m
08.11.2006 17:18:08
Verknüpfungen
Hallo Dirk,
So aus dem stehgreif nur so (ist dann doppelte Arbeit fuer Dich aber nicht siebenfache oder so...):
Bisher denke ich passt Du PivotTable1 manuell auf die neue DB-Struktur an, und laesst dann das Makro laufen.
Du muesstest jetzt zusaetzlich z.B. PivotTable2 manuell auf die neue Struktur von PivotTable1 anpassen (nicht auf die originale DB), und dann in dem Makro schreiben
tMasterName = "PivotTable2"
Hoffe das bringt was...
Schoene Gruesse
Stefan
AW: Aktualisierung von Verknüpfungen von PivotTables m
08.11.2006 17:52:14
Verknüpfungen
Hallo Stefan,
eine geniale Idee!!! Leider funltioniert sie nicht, weil Excel mir
als Sourcedata für den Pivottable2 (der manuell auf den Masterpivottable verlinkt wurde)
wieder die Sourcedata von der Access-Datenbank gibt... also wieder wird jeder
Pivottable eigenständig mit den Access-Rohdaten verlinkt, was dann wieder
unendlich viel Speichplatz kostet.
Noch ne Frage: Ich habe ja jetzt Datentyp Variant... dann geht das hier aber nicht:
If tMasterSource ""
Hast du ne Idee wie man dies mit Datentyp Variant zum laufen bringt?
Gruß und Danke für die Unterstützung,
Dirk
Anzeige
AW: Aktualisierung von Verknüpfungen von PivotTables m
08.11.2006 18:55:12
Verknüpfungen
Hallo Dirk,
probier mal ob
If tMasterSource  Empty
das gewuenschte Ergebnis bringt.
Schade dass das andere nicht funktioniert hat.
Schoene Gruesse
Stefan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige