Farbwert des Diagramms nach Wert vorgeben

03/06/2010 - 13:59 von Kai Apel | Report spam
Hallo NG,

Ich habe folgendes Problem: Tortendiagramme sollen entsprechend einer
Vorgabe immer gleich eingefàrbt werden (14 Kategorien, 14 Farben, ist
x-Wert im Diagramm). Dabei tauchen nicht immer alle 14 Kategorien auf.
Ich muss also das Diagramm angucken und für jeden Diagrammpunkt den
entsprechenden Wert auswerten. Mit
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Points(i).Interior.Color
= RGB(79, 98, 40) kann ich ja für den ersten Diagrammpunkt die Farbe
definieren. Wie kann ich aber die X und Y Werte für diesen Punkt
auslesen, damit ich darüber die Bedingung setzen kann?

vielen Dank im Voraus

K. Apel (Berlin)
 

Lesen sie die antworten

#1 Andreas Killer
03/06/2010 - 14:59 | Warnen spam
Kai Apel schrieb:

Ich habe folgendes Problem: Tortendiagramme sollen entsprechend einer
Vorgabe immer gleich eingefàrbt werden (14 Kategorien, 14 Farben, ist


...
definieren. Wie kann ich aber die X und Y Werte für diesen Punkt
auslesen, damit ich darüber die Bedingung setzen kann?


Bei einem Tortendiagramm Du brauchst Du nur die Y-Werte, die X-Werte
enthalten ja automatisch die Nummern von 1 bis Anzahl Elemente.

Wie Du das mit den Kategorien löst ist wohl Geschmackssache, man
könnte sie aus einem Range lesen, welches dann Von-Bis-Farbwerte
enthàlt, ich hab es der Übersichtlichkeit halber einfach mal mit CASE
gemacht.

Andreas.

Sub Test()
Dim C As Chart
Dim S As Series
Dim Werte
Dim I As Integer

'Den ersten Chart aus der Tabelle holen
Set C = ActiveSheet.ChartObjects(1).Chart
'Tortengrafik hat idR nur eine Datenreihe
Set S = C.SeriesCollection(1)
'Die Werte auslesen
Werte = S.Values

'Alle Werte prüfen
For I = LBound(Werte) To UBound(Werte)
'Den Hintergrund des zugehören Wertes...
With S.Points(I).Interior
'...je nach Größe...
Select Case Werte(I)
Case 0 To 30
'...einfàrben.
.Color = RGB(79, 98, 40)
Case 30 To 60
.Color = RGB(179, 98, 40)
Case 60 To 90
.Color = RGB(79, 198, 40)
Case Is > 90
.Color = RGB(79, 98, 140)
End Select
End With
Next
End Sub

Ähnliche fragen