Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

kann ChartSeries nicht ansprechen

Forumthread: kann ChartSeries nicht ansprechen

kann ChartSeries nicht ansprechen
peter
Hallo,
folgende Zeilen sollen in einem "vorhandenen" Diagramm die Quellspalten vorhandener "Reihen" anpassen. Die Reihen haben die entsprechenden Namen.
Starte ich das Script, erhalte ich die Fehlermeldung
"ungültiger Parameter"
und der Debugger hebt die Zeile siehe "DEBUG" hervor.
Worksheets("Einzelhändler").ChartObjects("chartRetailer").Activate
'ActiveChart.SeriesCollection(1).XValues = "='Daten'!A3:A" + CStr(currentRoundIndex)
ActiveChart.SeriesCollection(1).Name = "Lagerkosten"
ActiveChart.SeriesCollection(1).Values = "='Daten'!L3:L" + CStr(currentRoundIndex)
ActiveChart.SeriesCollection(2).Name = "Bestellkosten"
ActiveChart.SeriesCollection(2).Values = "='Daten'!M3:M" + CStr(currentRoundIndex)
DEBUG _____ ActiveChart.SeriesCollection(3).Name = "Rückstandskosten"
ActiveChart.SeriesCollection(3).Values = "='Daten'!N3:N" + CStr(currentRoundIndex)
ActiveChart.SeriesCollection(4).Name = "Gesamtkosten"
ActiveChart.SeriesCollection(4).Values = "='Daten'!O3:O" + CStr(currentRoundIndex)
Schaue ich mir nun das Diagramm an,stelle ich erstaunt fest, das von den 4 Datenreihen nur noch die beiden ersten existieren, die letzten beiden Fehlen tatsächlich. Ärgerlich. Also ergänze ich die 2 Datenreihen wieder. Hilft aber alles nichts. VBA scheint die Datenreihen komplett zu entfernen und dann erst wieder aufzubauen.
Bis vor kurzem ging es übrigens noch. Hab ich irgendwo einen falschen Schalter umgelegt?
viele Grüße
Anzeige

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

Betreff
Benutzer
Anzeige
AW: kann ChartSeries nicht ansprechen
12.12.2010 15:56:30
Beverly
Hi Peter,
vielleicht solltest du mal deine Arbeitsmappe hochladen, dann kann man besser nachvollziehen was vor sich geht. Ich nehme an, dass dies nicht der gesamte Code ist, mit dem das Diagramm bearbeitet/erstellt wird?


Anzeige
kann ChartSeries nicht ansprechen
12.12.2010 17:59:56
peter
hm...dachte ich hätte die Antwort abgeschickt. Also nochmal:
Die Charts werden explizirt nur in dieser sub angesprochen, nirgendwo anders, aber ich hab das ganze mal hochgeladen, vielleicht vereinfacht es die Sache ja :)
http://www.freecoffee.de/bdg_VBA_alpha2.xlsm
Anzeige
AW: kann ChartSeries nicht ansprechen
12.12.2010 21:27:33
Beverly
Hi Peter,
ja, es war tatsächlich gut, dass du die Mappe hochgeladen hast, andernfalls hätte ich den Fehler wohl niemals da gesucht wo er tatsächlich liegt: du verwendest eine Gliederung und einige Spalten sind ausgeblendet. Für deine Diagramme ist eingestellt, dass Daten aus leeren Spalten/Zeilen nicht angezeigt werden - folglich enthält das Diagramm zwar 4 Datenreihen, aber einige sind ausgeblendet und deshalb für den Code sozusagen "nicht vorhanden" und lösen damit den Fehler aus. Mache einen Rechtsklick auf jedes Diagramm -&gt Daten auswählen -&gt Schalter: Ausgeblendete und leere Zellen -&gt Daten in ausgeblendeten Zeilen und Spalten anzeigen (Häkchen rein), dann sollte dein Code funktionieren.
In VBA kann man zu 99% auf Select und Activate verzichten - deinen Code kann man dann so schreiben:
Sub refreshCharts(currentRoundIndex As Long)
Application.ScreenUpdating = False
'Einzelhändler'
With Worksheets("Einzelhändler").ChartObjects("chartRetailer").Chart
.SetSourceData Source:=Worksheets("Daten").Range("L3:O" & currentRoundIndex)
.SeriesCollection(1).XValues = Worksheets("Daten").Range("A3:A" & currentRoundIndex)
.SeriesCollection(1).Name = "Lagerkosten"
.SeriesCollection(2).Name = "Bestellkosten"
.SeriesCollection(3).Name = "Rückstandskosten"
.SeriesCollection(4).Name = "Gesamtkosten"
End With
'Großhändler'
With Worksheets("Großhändler").ChartObjects("chartWholesaler").Chart
.SetSourceData Source:=Worksheets("Daten").Range("Y3:AB" & currentRoundIndex)
.SeriesCollection(1).XValues = Worksheets("Daten").Range("A3:A" & currentRoundIndex)
.SeriesCollection(1).Name = "Lagerkosten"
.SeriesCollection(2).Name = "Bestellkosten"
.SeriesCollection(3).Name = "Rückstandskosten"
.SeriesCollection(4).Name = "Gesamtkosten"
End With
'Regionallager'
With Worksheets("Regionallager").ChartObjects("chartMainstock").Chart
.SetSourceData Source:=Worksheets("Daten").Range("AL3:AO" & currentRoundIndex)
.SeriesCollection(1).XValues = Worksheets("Daten").Range("A3:A" & currentRoundIndex)
.SeriesCollection(1).Name = "Lagerkosten"
.SeriesCollection(2).Name = "Bestellkosten"
.SeriesCollection(3).Name = "Rückstandskosten"
.SeriesCollection(4).Name = "Gesamtkosten"
End With
'Brauerei'
With Worksheets("Brauerei").ChartObjects("chartBrewery").Chart
.SetSourceData Source:=Worksheets("Daten").Range("AY3:BB" & currentRoundIndex)
.SeriesCollection(1).XValues = Worksheets("Daten").Range("A3:A" & currentRoundIndex)
.SeriesCollection(1).Name = "Lagerkosten"
.SeriesCollection(2).Name = "Bestellkosten"
.SeriesCollection(3).Name = "Rückstandskosten"
.SeriesCollection(4).Name = "Gesamtkosten"
End With

Noch ein Hinweis: du hattest in dieser Funktion eine Variable (die nicht benötigt wird) "chart" benannt - man sollte für Variablennamen keine Excel-internen Befehle oder Begriffe verwenden, weil dies zu Fehlern führen kann. Wenn du des Verständnisses wegen eine Variable als chart benennen willst, dann setze noch einen Präfix davor, z.B. chrChart.


Anzeige
kann ChartSeries nicht ansprechen
13.12.2010 02:13:56
peter
genial, danke für deine Mühen und deine Hilfe! :)
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige