Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender Navigationstipps
Inhaltsverzeichnis

Diagramm Datenreihen automatisch einfärben

Diagramm Datenreihen automatisch einfärben
15.08.2015 09:37:55
Malte
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!

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm Datenreihen automatisch einfärben
15.08.2015 10:27:28
Beverly
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).


AW: Diagramm Datenreihen automatisch einfärben
15.08.2015 11:13:00
Malte
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ß!

Anzeige
Hat noch jmd. eine Idee? owT
15.08.2015 11:13:32
Malte

AW: Diagramm Datenreihen automatisch einfärben
15.08.2015 11:50:06
Beverly
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.


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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige