Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Farbe ändert sich nicht in Chart Legende mit

Farbe ändert sich nicht in Chart Legende mit
18.03.2014 12:27:52
Matthias
Hallo liebe Helfer,
habe folgendes Problem: Mein Code soll die Farben der Balkencharts gemäß Farbmarkierung der Werte-Zellen ändern. Funktioniert auch prima! Die Farben der Balken ändern sich wunschgemäß nur die Farben der Legendensymbole ändern sich nicht? WARUM? Mit Pie Charts als Charttyp funktioniert es übrigend.
Sub ColorBalken()
Dim cht As ChartObject
Dim i As Integer
Dim vntValues As Variant
Dim s As String
Dim myseries As Series
For Each cht In ActiveSheet.ChartObjects
For Each myseries In cht.Chart.SeriesCollection
If myseries.ChartType  xlColumnStacked Then GoTo SkipNotColumnStacked
s = Split(myseries.Formula, ",")(2)
vntValues = myseries.Values
For i = 1 To UBound(vntValues)
With myseries.Points(i).Format.Fill
.Solid
If Range(s).Cells(i).Interior.ColorIndex = -4142 Then
.Visible = False
Else
.Visible = True
.ForeColor.RGB = Range(s).Cells(i).Interior.Color
End If
End With
Next i
SkipNotColumnStacked:
Next myseries
Next cht
End Sub
Vielen Dank für Eure Hilfe, anbei die Beispieldatei
https://www.herber.de/bbs/user/89721.xlsm
Matthias T.

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Farbe ändert sich nicht in Chart Legende mit
18.03.2014 12:51:42
Rudi
Hallo,
du färbst Datenpunkte, nicht die Reihe.
Die Legendenfarbe ist von der Reihenfarbe abhängig.
Bei der Torte geht's weil TG nur einen Datenpunkt je Reihe haben.
Gruß
Rudi

AW: Farbe ändert sich nicht in Chart Legende mit
18.03.2014 12:56:34
Matthias
Hallo Rudi,
vielen Dank, das leuchtet ein. Hast du eine Idee, wie man den Code abändern muss dafür?
Gruß
Matthias

Anzeige
AW: Farbe ändert sich nicht in Chart Legende mit
18.03.2014 13:07:56
Rudi
Hallo,
färbt die ganze Reihe:
Sub ColorBalken()
Dim cht As ChartObject
Dim s As String
Dim mySeries As Series
For Each cht In ActiveSheet.ChartObjects
For Each mySeries In cht.Chart.SeriesCollection
If mySeries.ChartType = xlColumnStacked Then
s = Split(mySeries.Formula, ",")(2)
vntValues = mySeries.Values
With mySeries.Format.Fill
.Solid
If Range(s).Cells(1).Interior.ColorIndex = -4142 Then
.Visible = False
Else
.Visible = True
.ForeColor.RGB = Range(s).Cells(1).Interior.Color
End If
End With
End If
Next mySeries
Next cht
End Sub

Gruß
Rudi

Anzeige
AW: Farbe ändert sich nicht in Chart Legende mit
18.03.2014 13:38:14
Matthias
Hallo Rudi,
merci, das funktioniert prima!!!!
Vielen Dank und Gruß
Matthias
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Farben in der Chart-Legende anpassen


Schritt-für-Schritt-Anleitung

Um die Farben in der Chart-Legende eines Balkendiagramms in Excel anzupassen, kannst du den folgenden VBA-Code verwenden. Dieser Code färbt die gesamte Reihe und sorgt dafür, dass die Farben in der Legende entsprechend der Balkenfarbe angezeigt werden.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Kopiere und füge den folgenden Code in das Modul ein:
Sub ColorBalken()
    Dim cht As ChartObject
    Dim s As String
    Dim mySeries As Series

    For Each cht In ActiveSheet.ChartObjects
        For Each mySeries In cht.Chart.SeriesCollection
            If mySeries.ChartType = xlColumnStacked Then
                s = Split(mySeries.Formula, ",")(2)
                With mySeries.Format.Fill
                    .Solid
                    If Range(s).Cells(1).Interior.ColorIndex = -4142 Then
                        .Visible = False
                    Else
                        .Visible = True
                        .ForeColor.RGB = Range(s).Cells(1).Interior.Color
                    End If
                End With
            End If
        Next mySeries
    Next cht
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Führe das Makro aus, indem du ALT + F8 drückst, das Makro auswählst und auf Ausführen klickst.

Häufige Fehler und Lösungen

  • Problem: Die Farben der Legende ändern sich nicht.

    • Lösung: Stelle sicher, dass du die gesamte Reihe und nicht nur die einzelnen Datenpunkte färbst. Der oben angegebene Code löst dieses Problem.
  • Problem: Der Code funktioniert nicht mit anderen Diagrammtypen.

    • Lösung: Achte darauf, dass der Code speziell für xlColumnStacked Diagramme geschrieben ist. Für andere Typen musst du den Code entsprechend anpassen.

Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du die Farben manuell ändern:

  1. Klicke auf die Datenreihe im Diagramm.
  2. Wähle die Formatierungsoptionen aus dem Kontextmenü.
  3. Ändere die Füllfarbe der Datenreihe. Dies wird auch die Farbe in der Legende ändern.

Praktische Beispiele

Angenommen, du hast ein Balkendiagramm mit den folgenden Werten:

  • A1: 10 (Farbe: Rot)
  • A2: 20 (Farbe: Blau)
  • A3: 30 (Farbe: Grün)

Wenn du den oben genannten VBA-Code ausführst, wird die Legende die Farben Rot, Blau und Grün anzeigen, entsprechend den Farben der Zellen.


Tipps für Profis

  • Experimentiere mit verschiedenen Diagrammtypen, um die besten Ergebnisse zu erzielen. Der Code kann leicht angepasst werden, um auch für andere Typen wie Linien- oder Flächendiagramme zu funktionieren.
  • Nutze die Formatierungsoptionen in Excel, um deine Diagramme visuell ansprechender zu gestalten. Achte darauf, dass Farben konsistent verwendet werden, um Verwirrung zu vermeiden.

FAQ: Häufige Fragen

1. Warum ändern sich die Farben der Legende nicht, wenn ich die Balken färbe?
Die Legendenfarbe ist von der Reihe abhängig, und der Standardcode färbt nur die einzelnen Datenpunkte.

2. Kann ich den Code für andere Diagrammtypen verwenden?
Ja, du musst lediglich den Diagrammtyp im Code anpassen, z.B. xlLine für Liniendiagramme.

3. Wo finde ich den VBA-Editor in Excel?
Du kannst den VBA-Editor öffnen, indem du ALT + F11 drückst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige