Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1096to1100
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
Inhaltsverzeichnis

per VBA viele Diagramm-Datenreihen formatieren

per VBA viele Diagramm-Datenreihen formatieren
Bernd
Guten Abend allerseits,
ich habe es tatsächlich geschafft, in ein Diagramm 235 Datenreihen mit Diagrammtyp xlXYScatterLines einzubinden. Nun suche ich eine Lösung, um diese Datenreihen in einer bestimmten Art und Weise zu formatieren. Händisch viel Arbeit, deswegen möchte ich die Datenreihe per VBA ansprechen und den einzelnen Datenpunkten jeder Datenreihe die gewünschte Formatierung mitgeben. Ich scheitere aber an der variablen Ansprache der Datenreihen. Ein Makro folgender Art führt nicht zum Erfolg, weshalb ich für Gegenvorschläge sehr dankbar wäre:
Sub Formataendern()
Dim Reihennummer as Integer
For Reihennummer = 1 to 235
ActiveSheet.ChartObjects("Diagramm 1").Select
ActiveChart.SeriesCollection(Reihennummer).Select
ActiveChart.SeriesCollection(Reihennummer).Points(1).Select
With Selection
.MarkerBackgroundColorIndex = 44
.MarkerForegroundColorIndex = 1
.MarkerStyle = xlCircle
.MarkerSize = 5
End With
ActiveChart.SeriesCollection(Reihennummer).Points(2).Select
With Selection
.MarkerBackgroundColorIndex = 39
.MarkerForegroundColorIndex = 1
.MarkerStyle = xlCircle
.MarkerSize = 7
End With
Next Reihennummer
End Sub

Kann mir jemand helfen?
Viele Grüße
Bernd B.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: per VBA viele Diagramm-Datenreihen formatieren
23.08.2009 19:49:55
Daniel
HI
hier mal ein Beispiel:
das Array, mit dem die Farben und Grössen definiert werden, musst du halt so gross machen und befüllen, wie maximal Punkte vorkommen können. Ansonsten ist die Anzahl der Datenreihen und der Punkte voll flexibel
Sub Formataendern()
Dim DatReihe As Long
Dim PointNr As Long
Dim PT_Farb(5) As Long
Dim PT_Size(5) As Long
PT_Farb(1) = 44
PT_Farb(2) = 39
'usw
PT_Size(1) = 5
PT_Size(2) = 7
'usw
With ActiveSheet.ChartObjects("Diagramm 2").Chart
For DatReihe = 1 To .SeriesCollection.Count
With .SeriesCollection(DatReihe)
For PointNr = 1 To .Points.Count
With .Points(PointNr)
.MarkerBackgroundColorIndex = PT_Farb(PointNr)
.MarkerForegroundColorIndex = 1
.MarkerStyle = xlCircle
.MarkerSize = PT_Size(PointNr)
End With
Next PointNr
End With
Next DatReihe
End With
End Sub

Anzeige
AW: per VBA viele Diagramm-Datenreihen formatieren
23.08.2009 21:33:03
Bernd
Danke für Deine Hilfe, Daniel. Ich komme aber noch nicht klar.
Wofür steht in der Variablen-Deklaration PT_Farb und PT_Size jeweils "(5)"?
Ich habe den Code auf meine spezifische Situation angepasst, in dem ich PT_Farb(2), (3) und (4) sowie PT_Size(2), (3) und (4) Werte für Farbe und Größe zugeordnet habe. Nach den Definitionen habe ich einfach nur in "Diagramm 1" (so heisst es bei mir) geändert und die Schleifen für Datenreihen und Datenpunkte nicht bei 1 sondern bei 94 bzw. 2 starten lassen und den Teil ".SeriesCollection.Count" bzw. ".Point.Count" durch die Endwerte 154 bzw. 4 ersetzt.
Funktioniert aber nicht wie gewünscht und es wird aus den Datenreihen nur ein Punkt farblich und in der Größe verändert. Was kann ich tun?
Hier der konkrete Code:
Sub Formataendern()
Dim DatReihe As Long
Dim PointNr As Long
Dim PT_Farb(5) As Long
Dim PT_Size(5) As Long
PT_Farb(2) = 46
PT_Farb(3) = 45
PT_Farb(4) = 44
'usw
PT_Size(2) = 7
PT_Size(3) = 6
PT_Size(4) = 5
'usw
With ActiveSheet.ChartObjects("Diagramm 1").Chart
For DatReihe = 94 To 154
With .SeriesCollection(DatReihe)
For PointNr = 2 To 4
With .Points(PointNr)
.MarkerBackgroundColorIndex = PT_Farb(PointNr)
.MarkerForegroundColorIndex = 1
.MarkerStyle = xlCircle
.MarkerSize = PT_Size(PointNr)
End With
Next PointNr
End With
Next DatReihe
End With
End Sub

Anzeige
AW: per VBA viele Diagramm-Datenreihen formatieren
23.08.2009 22:21:12
Daniel
HI
das 5 steht dafür, daß es in einer Serie maximal 5 Punkte gibt, die ich ändern will.
haben die Datenreihen mehr Punkte, muss man das anpassen.
btw. nur Code alleine kann man nicht testen, man muss auch wissen, wie die Ausgangsdaten aussehen und was als Ergebnis rauskommen soll.
Sprich, Beispieldatei ist immer hilfreich.
Gruß, Daniel
gelöst
24.08.2009 11:51:22
Bernd
Hallo Daniel,
jetzt wird es peinlich, denn ich sage: mea culpa! Dein Vorschlag funktioniert natürlich einwandfrei und ich habe gestern einfach nicht gemerkt, daß ich die falschen Datenreihen auf Veränderung durch den Code untersucht habe. Pausen von der Monitorarbeit machen wohl doch ihren Sinn.
Fazit: Vielen Dank, durch Deine Hilfe spare ich eine Menge Arbeit, Nerven und reduziere das Fehlerpotential!
Beste Grüße
Bernd B.
Anzeige

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige