J'écris du code VBA pour modifier les graphiques Excel. Pour un graphique en nuages de points, je dois modifier la couleur de la ligne de repère et parfois la couleur des lignes de connexion. Je peux faire les deux manuellement, mais lorsque j'enregistre une macro, les deux actions donnent le même code, même si les résultats sont très différents.
Avez-vous une idée de la façon de distinguer une couleur de trait d'un marqueur de couleur dans le code?
Ce code a été créé lorsque je me suis enregistré en changeant la couleur des lignes de marqueur
Sub Macro3()
'
' Macro3 Macro
'
'
ActiveChart.SeriesCollection(2).Select
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent1
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
End With
End Sub
Ce code a été créé lorsque je me suis enregistré en changeant la couleur de la ligne reliant les marqueurs
Sub Macro4()
'
' Macro4 Macro
'
'
'Change the Line Color
ActiveChart.SeriesCollection(2).Select
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent1
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
End With
End Sub
La couleur de ligne des lignes de connexion est Series.Format.Line.ForeColor
. La couleur de la ligne de repère est Series.MarkerForegroundColor
. Mais au moins avec Excel 2007, il y a un problème avec la définition de Series.Format.Line.ForeColor
. Voir exemple:
Sub Macro3()
Dim oChart As Chart
Dim oSeries As Series
Set oChart = ActiveChart
Set oSeries = oChart.SeriesCollection(2)
oSeries.Format.Line.Weight = 5 'Line.Weigth works ever
oSeries.Format.Line.Visible = msoFalse 'for Line.ForeColor getting to work we have to cheat something
oSeries.Format.Line.Visible = msoTrue
oSeries.Format.Line.ForeColor.RGB = RGB(0, 255, 0) 'now it works
oSeries.MarkerSize = 15
oSeries.MarkerBackgroundColor = RGB(255, 0, 0) 'marker background
oSeries.MarkerForegroundColor = RGB(0, 0, 255) 'marker foreground (lines around)
End Sub
ActiveChart est un graphique à dispersion. Et ceci est testé avec Excel 2007.
Dans Excel 2013, il est facile de distinguer la couleur de trait et la couleur de trait du marqueur, la couleur du trait étant définie à l'aide de la propriété .Border , tandis que les couleurs du marqueur sont définies à l'aide de .MarkerBackgroundColor et. MarkerForegroundColor propriétés.
Ainsi, les éléments suivants vous donneront des marqueurs blancs, avec une bordure rouge et des lignes de connexion noires entre eux:
ActiveChart.SeriesCollection(1).Select
With Selection
.Border.LineStyle = xlContinuous
.Border.Color = RGB(0,0,0)
.MarkerBackgroundColor = RGB(255, 255, 255)
.MarkerForegroundColor = RGB(255, 0, 0)
End With
NB: Si vous utilisez Selection.Format.Line.Weight , notez que ceci s'applique à la fois aux bordures et à l'épaisseur des lignes de connexion
Vous pourriez utiliser
ActiveChart.SeriesCollection (1) .MarkerForegroundColor = -2