Dynamische Farbänderung in Balkendiagrammen in Excel
Schritt-für-Schritt-Anleitung
Um die Farben einzelner Balken in einem Excel-Balkendiagramm dynamisch zu ändern, befolge die folgenden Schritte:
-
Vorbereitung: Stelle sicher, dass Du ein gestapeltes Balkendiagramm erstellt hast, in dem die Statusdaten in einer Tabelle eingetragen sind.
-
VBA-Editor öffnen:
- Drücke
ALT + F11, um den VBA-Editor zu öffnen.
-
Modul für Arbeitsblatt hinzufügen:
- Doppelklicke auf das Arbeitsblatt, in dem sich Dein Diagramm befindet (z. B. Tabelle1).
-
Code einfügen: Füge den folgenden Code in das Modul ein:
Option Explicit
Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$B$1" Or Target.Address = "$B$2" Then
Call y_achse_skalieren(Me)
ElseIf Not Intersect(Target, Range("E6:E16")) Is Nothing Then
Call SetColor(Me)
End If
End Sub
-
Zusätzlichen Code einfügen: Füge in einem neuen Modul den folgenden Code ein:
Option Explicit
Sub y_achse_skalieren(ByRef probjWorksheet As Worksheet)
With probjWorksheet.ChartObjects(1).Chart.Axes(xlValue)
.MaximumScale = WorksheetFunction.Max(Sheets("Tabelle1").Range("B1:B2"))
.MinimumScale = WorksheetFunction.Min(Sheets("Tabelle1").Range("B1:B2"))
End With
End Sub
Public Sub SetColor(ByRef probjWorksheet As Worksheet)
Dim objPoint As Point
Dim lngRow As Long
lngRow = 6
With probjWorksheet
For Each objPoint In .ChartObjects(1).Chart.SeriesCollection(2).Points
objPoint.Format.Fill.BackColor.RGB = .Cells(lngRow, 5).DisplayFormat.Font.Color
objPoint.Format.Fill.ForeColor.RGB = .Cells(lngRow, 5).DisplayFormat.Font.Color
lngRow = lngRow + 1
Next
End With
End Sub
-
Makro testen: Ändere den Status in der entsprechenden Zelle, und beobachte, wie sich die Farbe des Balkens im Diagramm ändert.
Häufige Fehler und Lösungen
-
Fehler: "Argument ist nicht optional"
Dieser Fehler tritt auf, wenn eine Variable nicht korrekt übergeben wird. Stelle sicher, dass Du die richtigen Zelladressen im Code verwendest.
-
Farben ändern sich nicht
Wenn die Farben der Balken nicht wie erwartet geändert werden, könnte es daran liegen, dass die Zellen, die die Statusinformationen enthalten, durch bedingte Formatierungen beeinflusst werden. Überprüfe die Formatierungen.
Alternative Methoden
Eine alternative Methode zur Farbänderung von Balken in einem Excel-Diagramm ist die Verwendung von bedingten Formatierungen. Anstatt VBA zu verwenden, kannst Du die Farben direkt in den Zellen definieren, und die Diagrammfarben werden automatisch angepasst.
Praktische Beispiele
Hier ist ein Beispiel, wie Du die Farben in einem Balkendiagramm ändern kannst:
-
Statusliste erstellen:
- Erstelle eine Liste mit Status wie "In Vorbereitung", "Überfällig" und "Abgeschlossen".
-
Balkendiagramm erstellen:
- Erstelle ein Balkendiagramm in Excel basierend auf dieser Liste.
-
Dynamische Farbänderung:
- Verwende den oben angegebenen VBA-Code, um die Farben der Balken basierend auf dem Status zu ändern.
Tipps für Profis
- Color Codes verwenden: Du kannst RGB-Werte für spezifische Farben verwenden, um die Farbänderung präziser zu steuern.
- Diagramm linienfarbe ändern: Um die Linienfarbe in einem Diagramm zu ändern, kannst Du ebenfalls den VBA-Code anpassen, um
objPoint.Format.Line.ForeColor.RGB zu verwenden.
FAQ: Häufige Fragen
1. Wie kann ich die Farbe eines einzelnen Balkens ändern?
Du kannst die Farbe eines einzelnen Balkens ändern, indem Du die entsprechende Bedingung im VBA-Code anpasst.
2. Funktioniert das auch in Excel Online?
Leider funktioniert der VBA-Code nicht in Excel Online, da VBA nur in Desktop-Versionen von Excel unterstützt wird.
3. Kann ich mehrere Diagramme gleichzeitig ändern?
Ja, Du kannst den VBA-Code anpassen, um durch mehrere Diagrammobjekte zu iterieren und die Farben entsprechend zu ändern.
4. Was mache ich, wenn die Farben nicht richtig angezeigt werden?
Überprüfe die Referenzen im VBA-Code, um sicherzustellen, dass sie mit den Zelladressen in Deiner Excel-Tabelle übereinstimmen.