Excel in VBS Chart-Datenbereich für x- und y-Achse vorgeben ...
Hallo =)
Ich habe Probleme beim Vergeben der Wertebereiche für ein erstelltes Chart.
Ich habe über ein Makro das Verändern der Wertebereiche gemacht und würde das jetzt gerne über mein VBScript steuern.
Der Fehler kommt bei der Zeile .SeriesCollection.NewSeries "Objekt erforderlich: 'SeriesCollection'"
Was mache ich falsch =(
dim objChart1
set objChart1 = xlw.Charts.Add
with xlw.ActiveChart
.ChartType = xlXYScatterLines
.SetSourceData xls.Range("K3:K6428"), xlColumns
.HasTitle = True
.ChartTitle.Characters.Text = ChartText
.Location xlLocationAsObject, "Tabelle2" 'xlLocationAsObject
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = "=Tabelle1!R3C11:R752C11"
.SeriesCollection(1).Values = "=Tabelle1!R3C12:R752C12"
.SeriesCollection(1).Name = "=""H2 [Vol%]"""
End With
With xlw.ActiveChart.Parent
.Top = 0
.Left = 0
.width = 1200
.height = 500
End With
Ich habe Probleme beim Vergeben der Wertebereiche für ein erstelltes Chart.
Ich habe über ein Makro das Verändern der Wertebereiche gemacht und würde das jetzt gerne über mein VBScript steuern.
Der Fehler kommt bei der Zeile .SeriesCollection.NewSeries "Objekt erforderlich: 'SeriesCollection'"
Was mache ich falsch =(
dim objChart1
set objChart1 = xlw.Charts.Add
with xlw.ActiveChart
.ChartType = xlXYScatterLines
.SetSourceData xls.Range("K3:K6428"), xlColumns
.HasTitle = True
.ChartTitle.Characters.Text = ChartText
.Location xlLocationAsObject, "Tabelle2" 'xlLocationAsObject
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = "=Tabelle1!R3C11:R752C11"
.SeriesCollection(1).Values = "=Tabelle1!R3C12:R752C12"
.SeriesCollection(1).Name = "=""H2 [Vol%]"""
End With
With xlw.ActiveChart.Parent
.Top = 0
.Left = 0
.width = 1200
.height = 500
End With
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 249802
Url: https://administrator.de/forum/excel-in-vbs-chart-datenbereich-fuer-x-und-y-achse-vorgeben-249802.html
Ausgedruckt am: 21.05.2025 um 00:05 Uhr
3 Kommentare
Neuester Kommentar

Hallo GobotheHero!
Sollte in etwa so gehen:
Gruß Dieter
Sollte in etwa so gehen:
With Sheets("Tabelle1")
.ChartObjects.Add Top:=0, Left:=0, Height:=500, Width:=1200
With .ChartObjects(1).Chart
.ChartType = xlXYScatterLines
'......
'......
End With
End With
Gruß Dieter

Hallo GobotheHero!
Das Problem ist, dass Du einen Mischmasch zwischen einem Diagrammblatt und einem eingebetteten Diagramm hast/machst.
D.h. Du erstellst erst ein Diagrammblatt (Diagramm1) und machst dann daraus ein eingebettetes Diagramm (.Location) in Tabelle2. Bei dem Diagrammblatt kann keine Breite/Höhe verändert werden. Bei Verwendung von .Location, wird die SeriesCollection dann nach dem 'With End' im ActiveChart festgelegt:
Ich persönlich hätte erst ein neues Sheet erstellt und das Chart dann anhand meines vorigen Postes eingefügt...
Grüße Dieter
Das Problem ist, dass Du einen Mischmasch zwischen einem Diagrammblatt und einem eingebetteten Diagramm hast/machst.
D.h. Du erstellst erst ein Diagrammblatt (Diagramm1) und machst dann daraus ein eingebettetes Diagramm (.Location) in Tabelle2. Bei dem Diagrammblatt kann keine Breite/Höhe verändert werden. Bei Verwendung von .Location, wird die SeriesCollection dann nach dem 'With End' im ActiveChart festgelegt:
objWkb.ActiveChart.SeriesCollection.NewSeries
objWkb.ActiveChart.SeriesCollection(1).XValues = "=Tabelle1!R3C11:R752C11"
.....
Ich persönlich hätte erst ein neues Sheet erstellt und das Chart dann anhand meines vorigen Postes eingefügt...
Grüße Dieter