Anzeige
Archiv - Navigation
1356to1360
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

Automation error Diagrammerstellung per VBA

Automation error Diagrammerstellung per VBA
10.04.2014 17:08:06
Philipp
Hallo Zusammen,
ich arbeite jetzt schon länger an einem Problem und hoffe, ihr könnte mir helfen.
Ich möchte via VBA verschiedene Pivot Diagramme erstellen. Die Routine an sich funktioniert auch, nur leider kommt beim 2. Diagramm ein Runtime error -2147467259 (80004005) - Automation error in der Zeile:
.SetSourceData Source:=ThisWorkbook.Worksheets(Mid(strPcls, 3, 100) & " CMT Charts").PivotTables("PivotTable" & intPivotCount).TableRange1
Ich habe schon so halb rausgefunden, dass es wohl an einer Art fehlerhaften Ansprechen des Diagramms liegt, aber ich schaff es nicht, den Fehler rauszubekommen.
Das ist die Datei.
https://www.herber.de/bbs/user/90099.xlsm
Einfach das sub createAllCMT_Charts laufen lassen.
Schon mal Danke für die Hilfe.
Gruß
Philipp

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automation error Diagrammerstellung per VBA
10.04.2014 20:57:50
fcs
Hallo Philipp,
die Problem sind, dass
1. die Zelle A1 in dem Tabellenblatt selektiert ist in dem die Pivottabellen und Charts angelegt werden.
2. in Zelle A1 die Pivottabelle zum 1. gefundenen Land angelegt wird.
3. beim Anlegen des 2. Charts die Daten der aktiven Zelle (= Daten der 1. Pivottabelle) dem Chart zueordnet werden.
4. die Datenquelle eines Charts, das die Daten einer Pivottabelle darstellt, nicht durch eine andere Quelle ersetzt werden kann.
Problem Nr. 4 führt dann in der Summe zu dem Automatisierungsfehler.
Abhilfe:
Vor dem Anlegen des Chartobjects wird der Zellbereich des zuvor angelegten Pivottabellenberichtes selektiert. Dann muss auch die Datenquelle nicht neu zugewiesen werden.
Damit der Code etwas übersichtlicher wird sollte für das Tabellenblatt, in dem Piovts und Charts angelegt werden, eine Objektvariable deklariert werden. Ebenso für die kreierte Pivottabelle.
Gruß
Franz
Textdatei mit modifiziertem Code in Module1
https://www.herber.de/bbs/user/90103.txt

Anzeige
AW: Automation error Diagrammerstellung per VBA
11.04.2014 07:32:39
Philipp
Hallo Franz,
klappt alles wunderbar und es sind ein paar interessante und schöne Ansätze in deinem Code dabei.
Vielen Dank.
Was genau meinst Du denn mit der Objektvariable? Und für die sheets, wo Pivots&Charts kreiert werden, klappt das doch nicht, da ich die live erstelle, oder?
Gruß
Philipp

AW: Objektvariablen unter VBA
11.04.2014 10:00:25
fcs
Hallo Philipp,
es ist meist kein Problem auch die Objekte, die während der Ausführung eines Makros erst erstellt werden, einer entsprechenden Objektvariablen zuzuordnen.
Entweder man kann sich auf das gerade aktive Objekt beziehen, macht es über den Namen oder die Index-Nummer des Objekts, oder ein Objekt wird direkt beim Anlegen einer entsprechenden Objektvariablen zugeordnet. Beispiel:
Sub Test()
Dim wkbAktiv As Workbook, wksAktiv As Worksheet
Dim wkbNeu As Workbook, wksNeu1 As Worksheet, wksNeu2 As Worksheet
'aktive Mappe und Tabelle Objektvariablen zuordnen
Set wkbAktiv = ActiveWorkbook
Set wksAktiv = wkbAktiv.Worksheets("Tabelle1")
'neue Arbeitsmappe mit 2 Tabellenblättern anlegen
Set wkbNeu = Application.Workbooks.Add(Template:=xlWBATWorksheet)
With wkbNeu
Set wksNeu1 = .Worksheets(1)
Set wksNeu2 = .Worksheets.Add(after:=.Sheets(.Sheets.Count))
wksNeu1.Name = "Import"
wksNeu2.Name = "Export"
End With
'Daten in die neue Datei kopieren
wksAktiv.Cells(1, 1).Copy wksNeu1.Cells(1, 1)
wksAktiv.Cells(2, 1).Copy wksNeu2.Cells(1, 1)
End Sub

Gruß
Franz

Anzeige
AW: Objektvariablen unter VBA
11.04.2014 10:09:46
Philipp
Hallo Franz,
jetzt weiß ich was Du meinst. Also nicht ws.name & " CMT Charts", sondern wsNew = ws.name & " CMT Charts".
Ich dachte, ich solle in das Modul des neuen Worksheets eine Variable schreiben.
Du hast natürlich recht. Das ist schon übersichtlicher. Ab und an bin ich einfach zu faul:)
Noch mal danke für die Hilfe.
Gruß
Philipp

99 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige