Microsoft Excel

Herbers Excel/VBA-Archiv

SeriesCollection(2).Points: per Name ansprechen ? | Herbers Excel-Forum


Betrifft: SeriesCollection(2).Points: per Name ansprechen ? von: zacharias
Geschrieben am: 13.01.2010 15:22:55

Hallo Zusammen,

ich komme nicht weiter. Ich habe ein Chart wie folgt erzeugt:

Set PC = wksZiel.ChartObjects.Add(0, Cells(intStartRow, 1).Top, 600, 300)
With PC.Chart
.ChartType = xlColumnStacked
.SetSourceData Source:=rngWasserfall, PlotBy:=xlColumns
...
Das Stapelchart besteht aus 2 Datenreihen (SeriesCollection). Die 1. ist auf unsichtbar gesetzt, die 2. auf sichtbar ("Wasserfall"). Es existieren 4 Säulen: 1. "Gesamtanzahl", 2. "DB,CKD,SKD", 3. usw.

Ich erzeuge die Tabellen und Charts dynamisch da sich Anzahl und Reihenfolge der Spalten(Überschriften) häufig ändert .

Mein Ziel ist es, abhängig von der Daten(Spalten)-Beschriftung die Farbe des Datenpunktes (des aufgestapelten Säulenanteils) zu ändern. Wenn die Beschriftung also "DB,CKD,SKD" lautet soll der Datenpunkt z.B. blau eingefärbt werden.

Folgender Versuch funktionierte nicht:
PC.Chart.SeriesCollection(2).Points("DB,CKD,SKD").Interior.ColorIndex = 8

Eine gesamte Datenreihe kann man zwar wie folgt ansprechen
.SeriesCollection("Beispiel").Fill.ForeColor.SchemeColor = 40
bei einem Datenpunkt klappt das aber nicht
Die Points-Eigenschaft des Series-Objekts kann nicht zugeordnet werden

Auch ein Ermitteln der PointsNr durch Schleifendurchlauf bekomme ich nicht hin, da ich für .Points keine Eigenschaft für den Namen finde (.name, .Caption, .Text o.ä).

Ich bin für jeden Hinweis wie immer dankbar !!
Gruß und schon jetzt Danke für's Lesen
Zacharias

  

Betrifft: AW: SeriesCollection(2).Points: per Name ansprechen ? von: fcs
Geschrieben am: 13.01.2010 16:28:58

Hallo Zacharias,

man muss hier über die Werte der XValues gehen, um die Punkte individual zu formatieren.


Gruß
Franz

Beispiel:

Sub DatenpunkteDiagramm()
  Dim oChart As Chart, oReihe As Series, oPunkt As Point, intI As Long
  Set oChart = Charts("Diagramm1")
  For Each oReihe In oChart.SeriesCollection
    If oReihe.Name = "B" Then
    For intI = 1 To oReihe.Points.Count
      Set oPunkt = oReihe.Points(intI)
      Select Case oReihe.XValues(intI)
        Case "A01": oPunkt.Interior.ColorIndex = 3
        Case "A02": oPunkt.Interior.ColorIndex = 5
        Case "A03": oPunkt.Interior.ColorIndex = 8
        Case Else
          oPunkt.Interior.ColorIndex = xlColorIndexAutomatic
      End Select
    Next
    End If
  Next
End Sub



  

Betrifft: AW: SeriesCollection(2).Points: per Name ansprechen ? von: Zacharias
Geschrieben am: 18.01.2010 21:44:17

Hallo fcs,

1000 Dank für die Lösung - wo findest Du sowas nur - ich habe mir die Finger wundgetippt ; - )

Tut mir leid, daß ich mich erst jetzt bedanke, aber ich bin erst jetzt wieder zum Nachschauen gekommen.

Danke nochmal
Zacharias


Beiträge aus den Excel-Beispielen zum Thema "SeriesCollection(2).Points: per Name ansprechen ?"