Excel Automation

19/03/2009 - 13:11 von Maja Meyers | Report spam
Hallo NG,

Auch nach dem Lesen des AEK-Beitrages von Michael Zimmermann bleiben mir
Fragen bei der Excel Automation.


ich fülle Daten in eine Exceldatei aus Access heraus.
Die Exceldatei hat 2 Tabellen für Daten und 2 Diagrammblàtter mit
vorhandenen Diagrammen.
Das Füllen und formatieren der Daten ist kein Problem, ich komme aber
mit den Diagrammen nicht weiter.
Je nach Anzahl der Zeilen hat das Diagramm eine andere (angepaßte)
Datenquelle. Mit dem Makrorecorder habe ich die Anpassung der
Quellzeilen aufgezeichnet, kann damit aber in Access nichts anfangen

Das Excel Makro sieht so aus:

ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Sheets("Daten").Range("B15:M37"),
PlotBy:=xlColumns
ActiveChart.SeriesCollection(1).XValues = "=Daten!R15C9:R37C9"
ActiveChart.SeriesCollection(1).Values = "=Daten!R15C3:R37C3"
ActiveChart.SeriesCollection(1).Name = "=""Tol -"""
...

in Access ist aber ActiveChart nicht bekannt - also habe ich es definiert:
Dim ActiveSheet As Object, ActiveChart As Object
Set ActiveSheet = objActiveWkb.Worksheets("Graphik-Z")
Set ActiveChart = ActiveSheet.ChartObjects("Diagramm 1")

ich kann nun Eigenschaften wie
ActiveChart.Parent.Name, ActiveChart.chart.name,
ActiveChart.chart.barshape ansprechen, mir fehlen aber Eigenschaften wie
Datasource oder SeriesCollection

hab dann versucht, ActiveChart als solches zu deklarieren, was aber zu
einem Fehler führt
dim ActiveChart as Excel.Chart
Set ActiveChart = ActiveSheet.ChartObjects("Diagramm 1") führt zu Typen
unvertràglich.

Was muss ich tun, um auf diese Eigenschaften zugreifen zu können ?

tia Maja
 

Lesen sie die antworten

#1 Klaus Oberdalhoff
19/03/2009 - 16:44 | Warnen spam
Hi,

Auch nach dem Lesen des AEK-Beitrages von Michael Zimmermann bleiben mir


[...]

also dann lies das Dokument nochmal

da steht an allen möglichen und unmöglichen Stellen (Seite 4 ff, Seite 33
ff) dass du zuerst mal das Excel-Objekt als solches instantiieren musst.

Daraus ergibt sich klar und deutlich, dass wenn du ein Excel-Makro hast und
du dies von Access oder sonstwo ausführen willst, du immer das
Excel-Applikation Pràfix - er nennt es xlApp. erzeugen und dann vor die
Makrobefehle setzen musst...

also statt
ActiveChart.PlotArea.Select



immer xlApp.ActiveChart

mfg

Klaus

Ähnliche fragen