Microsoft Excel

Herbers Excel/VBA-Archiv

Problem beim Erstellen eines Diagramms

Betrifft: Problem beim Erstellen eines Diagramms von: freshhermi
Geschrieben am: 28.10.2020 10:40:27

Hallo!


Ich habe eine Tabelle die folgendermaßen aussieht:

Spalte A ----- Spalte B ------- ... --- Spalte G

Monat 1 ----- Datenreihe 1 --- ... --- Wert

leere Zelle --- Datenreihe 2 --- ... --- Wert

leere Zelle --- Datenreihe 3 --- ... --- Wert

Monat 2 ----- Datenreihe 1 --- ... --- Wert

leere Zelle --- Datenreihe 2 --- ... --- Wert

leere Zelle --- Datenreihe 3 --- ... --- Wert

Monat 3 ----- Datenreihe 1 --- ... --- Wert

leere Zelle --- Datenreihe 2 --- ... --- Wert

leere Zelle --- Datenreihe 3 --- ... --- Wert


usw. ...


Wobei die Zahl der Datenreihen variiert.

Ich möchte nun ein Diagramm erstellen und dabei die entsprechenden Werte der Spalte G den richtigen Datenreihen zuordnen.

Meine Datenreihen habe ich schon vorher hinzugefügt, das hat funktioniert.

Wenn ich es so versuche:


Dim serData As Range
Dim i As Long
Dim j As Long

With myChart
       For i = 1 To .SeriesCollection.Count
            Set serData = Nothing
            For j = 1 To WorksheetFunction.CountA(Columns(1))
                serData = Union(serData, Range(Cells(((j - 1) * .SeriesCollection.Count + 1 + i) _
 _
, 7)))
            Next
            .SeriesCollection(i).Values = serData
        Next
End With


Kommt immer die Fehlermeldung Fehler der Methode "Range" des Objekts "_Global".

Problem ist die Stelle:
serData = Union(serData, Range(Cells(((j - 1) * .SeriesCollection.Count + 1 + i), 7)))

Kann mir da jemand weiterhelfen? Was mache ich falsch?

Betrifft: AW: Problem beim Erstellen eines Diagramms
von: Lutz Fricke
Geschrieben am: 28.10.2020 11:58:13

Hallo freshhermi,

Deine Daten sind natürlich denkbar schlecht angeordnet....

Ohne den Code näher zu prüfen, hier fehlt ein Set:
SET serData = Union(serData, Range(Cells(((j - 1) * .SeriesCollection.Count + 1 + i), 7)))
Gruß,
Lutz

Betrifft: AW: Problem beim Erstellen eines Diagramms
von: freshhermi
Geschrieben am: 28.10.2020 12:17:27

Vielen Dank für den Hinweis. Ich weiß, die Anordnung der Daten ist suboptimal, die kann ich aber leider nicht beeinflussen.
Das Problem besteht aber leider weiterhin.
ich hab den Code mal auf folgendes geändert:
Set serData = Union(serData, Range("G" & ((j - 1) * .SeriesCollection.Count + 1 + i)))

Alles was sich aber dadurch ändert ist, dass der Fehler nun Unzulässiger Prozeduraufruf oder ungültiges Argument lautet.

Betrifft: AW: Problem beim Erstellen eines Diagramms
von: freshhermi
Geschrieben am: 28.10.2020 13:18:52

Link zu meinem Beitrag im ms-office-forum zum gleichen Thema:
https://www.ms-office-forum.net/forum/showthread.php?t=370768

Betrifft: AW: Problem beim Erstellen eines Diagramms
von: freshhermi
Geschrieben am: 28.10.2020 15:27:42

Hab's über einen String gelöst
dim serData As String
For i = 1 To .SeriesCollection.Count
            serData = ""
            For j = 1 To WorksheetFunction.CountA(Columns(1))
                intZeile = (j - 1) * .SeriesCollection.Count + 1 + i
                serData = serData & ", " & Cells(intZeile, 7).Address(0, 0)
            Next
            serData = Mid(serData, 2)
            .SeriesCollection(i).Values = Range(serData)
        Next


Beiträge aus dem Excel-Forum zum Thema "Problem beim Erstellen eines Diagramms"