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

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

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?


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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige