Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1320to1324
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

Farbwahl im Diagramm

Farbwahl im Diagramm
21.07.2013 13:25:05
Ernst
Hallo zusammen
ich habe in einem XY-Diagramm drei Datenreihen abgebildet, 2x primäser Y-Achse, 1x Sekundäre Y-Achse. Ich möchte nun per VBA die Achsfarbe der sekundären Achse der Farbe der Line der entsprechenden Datenreihe anpassen.
Dies gelingt mit
ax.Format.Line.ForeColor = ser.Format.Line.ForeColor
nur dann wenn im Dalogfeld "Datenreihen formatieren" die Linienfarbe "von Hand" auf "einfarbige Linie" gestellt wurde. Steht der entsprechende Wert auf "Automatisch"
wird die Farbe Weiss zurückgegeben.
Daher die Frage ans Forum: wie stelle ich mit vba fest, ob und welche Farbe der Linie automatisch zugewiesen worden sind?
Besten Dank für Eure Hilfe

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Farbwahl im Diagramm
21.07.2013 21:04:57
Beverly
Hi Ernst,
versuche es mal auf diesem Weg:
With ActiveSheet.ChartObjects(1).Chart
If .SeriesCollection(3).Border.ColorIndex = xlAutomatic Then
.Axes(xlValue, xlSecondary).Border.Color = .SeriesCollection(3).Border.Color
Else
' hier alle Eigenschaften auslesen, welche man von Hand einstellen kann
' und diese dann der Achse zuweisen
End If
End With


AW: Farbwahl im Diagramm
22.07.2013 14:20:44
Ernst
Hallo Karin
super genau so funktioniert es. Braucht es die Abfrage überhaupt? Ich habe nun die Farbeingeschaften über "ser.boder.color" übernommen. Mal ausgiebeig testen für welche Datenreihenarten (Punkte, Linien etc) es funktioniert...
Besten Dank
Ernst

Anzeige
AW: Farbwahl im Diagramm
22.07.2013 15:00:24
Ernst
Hallo Karin
nach den Tests ergibt sich nun folgendes Problem:
hat die Datenreihe keine Linie (ser.format.line.Visible = False), aber dafür Marker (ser.Markerstyle = xlAutomatic) wie kann ich dann auf die Markerfarbe zugreifen?
Der rest funktioniert tip top.
Besten dank für die weitere Hilfe
Ernst

AW: Farbwahl im Diagramm
22.07.2013 15:58:13
Beverly
Hi Ernst,
mir fällt da nur der Umweg ein, dass zuerst die Linie eingeblendet und ihre Farbe auf automatisch gestellt wird:
With ActiveSheet.ChartObjects(1).Chart
If .SeriesCollection(3).MarkerStyle = xlMarkerStyleAutomatic Then
.SeriesCollection(3).Format.Line.Visible = msoTrue
.SeriesCollection(3).Border.ColorIndex = xlAutomatic
.Axes(xlValue, xlSecondary).Border.Color = .SeriesCollection(3).Border.Color
.SeriesCollection(3).Format.Line.Visible = msoFalse
Else
' hier alle Eigenschaften auslesen, welche man von Hand einstellen kann
' und diese dann der Achse zuweisen
End If
End With


Anzeige
AW: Farbwahl im Diagramm
25.07.2013 09:25:56
Ernst
Hallo Karin
ich habe das Problem dank Deinen Hinweisen nun so gelöst:
Private Function FindColor(ser As Series) As MsoRGBType
Dim clr As MsoRGBType
clr = vbBlack
With ser
If .Border.ColorIndex = xlAutomatic Then
' Farbe automatisch zugewiesen
clr = .Border.Color
Else                            ' Farbe von Hand zugewiesen
If ser.Format.Line.Visible = True Then
clr = ser.Format.Line.ForeColor
Else                           ' keine Linie, also auf die Marker zurückgereifen
If (.MarkerStyle = xlAutomatic) And _
((.MarkerBackgroundColor = 0 Then
clr = .MarkerBackgroundColor
ElseIf .MarkerForegroundColor >= 0 Then
clr = .MarkerForegroundColor
End If
End If          '.Markerstyle = Auto
End If            '.Line.Visible =
End If              '.border.colorindex
End With
FindColor = clr
End Function
Gruss und besten Dank
Ernst
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige