Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
820to824
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
820to824
820to824
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Diagrammsäulen wechseln mit Höhe die Farben

Diagrammsäulen wechseln mit Höhe die Farben
23.11.2006 14:31:20
Roland
Hallo Herbianer,
möchte ein Säulendiagramm in 3D erstellen, bei dem die Farbe der Säule sich mit der Höhe verändert.
Also angenommen ich habe die Werte 1-5 dann soll die Säule falls der Wert 1 ist grün sein, ist der Wert 2 oder 3 gelb und bei höheren Werten rot.
Geht das irgendwie?
Gruß
Roland

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagrammsäulen wechseln mit Höhe die Farben
23.11.2006 16:27:57
fcs
Hallo Roland,
ja das geht irgendwie und zwar per VBA-Makros
Je nachdem, ob das Diagramm auf einem eigenen Blatt erstellt oder als Objekt im Tabellenblatt muss/kann man das zugehörige Ereignismakro etwas unterschiedlicher gestalten.
Gruß
Franz
Diagramm in eigenem Registerblatt.
Das Diagramm wird beim Aktivieren des Blattes aktualisiert. Der Code muss im VBA-Editor unter dem Diagramm eingefügt werden.

Private Sub Chart_Activate()
Dim Reihe As Series
'in nächster Zeile ggf. Nr. der Datenreihe anpassen
Set Reihe = ActiveChart.SeriesCollection(1) '1. Datenreihe des Diagramms
For i = 1 To Reihe.Points.Count
Select Case Application.WorksheetFunction.Index(Reihe.Values, i)
Case Is > 3
Reihe.Points(i).Interior.ColorIndex = 3 'rot
Case Is >= 2
Reihe.Points(i).Interior.ColorIndex = 6 'gelb
Case Else
Reihe.Points(i).Interior.ColorIndex = 4 'grün
End Select
Next
End Sub

Diagramm als Objekt im Tabellenblatt.
Das Diagramm wird nach Ändern eines Wertes in der Datenreihe aktualisiert. Der Code muss im VBA-Editor unter der Tabelle eingefügt werden.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range, Reihe As Series, strBereich As String
'in nächster Zeile ggf. Namen des Diagramms und Nr. der Datenreihe anpassen
Set Reihe = Me.ChartObjects("Diagramm 1").Chart.SeriesCollection(1) '1. Datenreihe des Diagramms
'Bereich mit den Werten der Datenreihe
strBereich = Mid(Reihe.FormulaLocal, InStrRev(Reihe.FormulaLocal, "!") + 1 _
, InStrRev(Reihe.FormulaLocal, ";") - InStrRev(Reihe.FormulaLocal, "!") - 1)
Set Bereich = Range(strBereich)
If Intersect(Target, Bereich) Then
For i = 1 To Reihe.Points.Count
Select Case Application.WorksheetFunction.Index(Reihe.Values, i)
Case Is > 3
Reihe.Points(i).Interior.ColorIndex = 3 'rot
Case Is >= 2
Reihe.Points(i).Interior.ColorIndex = 6 'gelb
Case Else
Reihe.Points(i).Interior.ColorIndex = 4 'grün
End Select
Next
End If
End Sub

Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige