Clever-Excel-Forum

Normale Version: VBA Säulendiagramm wie Zellenwert färben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe folgendes Makro zum auslesen meiner Zellfarben für die Diagrammsäulen:

Sub ColorChartColumnsbyCellColor()
'Updateby Extendoffice
    Dim xChart As Chart
    Dim I As Long, xRows As Long
    Dim xRg As Range, xCell As Range
    On Error Resume Next
    Set xChart = ActiveSheet.ChartObjects("Diagramm 9").Chart
    If xChart Is Nothing Then Exit Sub
    With xChart.SeriesCollection(1)
        Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(1), "!")(1))
        xRows = xRg.Rows.Count
        Set xRg = xRg(1)
        For I = 1 To xRows
            .Points(I).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xRg.Offset(I - 1, 0).Interior.ColorIndex)
        Next
    End With
End Sub

Siehe Beispieldatei.

Ich habe schon einiges ausprobiert - ich bekomme das Makro nicht so angepasst, dass
die Säulen die Farben aus der bedingten Farbsortierung Zellbereich G17:G23 übernehmen.

Kann mir jemand einen Tipp für die Anpassung im VBA-Code geben? Ich bekomme die
Range irgendwie nicht definiert...oder würdet ihr für die Übernahme der Farbcodierung
im Säulendiagramm einen anderen Weg wählen?

Vielen Dank im Voraus und ein schönes Wochenende.
Hallo,

bei Herber.de/forum gab es die Tage eine ähnliche Frage. Suche entweder nach "Groot" oder "Beverly".

Vielleicht geht auch dieser Link:

http://www.herber.de/forum/messages/1642267.html

mfg
Hallöchen,

mit Deinem Code bist Du erst mal in der falschen Spalte. Mit der 0 beim Offset bleibst DU in A, die Formate stehen aber in G - wäre in Deinem Fall die 6.
Dann übernimmst Du die normale Zellfarbe Interior.Color.

Du bräuchtest aber die Farbe aus der bedingten Formatierung. Wenn's da mehrere Bedingungen gibt, könnte man das über die FormatCondition.Interior.Color auslesen und ausrechnen, welche Farbe da anliegt.
Beim Farbverlauf ist es aber nicht so einfach. Eventuell wäre eine Lösung, wenn Du in einer Hilfstabelle die Werte entsprechend der Farbe einzelnen Spalten zuordnest - per Formel natürlich  - und ein Diagramm mit mehreren Datenreihen erstellst, die wie gewünscht gefärbt sind.

Man könnte natürlich auch schauen, ob man über API's was über die Pixelfarbe vom Bildschirm machen kann, aber na ja, man kann ja auch mit dem Traktor nach Italien fahren Smile