Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1408to1412
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

Laufzeitfehler - SeriesCollection

Laufzeitfehler - SeriesCollection
25.02.2015 08:30:21
Manuel
Hallo Community,
ich habe in meinem Makro, wie der Titel verrät, einen Laufzeitfehler und komme nicht dahinter warum.

Sub change_sourceRow()
Dim Range As String
Dim lastRow, i As Long
Const FIRSTROW = 7
Const NUM_Series = 12
Dim Series(12, 2) As String
Series(1, 1) = "M"
Series(2, 1) = "N"
Series(3, 1) = "O"
Series(4, 1) = "P"
Series(5, 1) = "Q"
Series(6, 1) = "R"
Series(7, 1) = "S"
Series(8, 1) = "T"
Series(9, 1) = "U"
Series(10, 1) = "V"
Series(11, 1) = "W"
Series(12, 1) = "X"
lastRow = ActiveSheet.Range("C5").Value + FIRSTROW - 1
Sheets("Grafik").Select
ActiveSheet.ChartObjects("Diagramm 1").Activate
For i = 1 To NUM_Series
Range = "='Grafik'!$" & Series(i, 1) & "$" & FIRSTROW & ":$" & Series(i, 1) & "$" &  _
lastRow
ActiveChart.SeriesCollection(i).Values = Range
Next
End Sub

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
...willst du uns die Zeile nicht verraten?
25.02.2015 08:55:21
Martin
Hallo Manuel,
es fällt uns schwer dir zu helfen, wenn wir die Zeile und den Wortlaut deiner Fehlermeldung nicht kennen. Die Buchstaben kannst du auch einfacher in das Array schreiben:
    For i = 1 To 12
Series(i, 1) = Chr(76 + i)
Next
Viele Grüße
Martin

AW: Laufzeitfehler - SeriesCollection
25.02.2015 09:00:14
Daniel
Hi
der erste Schritt in so einem Fall ist, dass man sich anschaut:
- welche Fehlernummer der Laufzeitfehler hat
- welcher Fehlertext angezeigt wird
- in welcher Zeile der Fehler auftritt.
Das sind dann schon mal wichtige Hinweise auf der Suche nach der Fehlerursache.
Ein weiteres Problem ist, dass du teilweise VBA-Schlüsselwörter als Variablenbenennung verwendest (Series, Range), sowas kann funktionieren, muss aber nicht, deswegen sollte man sowas vermeiden, verwende hier andere Variablennamen (myRange)
Gruß Daniel

Anzeige
AW: Vermutlich hat dein Chart
25.02.2015 09:06:26
Daniel
noch gar nicht genügend datenreihen vorhanden und du musst diese erst hinzufügen:
For i = 1 To NUM_Series
Range = "='Grafik'!$" & Series(i, 1) & "$" & FIRSTROW & ":$" & Series(i, 1) & "$" & lastRow
If ActiveChart.SeriesCollection.Count 
Gruß Daniel

Sorry, Infos vergessen
25.02.2015 09:39:33
Manuel
Ups, sorry. Im Eifer des Gefechts hab ich den zweiten Teil meines Beitrags doch glatt vergessen.
Fehlermeldung ist: "Laufzeitfehler '1004' Ungültiger Parameter"
Das Ganze bezieht sich auf die Zeile "ActiveChart.SeriesCollection(i).Values = Range), also Zeile 38.

Vermutlich hat dein Chart noch gar nicht genügend datenreihen vorhanden und du musst diese erst  _
hinzufügen

Meine Tabelle ist bis Spalte X gefüllt. Sollte demnach genau passen

Anzeige
AW: Sorry, Infos vergessen
25.02.2015 10:21:34
Daniel
HI
die Tabelle schon.
das Diagramm auch?
Die Datenreihen müssen im Diagramm vorhanden sein, wenn du ihnen einen Wert zuweisen willst.
Falls sie noch nicht vorhanden sind, musst du sie erst erstellen.
Gruß Daniel

AW: Sorry, Infos vergessen
25.02.2015 11:15:47
Manuel
Spalte X wird im Diagramm auch dargestellt, jedenfalls, wenn ich es händisch mache.
D.h. die Datenreihe müsste vorhanden sein.
Führe ich das Makro aus, dann wird Spalte X nicht übernommen.
Ich hänge mal die Datei mit an: https://www.herber.de/bbs/user/95982.xlsm

AW: Sorry, Infos vergessen
25.02.2015 12:18:46
Daniel
Hi
es ist genau der Fehler, den ich vermutet habe.
Dein Diagramm hat nur 11 Datenreihen, du willst aber 12 mit Werten füllen.
Klappt für die ersten 11, aber nicht bei der nicht vorhanderen 12.
Gruß Daniel

Anzeige
Datenbereich anpassen
25.02.2015 12:37:34
Manuel
Hi Daniel,
wie kann ich denn am Geschicktesten den Datenbereich anpassen?
Gruß Manu

AW: Datenbereich anpassen
25.02.2015 12:56:14
Daniel
Hi
du kannst manuell dem Diagramm eine Datenreihe hinzufügen.
du kannst das Array von 12 auf 11 Elemente kürzen, bzw den Wert NumSeries auf 11 setzen.
du kannst den Code so erweitern, wie ich es dir schon gezeigt habe.
(Bei Menschen, die in Foren Fragen stellen, setzte ich voraus, dass sie lesen können und nicht nur Buchstaben anschauen)
Gruß Daniel

kleiner Tip noch neben bei:
25.02.2015 12:51:22
Daniel
Bei Fehlern in einer Schleife immer auch den Schleifenzähler checken und prüfen, ob der Fehler gleich beim ersten Durchlauf oder später aufgetreten ist.
Sollte der Fehler erst bei späteren Umläufen auftreten, liegt die Ursache wahrscheinlich nicht am Code, sondern an den verwendeten Daten.
Gruß Daniel

Anzeige
AW: Laufzeitfehler - SeriesCollection
25.02.2015 11:03:41
Beverly
Hi Manuel,
ich würde es ja so lösen (ungetestet):
    For i = 1 To NUM_Series
ActiveChart.SeriesCollection(i).Values = _
Worksheets("Grafik").Range(Series(i, 1) & FIRSTROW & ":" & Series(i, 1) & lastRow)
Next


AW: Laufzeitfehler - SeriesCollection
25.02.2015 11:20:04
Manuel
Danke für die Vereinfachung, aber leider bekomme ich immer noch den gleichen Laufzeitfehler.

AW: Laufzeitfehler - SeriesCollection
25.02.2015 12:28:26
Beverly
Mit folgendem Code erhalte ich keinen Fehler:
Sub change_sourceRow()
Dim lastRow, i As Long
Const FIRSTROW = 7
Dim Series(12, 2) As String
Series(1, 1) = "M"
Series(2, 1) = "N"
Series(3, 1) = "O"
Series(4, 1) = "P"
Series(5, 1) = "Q"
Series(6, 1) = "R"
Series(7, 1) = "S"
Series(8, 1) = "T"
Series(9, 1) = "U"
Series(10, 1) = "V"
Series(11, 1) = "W"
Series(12, 1) = "X"
With Sheets("Waterfall")
lastRow = .Range("C5").Value + FIRSTROW - 1
With .ChartObjects("Diagramm 1").Chart
For i = 1 To .SeriesCollection.Count
.SeriesCollection(i).Values = _
Worksheets("Waterfall").Range(Series(i, 1) & FIRSTROW & ":" & Series(i, 1) & _
lastRow)
Next
End With
End With
End Sub

Du läufst von 1 bis 12 obwohl du nur 11 Datenreihen hast.


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige