Bonjour à vous te merci de votre temps et de votre aide.
J'ai un histogramme qui présente le nombre d'équipement par seuil d'importance (Élevé, Fort, Moyen, Faible et N/A).
Le code ci-dessous change les couleurs associées aux légendes selon le seuil.
Ce code fonctionne correctement tant que mon graphique comporte au moins un équipement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Private Sub RecolorierGraphSeuilNb() Dim g As Chart: Set g = Me.GraphSeuilNb.Chart Dim s As Series: Set s = g.SeriesCollection(1) Dim seuil As String Dim couleur As Long Dim le As LegendEntry Dim p As Point 'une des barres du graphique Dim i As Long: For i = 1 To s.Points.Count seuil = s.XValues(i) 'Récupère le texte associé à la légende couleur = FSeuilCouleur.LireCouleur(seuil) 'trouve la couleur correspondante If EST_MODE_DEBUG Then g.Parent.Activate End If Set p = s.Points(i) p.Format.Fill.ForeColor.RGB = couleur Set p = Nothing Set le = Nothing Next i Set s = Nothing Set g = Nothing End Sub
Or, l'utilisateur peut faire des choix de filtre qui font qu'aucun équipement ne correspond et donc le résultat ne présente aucune barre.
Et après cela si on fait à nouveau un filtre qui donne des valeurs, mon code qui fonctionnait parfaitement et pouvait colorier les barres individuellement, se met à mettre la même couleur pour toutes les barres.
On dirait que Excel n'est plus capable de traiter les barres individuellement.
Quelqu'un aurait-il une idée sur quoi faire pour que cela ne se produise pas ?
A+
P.S. :
Si je colorie "à la main" (sans utiliser de code VBA) les barres les couleurs restent même après plusieurs cycles d'absence/réaparition des données.
J'ai mis du code car mon client aime à changer les couleurs et que j'ai plusieurs graphiques concernés donc j'aimerai éviter d'avoir à tous les modifier manuellement à chaque fois.
A+
Partager