Bedingte Formatierung in Diagrammreihen? Per VBA?

Hallo zusammen,

habe eine Problemstellung, vor deren Erläuterung ich jedoch zunächst einmal abklären möchte ob die Vorgehensweise generell möglich ist.

Ich habel eine Exceldatei mit mehreren Säulendiagrammen vorliegen, die wiederum mehrere Reihen beinhalten.

Nun möchte in einigen bestimmten Diagramme (nicht alle) für jeweils eine bestimmte dieser Reihen die Datenpunkte bedingt einfärben. (Die anderen Reihen sollen nicht verändert werden)

Nehmen wir an, die Datenpinkte haben Werte zwischen 1 und 5.

Nun soll (evtl per VBA) geprüft werden, welchen Wert ein jeweiliger Datenpunkt hat. Und entsprechend des Wertes eine von 5 Farben gewählt werden

Nehmen wir an:

Werte bis 1: dunkelrot
Werte bis 2: hellrot
Werte bis 3: Orange
Werte bis 4: gelb
Werte bis 5: grün

Ist diese vorgehensweise so denkbar?
Wenn ja wie?

Für Hilfe wäre ich sehr dankbar.

Viele Grüße
Pascal

Hi Pascal,

Nun soll (evtl per VBA) geprüft werden, welchen Wert ein
jeweiliger Datenpunkt hat. Und entsprechend des Wertes eine
von 5 Farben gewählt werden

Nehmen wir an:

Werte bis 1: dunkelrot
Werte bis 2: hellrot
Werte bis 3: Orange
Werte bis 4: gelb
Werte bis 5: grün

Ist diese vorgehensweise so denkbar?

Ja, bin da sicher, so aus dem Bauch heraus.

Wenn ja wie?

Muß mal schauen ob ich das hinkriege.

Gruß
Reinhard

Datenpunkte wertabhängig unterschiedlich farbig
Hi Pascal,

die Datei: http://www.hostarea.de/server-11/November-6f078c101b…

beinhaltet folgendes, eine Tabelle in Blatt1 die so aussieht:

Tabelle:
F:\[EinzelneDatenpunkteFarbig.xls]!Tabelle1
 │ A │ B │ 
───┼────┼─────┤
 1 │ 1 │ 2,6 │ 
 2 │ 2 │ 1,7 │ 
 3 │ 3 │ 0,9 │ 
 4 │ 10 │ 3,7 │ 
 5 │ 5 │ 4,1 │ 
 6 │ 6 │ 6,7 │ 
 7 │ 2 │ 2,2 │ 
 8 │ 7 │ 3,5 │ 
 9 │ 9 │ 1,6 │ 
10 │ 10 │ 7 │ 
───┴────┴─────┘

Auf dem Blatt sieht man 2 Schaltflächen, denen die Makros „Wertabhaengigie_Farbe()“ und „Eine_Farbe()“ zugeordnet sind.
Man sieht das Säulendiagramm was aus den Datenreihen in A und B gebildet wurde.
Das Makro „Wertabhaengigie_Farbe()“ färbt einzelne Datenpunkte der Reihe 2, also B, wertabhängig.
Die entsprechenden Farbwerte mußt du dir im Code noch anpassen, in Tabelle2 sieht du die 56 Farben wenn du das Makro „Farbwerte()“ ausführst, Zeilennummer ist Farbnummer, die dann in der Codezeile:
Farbe = Array(4, 36, 5, 12, 17)
anzupassen ist.

Code in Modul1:

Option Explicit
'
Sub Wertabhaengigie\_Farbe()
Dim Reihe As Series, sf As String, Zei As Long, Farbe As Variant
Farbe = Array(4, 36, 5, 12, 17)
Set Reihe = Worksheets("Tabelle1").ChartObjects(1).Chart.SeriesCollection(2)
sf = Mid(Reihe.Formula, InStr(Reihe.Formula, "!") + 1)
sf = Left(sf, InStr(sf, ",") - 1)
With Range(sf)
 For Zei = 1 To .Cells.Count
 Select Case .Cells(Zei, 1).Value
 Case Is \> 5
 Reihe.Points(Zei).Interior.ColorIndex = -4142
 Cells(Zei, 2).Interior.ColorIndex = -4142
 Case Is \> 4
 Reihe.Points(Zei).Interior.ColorIndex = Farbe(0)
 Cells(Zei, 2).Interior.ColorIndex = Farbe(0)
 Case Is \> 3
 Reihe.Points(Zei).Interior.ColorIndex = Farbe(1)
 Cells(Zei, 2).Interior.ColorIndex = Farbe(1)
 Case Is \> 2
 Reihe.Points(Zei).Interior.ColorIndex = Farbe(2)
 Cells(Zei, 2).Interior.ColorIndex = Farbe(2)
 Case Is \> 1
 Reihe.Points(Zei).Interior.ColorIndex = Farbe(3)
 Cells(Zei, 2).Interior.ColorIndex = Farbe(3)
 Case Is \> 0
 Reihe.Points(Zei).Interior.ColorIndex = Farbe(4)
 Cells(Zei, 2).Interior.ColorIndex = Farbe(4)
 Case Else
 Reihe.Points(Zei).Interior.ColorIndex = -4142
 Cells(Zei, 2).Interior.ColorIndex = -4142
 End Select
 Next Zei
End With
End Sub
'
Sub Eine\_Farbe()
Dim Reihe As Series, sf As String, N As Long, F As Variant
Set Reihe = Worksheets("Tabelle1").ChartObjects(1).Chart.SeriesCollection(2)
Reihe.Interior.ColorIndex = 3
Range("B1:B10").Interior.ColorIndex = 3
End Sub
'
Sub Farbwerte()
Dim Zei As Byte
With Worksheets("Tabelle2")
 For Zei = 1 To 56
 .Cells(Zei, 1).Interior.ColorIndex = Zei
 Next Zei
End With
End Sub

Gruß
Reinhard

Ich habel eine Exceldatei mit mehreren Säulendiagrammen
vorliegen, die wiederum mehrere Reihen beinhalten.

Nun möchte in einigen bestimmten Diagramme (nicht alle) für
jeweils eine bestimmte dieser Reihen die Datenpunkte bedingt
einfärben. (Die anderen Reihen sollen nicht verändert werden)

Nehmen wir an, die Datenpinkte haben Werte zwischen 1 und 5.

Nun soll (evtl per VBA) geprüft werden, welchen Wert ein
jeweiliger Datenpunkt hat. Und entsprechend des Wertes eine
von 5 Farben gewählt werden

Nehmen wir an:

Werte bis 1: dunkelrot
Werte bis 2: hellrot
Werte bis 3: Orange
Werte bis 4: gelb
Werte bis 5: grün

Ist diese vorgehensweise so denkbar?
Wenn ja wie?

Für Hilfe wäre ich sehr dankbar.

Viele Grüße
Pascal

Hallo Reinhard,

vielen Dank für die Hilfe.
Mittlerweile habe ich auch etwas „rumprobiert“.
Mittlerweile bin ich zu dem Entschluss gekommen, dass es wohl auch eine ganz elegante Lösung ohne VBA gibt.

Ich habe nun die Werte der betreffenden Reihe in 5 einzelne Reihen zerlegt, bei denen nur die jeweils in ein Farbschema passenden Werte ausgegeben werden.

Allerdings habe ich dann 5 Reihen dafür im Diagramm und nicht nur eine.
Da es aber ziemlich viele Diagramme sind und ich nicht genau weiss, wie ich diese per VBA ansprechen kann, erscheint mir das trotzdem einfacher, auch wenn es wohl einmalig mit einem wesentlich höheren Aufwand verbunden ist.

Trotzdem nochmal vielen vielen Dank für Deine Mühe

Gruß
Pascal