4 votes

Excel VBA - Comment définir le style de ligne pour les séries de graphiques ?

J'aimerais que les lignes de tracé d'un graphique soient soit pleines, soit en points circulaires, soit en points carrés en fonction d'un certain critère spécifié par l'utilisateur. Je parviens à définir la couleur de la ligne et le style du marqueur pour le tracé à l'aide d'une macro, mais je ne parviens pas à trouver l'objet qui contient la valeur de la propriété de style de la ligne de tracé. J'ai essayé d'utiliser la fonction d'enregistrement de macro, mais la modification du style de ligne dans les propriétés Windows n'apparaît pas dans le code, et l'exécution de la macro enregistrée n'a aucun effet.

Toute aide est grandement appréciée !

6voto

Tim Williams Points 31438
YourChartSeries.Border.LineStyle = [some value from the XlLineStyle enumeration]

UPDATE : enregistrement dans XL 2010 j'obtiens ceci -

ActiveChart.SeriesCollection(1).Select
With Selection.Format.Line
    .Visible = msoTrue
    .DashStyle = msoLineSysDot
End With
ActiveChart.SeriesCollection(2).Select
With Selection.Format.Line
    .Visible = msoTrue
    .DashStyle = msoLineSysDash
End With

C'est peut-être ce que vous recherchez.

4voto

jaykay Points 41

Créez un graphique avec 255 séries de données, exécutez le code (et effectuez d'autres mises en forme si nécessaire). Enregistrez-le ensuite en tant que modèle.

Sub dd()

Dim wb As Workbook
Set wb = Application.ActiveWorkbook

Dim myChart As Chart
Set myChart = wb.Charts("Chart5")

Dim mySeries As series

For Each mySeries In myChart.SeriesCollection
    mySeries.Format.Line.Weight = 1#
Next

End Sub

1voto

user217558 Points 143

Si vous avez un graphique linéaire, j'ai fini par créer une instruction de commutation parce que je n'arrivais pas à comprendre comment créer un tableau de variables "Nom". Voir liste des types de lignes ici

For j = i To num_lines_to_plot
        count = count + 1
        ActiveChart.SeriesCollection.NewSeries
        With ActiveChart.SeriesCollection(j)
            .Name = _
                "='"**... (you'll need to fill this in)**
            'create gradient
            .Format.Line.ForeColor.RGB = RGB(255, 20 * count, 0)
            'modify linetype
            If count > 4 Then
                line_type = count Mod 4
            Else
                line_type = count
            End If

            Select Case line_type
                Case Is = 1
                    .Format.Line.DashStyle = msoLineSolid
                Case Is = 2
                    .Format.Line.DashStyle = msoLineSquareDot
                Case Is = 3
                    .Format.Line.DashStyle = msoLineDash
                Case Is = 4
                    .Format.Line.DashStyle = msoLineLongDash
                End Select

        End With
    Next

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X