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
Please also mark the comments that contributed to the solution of the article
Content-Key: 249802
Url: https://administrator.de/contentid/249802
Printed on: April 24, 2024 at 04:04 o'clock
3 Comments
Latest comment
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