
136766
27.07.2018, aktualisiert um 13:09:13 Uhr
Balken im Diagramm, Farbe abhängig von Hilfespalte
Hallo zusammen,
ich suche nach einem Weg die Farbe der Balken in einem Diagramm abhängig von der Datenquelle zu färben. Das müsste von einer Hilfspalte mit zu definierendem Inhalt abhängig sein. die Hilfespalte ist unmittelbar neben der Quellspalte - sprich wenn zb. ein Name einen Wert von 900 steht in der Hilfespalte 100 und nur der Quellwert und Name soll im Diagramm erscheinen mit dem ausgewählten Farbe abhängig von der Wert aus der Hilfespalte.
Bin für jede Idee dankbar.
Hier der Code der die Grafik erstellt
Fehlermeldung: ungültiger Parameter bei dieser Zeile
EDIT!!!!!
Schönen sonnigen Freitag
ich suche nach einem Weg die Farbe der Balken in einem Diagramm abhängig von der Datenquelle zu färben. Das müsste von einer Hilfspalte mit zu definierendem Inhalt abhängig sein. die Hilfespalte ist unmittelbar neben der Quellspalte - sprich wenn zb. ein Name einen Wert von 900 steht in der Hilfespalte 100 und nur der Quellwert und Name soll im Diagramm erscheinen mit dem ausgewählten Farbe abhängig von der Wert aus der Hilfespalte.
Bin für jede Idee dankbar.
Hier der Code der die Grafik erstellt
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets.Add
ws.Name = "Diagramm"
Dim co As ChartObject
Dim ch As Chart
Set co = ThisWorkbook.Worksheets("Diagramm").ChartObjects.Add(175, 10, 750, 750)
'Set ch = co.Chart
With co.Chart
.SetSourceData Worksheets("Risikoindikator").Range("A1:B63")
.ChartType = xlBarClustered
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Prozesse"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Risikoindikator"
.SetElement (msoElementDataLabelOutSideEnd)
.SetElement (msoElementLegendNone)
End With
Dim lngPunkt As Long
Dim lngFarbe As Long
With co.Chart
For lngPunkt = 1 To .SeriesCollection(1).Points.Count
Select Case Worksheets("Risikoindikator").Cells(lngPunkt, 3).Value
Case 0
lngFarbe = 255
Case 10
lngFarbe = 12379352
Case 50
lngFarbe = 10213316
Case 100
lngFarbe = 5296274
End Select
.SeriesCollection(2).Points(lngPunkt).Interior.Color = lngFarbe
Next lngPunkt
End With
Fehlermeldung: ungültiger Parameter bei dieser Zeile
.SeriesCollection(2).Points(lngPunkt).Interior.Color = lngFarbe
EDIT!!!!!
Schönen sonnigen Freitag
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 381536
Url: https://administrator.de/forum/balken-im-diagramm-farbe-abhaengig-von-hilfespalte-381536.html
Ausgedruckt am: 23.05.2025 um 18:05 Uhr
3 Kommentare
Neuester Kommentar
Moinsens.
Tja, leider sagst du kein Wort darüber wie der Wert (z.B . 100) einer Farbe zugeordnet werden soll. Daher hier einfach mal ein Beispiel das die Zahl die in Spalte C steht als Prozentwert interpretiert (Werte von 0 bis 100 möglich) und das ganze dann mit einem Rot-Ton skaliert:
Jetzt darfst du selbst damit spielen :-P.
Grüße Uwe
-edit- Typo im Code korrigiert
Tja, leider sagst du kein Wort darüber wie der Wert (z.B . 100) einer Farbe zugeordnet werden soll. Daher hier einfach mal ein Beispiel das die Zahl die in Spalte C steht als Prozentwert interpretiert (Werte von 0 bis 100 möglich) und das ganze dann mit einem Rot-Ton skaliert:
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets.Add
ws.Name = "Diagramm"
Dim co As ChartObject
Dim ch As Chart
Set co = ThisWorkbook.Worksheets("Diagramm").ChartObjects.Add(175, 10, 750, 750)
With co.Chart
.SetSourceData Worksheets("Risikoindikator").Range("A1:B63")
.ChartType = xlBarClustered
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Prozesse"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Risikoindikator"
.SetElement (msoElementDataLabelOutSideEnd)
.SetElement (msoElementLegendNone)
For i = 1 To .SeriesCollection(1).Points.Count
With .SeriesCollection(1).Points(i).Format.Fill
.Visible = True
.ForeColor.RGB = RGB((Sheets("Risikoindikator").Range("C2:C63").Cells(i).Value / 100) * 255, 0, 0)
.Solid
End With
Next
End With
Grüße Uwe
-edit- Typo im Code korrigiert
ch würde gerne an meinem Code Anpassungen finden. dein Code sagt mir leider nicht viel ....
Öhm, das ist dein Code, nur mit der entsprechenden Ergänzung ab Zeile 22, dort siehst du das jeder Eintrag des Charts mit einer ForEach Schleife durchlaufen wird und ihm die entsprechende Farbe aus der dazugehörigen Zelle in Spalte C zugewiesen wird.Wenn man sich den Code nicht zumindest einmal grundlegend zu Gemüte führt wird das mit dir nie was. Sorry. Da liefert man es schon frei Haus und es ist noch immer nicht genug
Bidde
CreateColoredChartFromData_381536.xlsm
Und tschüss.