Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
972to976
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
972to976
972to976
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Pivotdatenquelle per VBA ändern

Pivotdatenquelle per VBA ändern
07.05.2008 10:47:00
Lonni
Hallo Cracks,
könnt Ihr mir sagen wie ich folgendes Problem in VBA lösen kann?
Situation ist die, dass eine Pivottabelle in Excel auf eine externe Datenquelle zugreift. Mit welchem Befehl kann ich die Datenquelle ändern?
Bsp: Manuell kann ich im Pivotassistent in Excel selbst in Schritt 2 (von 3) auf den Button "Daten importieren" gehen. Dann bei Befehlstext den Tabellennamen der Quelldaten in der Datenbank abändern und mit "ok" und "fertig stellen" abschließen. Danach lädt die Pivottabelle die Daten aus der neuen Tabelle und (nachdem der Aufbau derselbe ist) zeigt die neuen Daten in derselben Pivot-Mimik an.
Diese manuelle Geschichte müsste doch auch per VBA gehen?!
Mein Ansatz war mal: ActiveSheet.PivotTableWizard SourceType:=xlExternal, SourceData:="XYDB.dbo.View_Daten1"
bzw. für die andere Tabelle:
ActiveSheet.PivotTableWizard SourceType:=xlExternal, SourceData:="XYDB.dbo.View_Daten2"
Leider läuft das so nicht.
Danke für Lösungsvorschläge!
Gruß
Lonni

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Evtl. über .CommandText lösbar ?
07.05.2008 12:36:00
NoNet
Hallo Lonni,
ich habe das mal mit einer PIVOT-Tabelle nachgestellt, die ihre Daten aus einer ACCESS-Datenbank bezieht. Diese Abfrage wird intern in einer SQL-Abfrage gespeichert, die per Eigenschaft ActiveWorkbook.PivotCaches(1).Commandtext ausgelesen und verändert werden kann !
Mit folgendem VBA-Code kannst Du den SQL-Code er Abfrage modifizieren und somit auf eine andere Datenquelle zugreifen :
VBA-Code:
Sub TauschePivotDatenQuelleACCESS()
    'Beispiel : Die externe Datenquelle einer PIVOT-Tabelle in Excel tauschen/ändern
    '07.05.2008, NoNet - www.excelei.de
    'Datenbank "Daten.mdb" enthält 2 Tabellen : "Tabelle1" und "Tabelle2"
    'Die PIVOT-Tabelle in Excel ist AKTUELL mit "Tabelle1" verknüpft (Felder "Name" und "Wert")
    'PIVOT-Datenquelle von "Tabelle1" der ACCESS-Datenbank auf "Tabelle2" der
    'gleichen Datenbank ändern. Datenbank selbst bleibt identisch !
    'Die beiden Tabellen müssen die gleichen (in der PIVOT-Tabelle verwendeten Felder beinhalten !)
    'PivotCaches(1) ist die erste PIVOT-Datenquelle der aktuelle Mappe !
    'CommandText enthält den SQL-String der Abfrage - muss evtl. angepasst werden :
    '    SELECT Tabelle1.Name, Tabelle1.Wert
    '    FROM Tabelle1 Tabelle1
    '    ORDER BY Tabelle1.Name
    ActiveWorkbook.PivotCaches(1).CommandText = _
        Replace(ActiveWorkbook.PivotCaches(1).CommandText, "Tabelle1", "Tabelle2")
    'CommandText enthält nun den geänderten SQL-String der Abfrage :
    '    SELECT Tabelle2.Name, Tabelle2.Wert
    '    FROM Tabelle2 Tabelle2
    '    ORDER BY Tabelle2.Name
End Sub
Teste doch mal, ob das auch für deine Datenbank-Verbindung funktioniert !
Gruß, NoNet

Anzeige
Und noch ein Bildchen zur Veranschauung
07.05.2008 13:03:27
NoNet
Hallo Lonni, hey @alle Interessierten,
hier die bildliche Darstellung dieses Beispiels :
Userbild
Gruß, NoNet

AW: Evtl. über .CommandText lösbar ?
07.05.2008 13:09:24
Lonni
Hallo noNet,
da bleibt mir nur noch zu sagen:
PERFEKT!!!
Danke und Gruß
Lonni

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige