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