Définir les couleurs des barres en fonction de la légende

jacky128

XLDnaute Nouveau
Bonjour,

Je suis débutant en langage VBA et je voudrais modifier les couleurs de mon graphique selon la légende de chaque barre.

Par exemple, pour toutes les légendes "Texte 1", je veux que la couleur de la barre correspondante soit bleue
"Texte 2" --> couleur rouge
"Texte 3" --> couleur verte
etc.

En PJ le fichier que je voudrai modifier.

Merci beaucoup pour votre aide !
 

Pièces jointes

  • couleurs graphique.xlsx
    12.1 KB · Affichages: 41

titiborregan5

XLDnaute Accro
Re : Définir les couleurs des barres en fonction de la légende

Bonjour Jacky et bienvenue, bonjour au forum

Essaie avec le code suivant en coloriant les libellés présents dans la colonne G:

Code:
Sub t()

ActiveSheet.ChartObjects(1).Activate
ActiveChart.SeriesCollection(1).Select
nb_points = ActiveChart.SeriesCollection(1).Points.Count
For i = 1 To nb_points
ActiveChart.SeriesCollection(1).Points(i).Select
Selection.Interior.ColorIndex = Range("g" & i + 1).Interior.ColorIndex

Next
End Sub
 

Dranreb

XLDnaute Barbatruc
Re : Définir les couleurs des barres en fonction de la légende

Bonsoir.
Même algorithme, écriture un peu différente sans Select, et Color au lieu de ColorIndex.
VB:
Sub u()
Dim Sér As Series, PlgX As Range, I As Long
Set Sér = ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
Set PlgX = Application.Range(Split(Sér.Formula, ",")(1))
For I = 1 To Sér.Points.Count
   Sér.Points(I).Interior.Color = PlgX.Rows(I).Interior.Color
   Next I
End Sub
 

jacky128

XLDnaute Nouveau
Re : Définir les couleurs des barres en fonction de la légende

Merci beaucoup pour ces deux réponses, elles fonctionnent toutes les deux !

Cependant maintenant, si je veux filtrer certaines données du tableau pour n'en afficher que certaines dans le diagramme, les couleurs ne s'adaptent plus !!

Par exemple si je masque H4, la barre correspondant à H5 apparaît en rouge et non en vert ... (cf. fichier en pj)

Pouvez-vous m'aidez avec ce défaut s'il vous plait ?
 

Pièces jointes

  • couleurs%20graphique(1).xlsm
    20 KB · Affichages: 34

Dranreb

XLDnaute Barbatruc
Re : Définir les couleurs des barres en fonction de la légende

Bonjoue.
VB:
Sub Macro2()
Dim Sér As Series, PlgX As Range, Zon As Range, Cel As Range, I As Long
Set Sér = ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
Set PlgX = Application.Range(Split(Sér.Formula, ",")(1))
For Each Zon In PlgX.SpecialCells(xlCellTypeVisible)
   For Each Cel In Zon
      I = I + 1: Sér.Points(I).Interior.Color = Cel.Interior.Color
      Next Cel, Zon
End Sub
 

Discussions similaires

Réponses
1
Affichages
139
Réponses
0
Affichages
83

Statistiques des forums

Discussions
311 707
Messages
2 081 746
Membres
101 812
dernier inscrit
trufu