Macro couleur graph histogramme empilé

Bonjour à tous,

Je souhaites réaliser une macro pour changer automatiquement les couleurs de mon graphique histogramme empilé, en sachant que ce graphique proviens d'un TCD. Il s'agit d'un classeur où un utilisateur entre ses données et tout est traité sous forme de graphique. Quand je modifie manuellement les couleurs puis vide les données avant d'enregistrer, à la réouverture l'action sur les couleurs n'est pas conservée. J'ai alors enregistré les actions de changement via l'enregistrement de macro, mais quand je réutilise le code, il m'indique erreur sur la ligne -> With Selection.Format.Fill.

Pour info j'ai 4 champs de légende qui sont fixes ("acceptable" en vert, "a contrôler" en jaune, "critique" en orange et "inacceptable" en rouge )

Sub Couleur()

'

' Macro1 Macro

'

'

Sheets("Maîtrise par unité de travail").Select

ActiveSheet.ChartObjects("Graphique 3").Activate

ActiveChart.Legend.Select

ActiveChart.Legend.LegendEntries(1).Select

With Selection.Format.Fill

.Visible = msoTrue

.ForeColor.RGB = RGB(255, 0, 0)

.Transparency = 0

.Solid

End With

ActiveChart.Legend.LegendEntries(2).Select

With Selection.Format.Fill

.Visible = msoTrue

.ForeColor.RGB = RGB(255, 102, 0)

.Transparency = 0

.Solid

End With

ActiveChart.Legend.LegendEntries(3).Select

With Selection.Format.Fill

.Visible = msoTrue

.ForeColor.RGB = RGB(255, 255, 0)

.Transparency = 0

.Solid

End With

ActiveChart.Legend.LegendEntries(4).Select

With Selection.Format.Fill

.Visible = msoTrue

.ForeColor.RGB = RGB(0, 204, 0)

.Transparency = 0

.Solid

End With

ActiveChart.ChartArea.Select

Sheets("DU").Select

ActiveWindow.SmallScroll Down:=-75

End Sub

Merci d'avance.

Problème résolu avec ce code, par contre comment faire en sorte que l'on ne voit pas excel faire les modif ? Merci

Sheets("Maîtrise par unité de travail").Select

ActiveSheet.ChartObjects("Graphique 3").Activate

ActiveChart.SeriesCollection("Inacceptable").Select

With Selection.Format.Fill

.Visible = msoTrue

.ForeColor.RGB = RGB(255, 0, 0)

.Solid

End With

ActiveChart.SeriesCollection("Critique").Select

With Selection.Format.Fill

.Visible = msoTrue

.ForeColor.RGB = RGB(255, 102, 0)

.Solid

End With

ActiveChart.SeriesCollection("A contrôler").Select

With Selection.Format.Fill

.Visible = msoTrue

.ForeColor.RGB = RGB(255, 255, 0)

.Solid

End With

ActiveChart.SeriesCollection("Acceptable").Select

With Selection.Format.Fill

.Visible = msoTrue

.ForeColor.RGB = RGB(0, 204, 0)

.Solid

End With

Bonjour

en tout début de ta macro

Application.ScreenUpdating = False

Cordialement

Merci beaucoup. Bonne soirée

Bonjour,

Je débute en VBA et ce sujet m'a déjà bien aidé mais il y a encore une petite chose qui ne marche pas.

J'aimerais faire un deux histogramme empilés (sur le même graphique) dont les couleurs se mettent automatiquement selon la légende.

Pour cela j'ai un tableau avec une partie représentant des temps observés pour une machine et une autre des temps pour un opérateur. Chaque ligne de temps est associée à une ligne qui classe ce temps selon trois catégorie "VA", NVA" et "Pertes". En gros ça donne:

Ligne 1: classement VA/NVA/Pertes pour la machine

Ligne 2: Temps machine

Ligne 3: classement VA/NVA/Pertes Opérateur

Ligne 4: Temps opérateur

Pour l'instant je n'ai fait que histogramme de l'opérateur (je n'ai pas trouvé comment en superposer 2 sur un même graphique...). J'aimerais que Les parties VA soit vertes, NVA jaunes et Pertes rouges. En reprenant le code précédent et en l'adaptant j'ai réussi à appliquer les bonnes couleurs seulement sur le premier segment VA, le premier segment NVA et le premier segment Pertes. Est ce que quelqu'un saurait comment faire pour que cela s'applique à mon histogramme en entier?

Ci dessous mon code:

Sub Couleur()
With ActiveChart

   If ActiveChart Is Nothing Then
    MsgBox "Selectionnez d'abord le graphique du simogramme"
    Exit Sub
    End If

ActiveChart.SeriesCollection("Pertes").Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
.Transparency = 0.5
.Solid
End With

ActiveChart.SeriesCollection("NVA").Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 160, 0)
.Transparency = 0.2
.Solid
End With
ActiveChart.SeriesCollection("VA").Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(50, 204, 0)
.Transparency = 0.3
.Solid
End With

End With
End Sub

Merci d'avance

Rechercher des sujets similaires à "macro couleur graph histogramme empile"