Graphe barre - Couleur conditionnelle

  • Initiateur de la discussion Initiateur de la discussion Paladin
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Paladin

XLDnaute Junior
Bonjour tout le monde,

Après moults recherches, j'ai vu en téléchargement le principe pour changer la couleur d'une barre en fonction de la valeur.
Petit problème : mes sources n'ont pas le même format que celle du fichier exemple et je n'arrive pas à trouver une astuce (en gros (cf fichier joint), on peut rajouter des phases (utilisation fonction DECALER non implémentée dans mon fichier)).
Je voudrais que la couleur de mes barres passe du vert au rouge (vert-jaune-orange-rouge) en fonction du nombre (ou du pourcentage plutôt) par phase.
Si un dieu des graphiques :whistle: (ou un mortel peu importe 😛 ) je lui en serai très reconnaissant s'il pouvait m'aider.
Merci [file name=Graphecouleur.zip size=2613]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Graphecouleur.zip[/file]
 

Pièces jointes

Bonjour,

en vba, tu peux tester la sub suivante:
Code:
Sub Couleur()
Dim i As Integer
Dim LeCas As Byte
Dim theChart As Chart
    'on 'éteint' l'affichage pour éviter les clignotement
    Application.ScreenUpdating = False
    ' initialisation de la variable theChart par le set sur un objet graphique nommé 'Graphique 1'
    'Attention cela ne marchera que sur ce graphique....
    Set theChart = ActiveSheet.ChartObjects('Graphique 1').Chart
    i = 2
    'On parcoure la colonne 1
    While ActiveSheet.Cells(i, 1) <> ''
        LeCas = 3 'rouge
        ' on test sur la ligne en cours, colonne 2 c'estdc des pourcentages
        If ActiveSheet.Cells(i, 2) < 0.75 Then LeCas = 46 'orange
        If ActiveSheet.Cells(i, 2) < 0.5 Then LeCas = 6 'jaune
        If ActiveSheet.Cells(i, 2) < 0.25 Then LeCas = 4 'vert
    theChart.SeriesCollection(1).Points(i - 1).Interior.ColorIndex = LeCas
    i = i + 1 'on change de ligne
    Wend
    ' on détruit la variable objet
    Set theChart = Nothing
    'on remet à jour l'affichage
    Application.ScreenUpdating = True
End Sub
avec au niveau de ta feuille, l'appel suivant:
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'on ne test que la colonne 1 pour éviter des calculs trop fréquent
If Target.Column = 1 Then
    Call Macro1
End If
End Sub

J'espère que cela peux t'aider

A+
DSA
Code:
Code:
 
ReBonjour,

juste une erreur sur le code précédent:
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'on ne test que la colonne 1 pour éviter des calculs trop fréquent
If Target.Column = 1 Then
    Call Couleur
End If
End Sub

Désolé 😉

A+

Didier
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
2 K
  • Question Question
Microsoft 365 suivi budgetaire
Réponses
11
Affichages
3 K
Réponses
62
Affichages
11 K
Retour