Automatisation mise en forme de graphique

Bonjour le forum,

Je viens vers vous car j'ai un problème de mise en forme de graphique (histogramme emplié) ,

J'aimerais savoir s'il était possible d'automatiser la mise en forme du graphique,

C'est a dire que quand le nom d'une série est "VA" alors la barre dans le graphique sera verte

Si le non est "NVA" alors gris et pour "NVAS" orange

Je joins un fichier exemple pour être plus claire

Bonjour Cognomen,

Voici une proposition, pour le second graphique :

Sub MAJcouleursSeries()

Dim Graph As ChartObject
Dim CollSeries As SeriesCollection
Dim Serie As Series

Set Graph = Sheets("N°1").ChartObjects("Graphique 2")
Set CollSeries = Graph.Chart.SeriesCollection

For Each Serie In CollSeries
     Select Case Serie.Name
        Case "VA": Serie.Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent6
        Case "NVA": Serie.Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent3
        Case "NVAS": Serie.Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent2
        Case Else: Serie.Format.Fill.ForeColor.RGB = RGB(255, 0, 255) '<<< possibilité RGB
    End Select
Next

End Sub

Cdlt,

Bonjour 3GB,

Merci beaucoup, cela fonctionne parfaitement !

Juste une dernière question,

Est-il possible de forcer l'affichage des étiquettes des données sur le nom de série ? Car le faire manuellment et trés long sur plusieurs graphique ....

image

Je t'en prie. Pour l'instant je ne sais pas malheureusement, je l'ai fait à l'enregistreur puis adapté correctement mais je vais regarder pour les étiquettes.

Merci pour l'infromation,

Je n'avais jamais pensé a utiliser l'enregistreur de macro pour des macros qui influent sur les graphiques

Encore merci de ton aide

Toujours y penser quand on ne connait pas. Et après se documenter un peu sur les objets qui rentrent en jeu.

Voici un essai en espérant que c'est ce que tu attends :

Sub MAJcouleursSeries()

Dim Graph As ChartObject
Dim CollSeries As SeriesCollection
Dim Serie As Series

Set Graph = Sheets("N°1").ChartObjects("Graphique 2")
Set CollSeries = Graph.Chart.SeriesCollection

For Each Serie In CollSeries
    With Serie
        .ApplyDataLabels ShowSeriesName:=True, ShowValue:=False '<<<<<<
        Select Case .Name
            Case "VA": .Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent6
            Case "NVA": .Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent3
            Case "NVAS": .Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent2
            Case Else: .Format.Fill.ForeColor.RGB = RGB(255, 0, 255) '<<< possibilité RGB
        End Select
    End With
Next

End Sub

C'est parfaitment cela,

Merci beaucoup de ton aide

Nickel !!

Rechercher des sujets similaires à "automatisation mise forme graphique"