Diagramm Datenreihen automatisch einfärben

Bild

Betrifft: Diagramm Datenreihen automatisch einfärben
von: Malte
Geschrieben am: 15.08.2015 09:37:55

Hallo,
ich würde gerne bei VBA mehrere Datenreihen in einem Diagramm automatisch UNTERSCHIEDLICH einfärben. In dem Diagramm können ca. 50 Hauptdatenreihen angezeigt werden.
Der Clou an der Sache ist, dass zu jeder Hauptdatenreihe zwei weitere Datenreihen gehören, die dieselbe Farbe wie die Hauptdatenreihe bekommen soll.
Momentan funktioniert das ganze so:

Sub Test()
Dim wb As Workbook, ws As Worksheet
Dim Verlauf As Series, Extremwerte As Series, ggw As Series
Dim farbe As Integer
Set wb = ActiveWorkbook
Set ws = wb.Sheets("Plot")
farbe = ws.Cells(1, 1)
ActiveSheet.ChartObjects("Diagramm_Reinstoff").Activate
'Hauptdatenreihe
Set Verlauf = ActiveChart.SeriesCollection.NewSeries
 With Verlauf
    .ChartType = xlXYScatterLinesNoMarkers
    .Name = Hier steht der variable Name
    .Values = Hier die Y-Werte
    .XValues = Hier die X-Werte
    .Format.Line.ForeColor.SchemeColor = farbe
End With
'Unterdatenreihen
Set Extremwerte = ActiveChart.SeriesCollection.NewSeries
 With Extremwerte
    .ChartType = xlXYScatter
    .Name = Hier steht der variable Name
    .Values = Hier die Y-Werte
    .XValues = Hier die X-Werte
    .Format.Line.Visible = msoFalse
    .MarkerStyle = 8
    .MarkerSize = 7
    .MarkerBackgroundColor = Verlauf.Format.Line.ForeColor.RGB
    .MarkerForegroundColorIndex = xlColorIndexNone
End With
Set ggw = ActiveChart.SeriesCollection.NewSeries
 With ggw
    .Name = Hier steht der variable Name
    .Values = Hier die Y-Werte
    .XValues = Hier die X-Werte
    .Format.Line.BeginArrowheadStyle = msoArrowheadOval
    .Format.Line.EndArrowheadStyle = msoArrowheadOval
    .Format.Line.DashStyle = msoLineDash
    .Format.Line.ForeColor.SchemeColor = Verlauf.Format.Line.ForeColor.SchemeColor
End With
ws.Cells(1, 1) = farbe + 1
End Sub
Dabei habe ich einen Zähler (farbe), der die Farbe der Hauptdatenreihe vorgibt, während die Unterdatenreihen sich auf diese "Hauptfarbe" beziehen. Die Idee bzw. die Umsetzung stammt ebenfalls aus dem Forum hier, dazu noch einmal vielen Dank!
Mein Problem ist nun, dass sich die Farben nach 0-7 wiederholen. So ist 8 wieder die 0 und 9 wieder die 1. Erst ab der Zahl 18 kommen neue Farben hinzu.
Bsp:
0 Schwarz
1 Weiß
2 Rot
3 Grün
4 Blau
5 Gelb
6 Pink
7 Türkis
8 Schwarz
9 Weiß
10 Rot
11 Grün

16 Lia
Neue Farben
Nun meine Frage:
Kann ich das Problem irgendwie anders lösen, dass ich niemals dieselbe Farbe verwende, oder nur nach z.B. 20 Hauptdatenreihen? (Weiß natürlich ausgenommen)
Gibt es eine andere Möglichkeit die Farben zu setzen, anstatt über die vordefinierten SchemeColors?
Vielen Dank!
Gruß
Malte!

Bild

Betrifft: AW: Diagramm Datenreihen automatisch einfärben
von: Beverly
Geschrieben am: 15.08.2015 10:27:28
Hi Malte,
vor Excel2007 gab es ca. 45 unterschiedliche Farben und seit Excel2007 ca. 1 Mio - wo ist also das Problem? Eventuell darfst du nicht mit .ForeColor.SchemeColor arbeiten sondern musst .ForeColor.RGB verwenden - nach diesem Prinzip (z.B. für Rot): .ForeColor.RGB = RGB(255, 0, 0).




Bild

Betrifft: AW: Diagramm Datenreihen automatisch einfärben
von: Malte
Geschrieben am: 15.08.2015 11:13:00
Hallo,
danke für die Antwort!
Das Problem dabei ist, dass ich mittels der RGB-Funktion alle Farben vorher definieren müsste. Aktuell kann ich einfach eine Zählervariable laufen lassen.
Gruß!

Bild

Betrifft: Hat noch jmd. eine Idee? owT
von: Malte
Geschrieben am: 15.08.2015 11:13:32


Bild

Betrifft: AW: Diagramm Datenreihen automatisch einfärben
von: Beverly
Geschrieben am: 15.08.2015 11:50:06
Hi,
und wo ist das Problem, die Farben in ein Array zu schreiben und die Schleife über den Arrayinhalt laufen zu lassen?? Anstelle der 3 RGB-Farben kannst du die Color-Nummer verwenden.




Bild

Betrifft: AW: Diagramm Datenreihen automatisch einfärben
von: Malte
Geschrieben am: 15.08.2015 18:05:27
Hallo,
habs erstmal doch mit deiner Idee gelöst und die Farben einfach per Zufallszahlen in einem bestimmten Bereich generiert.
Danke!
Gruß! :)

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Diagramm Datenreihen automatisch einfärben"