Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Säulendiagramm wie Zellenwert färben
#1
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.


Angehängte Dateien
.xlsm   Farben Säulendiagramm übernehmen.xlsm (Größe: 21,08 KB / Downloads: 1)
Antwortento top
#2
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
Antwortento top
#3
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
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste