Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1596to1600
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

setsourcedata in Excel aus ppt-vba ansteuern?

setsourcedata in Excel aus ppt-vba ansteuern?
01.01.2018 15:54:02
Manuel
Hallo zusammen,
Ich greife aus PowerPoint auf Excel zu, um dort Diagramme zu erstellen.
Im Kern funktioniert das auch alles.
Um den Code zu beschleunigen, versuche ich das Makro so umzustellen, dass der Diagrammbereich über "setsourcedata" definiert wird, anstatt über "xValues / Values" für jeden einzelnen Graphen.
Funktioniert im Kern auch, ABER:
Ich habe in Spalte 1 die x-Werte. In den darauffolgenden Spalten sind die y-Werte.
Allerdings kann zwischen der x-Spalte und den y-Spalten eine leere Spalte sein.
Wie auch immer ich den "setsourcedata"-Befehl ausführe, es gelingt mir nicht zwischen der x-Werte-Spalte und den y-Werte-Spalten freie Spalten zu lassen.
Beispiel:
Ich will den Diagrammbereich von x-Werte: range(cells(1,1),cells(4,1))
mit den y-Werten: range(cells(1,4),cells(4,8)) (5 Graphen)
haben.
Allerdings erhalte ich immer die Graphen von Spalte 2 bis Spalte 8, also 7 Graphen, anstatt von Spalte 4 bis 8.
Der folgende Beispiel-Code (im angehängten ppt) verdeutlicht meine Problemstellung. (Block 1 ist der Code mit setsourcedata, der zu viele Graphen erzeugt; Block 2 ist so wie es sein soll, dauert aber deutlich länger).
Beispielmakro:
https://www.herber.de/bbs/user/118600.zip
Vielen Dank!
schöne Neujahrsgrüße
Manuel

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

Betreff
Datum
Anwender
Anzeige
Benutze Union(Bereich1, Bereich2)
01.01.2018 16:04:05
Beverly
Hi Manuel,
ohne mir dein Beispiel jetzt angesehen zu haben: in Excel würde ich in diesem Fall nach folgendem Prinzip vorgehen

Dim rngBereich As Range
Set rngBereich = Union(Range("A1:A8"), Range("D1:D8"))
ActiveSheet.ChartObjects(1).Chart.SetSourceData Source:=rngBereich


AW: Benutze Union(Bereich1, Bereich2)
02.01.2018 08:13:46
Luschi
Hallo Manuel,
warum schickst Du die Exceldatei nicht mit. Ich lasse das neue Jahr ruhig angehen und da habe ich noch keine Lust, mir selber eine Excel-Demodatei zu erstellen, um Dein Problem zu testen.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Benutze Union(Bereich1, Bereich2)
02.01.2018 17:04:22
Manuel
Hallo,
Vielen dank schon mal für eure Antworten.
zu Luschi: Das ppt-Makro erstellt eine Dummy-Excel-file und alles, was mit dem Problem zusammen hängt.
zu Beverly:
- Die Range kann man noch erstellen (allerding als "as cellrange" in ppt)
- Hier scheitere ich im Moment daran, dass ppt-VBA den Befehl Union nicht erkennt.
- sowohl application.union wird nicht erkannt (weil das ja auch nur auf die ppt-application verweiset, die Union nicht kennt)
- aber auch unter Verwendung des Verweises auf das Excel wird der union-Befehl nicht erkannt:
(weder bei Bezug auf Application, noch auf Workbook noch auf Worksheet)
Set appExcel = CreateObject("Excel.Application")
Set excel_WB = appExcel.WorkBooks.Add
Set xlsBlatt = excel_WB.worksheets.Add
Dim rngBereich As CellRange
Set rngBereich = xlsBlatt.union(xlsBlatt.Range("A1:A8"), xlsBlatt.Range("D1:D8")) Fehler
Set rngBereich = xlsBlatt.union(xlsBlatt.Range("A1:A8"), xlsBlatt.Range("D1:D8")) Fehler
Set rngBereich = xlsBlatt.union(xlsBlatt.Range("A1:A8"), xlsBlatt.Range("D1:D8")) Fehler
schönen Gruß
Manuel
Anzeige
AW: Benutze Union(Bereich1, Bereich2)
02.01.2018 20:01:30
Beverly
Hi Manuel,
mit CreateObject("Excel.Application") erstellst du ja eine Excel-Application, in der m.W. nach die Excel-relevanten Befehle gültig sein sollten. Hast du es mal so versucht:
Dim rngBereich As CellRange
Set appExcel = CreateObject("Excel.Application")
Set excel_WB = appExcel.Workbooks.Add
Set xlsBlatt = excel_WB.Worksheets.Add
With xlsBlatt
Set rngBereich = Union(.Range("A1:A8"), .Range("D1:D8"))
End With



55 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige