Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Graphisme, etiquette de données

3 réponses
Avatar
jean-luc Guitard
Bonjour,
Ce petit bout de programme transmis par un bénévole sur ce forum permet de coloriser un graphique secteur, avec des
couleurs (Bleu, rouge, verte) en fonction des valeurs croissantes d'une base de données, je souhaiterai pouvoir mettre
en évidence en rouge l'étiquette de la plus grande valeur, mais sa dépasse mon peu de connaissance
si quelqu'un peut me venir en aide, merci

With Graphe.Chart.SeriesCollection(1)
Var = .Values
cols = Array(RGB(0, 241, 0), RGB(232, 0, 0), RGB(0, 204, 255))
vals = Array(Application.Min(Var), Application.Large(Var, 2), Application.Max(Var))
For a = 1 To 3
X = Application.Index(cols, Application.Match(Var(a), vals, 0))
.Points(a).Interior.Color = X
Next a
End With

3 réponses

Avatar
DanielCo
Bonjour.
Dans l'exemple suivant, l'étiquette a le fondrouge et une police de
taille 14 :

With Graphe.Chart.SeriesCollection(1)
Var = .Values
cols = Array(RGB(0, 241, 0), RGB(232, 0, 0), RGB(0,
204, 255))
vals = Array(Application.Min(Var),
Application.Large(Var, 2), Application.Max(Var))
For a = 1 To 3
X = Application.Index(cols,
Application.Match(Var(a), vals, 0))
.Points(a).Interior.Color = X
If Application.Match(Var(a), vals, 0) = 3
Then
.ApplyDataLabels
With
.Points(a).DataLabel.Format.TextFrame2.TextRange.Font
.Size = 14 'taille de la police

End With
With .Points(a).DataLabel
.Interior.ColorIndex = 3
End With
End If
Next a
End With

Cordialement.
Daniel


Bonjour,
Ce petit bout de programme transmis par un bénévole sur ce forum permet de
coloriser un graphique secteur, avec des couleurs (Bleu, rouge, verte) en
fonction des valeurs croissantes d'une base de données, je souhaiterai
pouvoir mettre en évidence en rouge l'étiquette de la plus grande valeur,
mais sa dépasse mon peu de connaissance
si quelqu'un peut me venir en aide, merci

With Graphe.Chart.SeriesCollection(1)
Var = .Values
cols = Array(RGB(0, 241, 0), RGB(232, 0, 0), RGB(0,
204, 255))
vals = Array(Application.Min(Var),
Application.Large(Var, 2), Application.Max(Var))
For a = 1 To 3
X = Application.Index(cols,
Application.Match(Var(a), vals, 0))
.Points(a).Interior.Color = X
Next a
End With
Avatar
jean-luc Guitard
Bonjour,
Merci encore une fois à DanielCo
J'ai essayé de mettre le texte de l'étiquette de la plus grande valeur en rouge, sans mettre le fond rouge en rajoutant
la ligne
.Color = 3
et supprimer la ligne .ApplyDataLabels qui me changée l'étiquette qui est en % sous la forme " Level1 45%"
ça ne fonctionne pas l'étiquette de données reste en noir

With graphe.Chart.SeriesCollection(1)
Var = .Values
cols = Array(RGB(0, 241, 0), RGB(232, 0, 0), RGB(0, 204, 255))
Vals = Array(Application.Min(Var), Application.Large(Var, 2), Application.Max(Var))
For a = 1 To 3
X = Application.Index(cols, Application.Match(Var(a), Vals, 0))
.Points(a).Interior.Color = X
If Application.Match(Var(a), Vals, 0) = 3 Then
''.ApplyDataLabels
With .Points(a).DataLabel.Format.TextFrame2.TextRange.Font
.Size = 14 'taille de la police
.Color = 3
End With
End If
Next a
End With
Cordialement.


Jean-Luc
Avatar
jean-luc Guitard
J'ai trouvé il suffit de mettre
.Fill.ForeColor.RGB = RGB(255, 0, 0) au lieu de .Color = 3
toujours des pb de syntaxe...
bonne journée

"jean-luc Guitard" a écrit dans le message de groupe de discussion :
4d283e78$0$7702$
Bonjour,
Merci encore une fois à DanielCo
J'ai essayé de mettre le texte de l'étiquette de la plus grande valeur en rouge, sans mettre le fond rouge en
rajoutant la ligne
.Color = 3
et supprimer la ligne .ApplyDataLabels qui me changée l'étiquette qui est en % sous la forme " Level1 45%"
ça ne fonctionne pas l'étiquette de données reste en noir

With graphe.Chart.SeriesCollection(1)
Var = .Values
cols = Array(RGB(0, 241, 0), RGB(232, 0, 0), RGB(0, 204, 255))
Vals = Array(Application.Min(Var), Application.Large(Var, 2), Application.Max(Var))
For a = 1 To 3
X = Application.Index(cols, Application.Match(Var(a), Vals, 0))
.Points(a).Interior.Color = X
If Application.Match(Var(a), Vals, 0) = 3 Then
''.ApplyDataLabels
With .Points(a).DataLabel.Format.TextFrame2.TextRange.Font
.Size = 14 'taille de la police
.Color = 3
End With
End If
Next a
End With
Cordialement.


Jean-Luc