web-dev-qa-db-fra.com

Couleur de ligne Excel VBA/Couleur de ligne Excel

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
7
Bob Smith

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.

15
Axel Richter

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

3
Steve Taylor

Vous pourriez utiliser 

ActiveChart.SeriesCollection (1) .MarkerForegroundColor = -2

0
Pramod Ghag