Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1824to1828
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Farbe in Balkendiagramm dynamisch ändern

Farbe in Balkendiagramm dynamisch ändern
23.04.2021 11:30:34
Christian
Hallo liebe Excel-Gemeinde.
Als erstes muss ich mich schonmal bedanken, da ich schon soooo oft hier in diesem Forum und im Archiv Hilfe gefunden habe.
Nun hoffe ich, dass ihr mir bei meinem aktuellen Problem auch weiterhelfen könnt, selbst wenn meine Suche nichts gebracht hat.
Ich habe eine Excel-Liste mit einem gestapelten Balkendiagramm, in dem Laufzeiten angezeigt werden, nach Datum.
Und zwar geht es da um den Fortschritt in einem Arbeitsablauf, wobei durch das Diagramm übersichtlich erkennbar sein soll, in welchem zeitlichen Ablauf welche Schritte fällig sind.
Die Tabelle steht, das Diagramm funktioniert, die dynamische Anpassung der x-Achse nach Start und Ende-Datum klappt (hier ein Dank ans Forum) ...
Alles schön und gut.
Nun soll aber anhand des in der Tabelle ausgewählten Status der Balken im Diagramm dynamisch die Farbe ändern.
Wenn ich z.B. den Status umstelle von "In Vorbereitung" auf "Überfällig" soll sich auch die Farbe des entsprechenden Balkens von blau nach rot verändern.
Ich habe den entsprechenden Teil der Datei mal hier:
https://www.herber.de/bbs/user/145743.xlsm
Ich hoffe das ist überhaupt möglich was ich möchte.

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

Betreff
Datum
Anwender
Anzeige
AW: Farbe in Balkendiagramm dynamisch ändern
23.04.2021 12:11:18
Nepumuk
Hallo Christian,
im Modul der Tabelle1:

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
Im Modu1l:

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
'   ActiveWindow.Visible = False
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
Gruß
Nepumuk
Anzeige
AW: Farbe in Balkendiagramm dynamisch ändern
23.04.2021 12:40:16
Christian
Hallo.
Danke für die schnelle Antwort.
Wenn ich das Makro ausführe, kommt die Meldung
"Argument ist nicht optional"
und die Farben aller Balken wird schwarz.
Kann es daran liegen, dass die Farben der Spalte Status durch eine bedingte Formatierung verändert wird?
AW: Farbe in Balkendiagramm dynamisch ändern
23.04.2021 12:46:38
Nepumuk
Hallo Christian,
nein, die bedingte Farbe lese ich per DisplayFormat Eigenschaft aus. Bei mir sieht das Chart so aus:

Gruß
Nepumuk
AW: Farbe in Balkendiagramm dynamisch ändern
23.04.2021 13:38:11
Christian
Perfekt...
Ich hab den Fehler gefunden.
Wenn man kurz nachdenkt und nicht nur blind kopiert, dann klappt das auch :-)
Ich hatte ja nur die relevanten Daten in die Beispieldatei kopiert.
In der Originaldatei musste ich den Code bei:
lngRow = 15
von 6 auf 15 ändern.
Und schon klappt es auch mit dem Nachbarn ;-)
Vielen vielen Dank.
Anzeige

61 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige