colorier secteur d'un graphique

Le
jean-luc Guitard
bonsoir,
Dans ce bout de programme qui colorie dans un graphique les secteurs par ordres du plus grand au plus petit (bleu, vert,
rouge)
transmis par Daniel.C qui fonctionne très bien, sauf dans le cas ou il n'y a qu'une seule valeur elle devrait ce
colorier en bleu
mais elle se colorise en vert , si vous savez modifier la macro merci, car je n'ai pas compris cette macro, je suis
débutant

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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #22986831
Bonjour,

En inversant les cols et les vals cela devrait le faire non..??

Nota:
transmis par Daniel.C qui fonctionne très bien


Voilà déjà une bonne nouvelle pour un début d'année

;o)

Cordialement.

--
LSteph


On 4 jan, 17:36, "jean-luc Guitard"
bonsoir,
Dans ce bout de programme qui colorie dans un graphique les secteurs par ordres du plus grand au plus petit (bleu, vert,
rouge)
transmis par Daniel.C qui fonctionne très bien, sauf dans le cas ou il n'y a qu'une seule valeur elle devrait ce
colorier en bleu
mais elle se colorise en vert , si vous savez modifier la macro merci, ca r je n'ai pas compris cette macro, je suis
débutant...

 With Graphe.Chart.SeriesCollection(1)
                            Var = .Values
                            cols = Array(RG B(0, 241, 0), RGB(232, 0, 0), RGB(0, 204, 255))
                            vals = Array(Ap plication.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
jean-luc Guitard
Le #22986981
Merci LSteph c'est nickel

"LSteph"
Bonjour,

En inversant les cols et les vals cela devrait le faire non..??

Nota:
transmis par Daniel.C qui fonctionne très bien


Voilà déjà une bonne nouvelle pour un début d'année

;o)

Cordialement.

--
LSteph


On 4 jan, 17:36, "jean-luc Guitard"
bonsoir,
Dans ce bout de programme qui colorie dans un graphique les secteurs par ordres du plus grand au plus petit (bleu,
vert,
rouge)
transmis par Daniel.C qui fonctionne très bien, sauf dans le cas ou il n'y a qu'une seule valeur elle devrait ce
colorier en bleu
mais elle se colorise en vert , si vous savez modifier la macro merci, car je n'ai pas compris cette macro, je suis
débutant...

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



DanielCo
Le #22987681
Nota:
transmis par Daniel.C qui fonctionne très bien


Voilà déjà une bonne nouvelle pour un début d'année

;o)

Cordialement.

--
LSteph



Bonjour LSteph.
... mais qui nécessite quelques explications :

With graphe.Chart.SeriesCollection(1)
'Var est une variable matrice où l'on met les valeurs de la série
Var = .Values
'Cols est une variable matrice où l'on met les couleurs, la
première correspondant
'à la plus petite valeur
cols = Array(RGB(0, 232, 0), RGB(241, 0, 204), RGB(0, 0, 255))
'Vals est une variable matrice où l'on met les valeurs dans l'ordre
croissant
vals = Array(Application.Min(Var), Application.Large(Var, 2),
Application.Max(Var))
'on boucle sur les points de la série
For i = 1 To 3
'on cherche la position de la valeur dans la variable vals...
'et on récupère la couleur ayant la même position dans cols
x = Application.Index(cols, Application.Match(Var(i), vals, 0))
'on applique cette couleur au point
.Points(i).Interior.Color = x
Next i
End With
Cordialement.
Daniel
LSteph
Le #22990331
Bonjour Daniel,

... et aussi un petit HS

Bonne Année.

--
LSteph


On 4 jan, 21:29, DanielCo
> Nota:
>> transmis par Daniel.C qui fonctionne très bien
> Voilà déjà une bonne nouvelle pour un début d'année

> ;o)

> Cordialement.

> --
> LSteph

Bonjour LSteph.
... mais qui nécessite quelques explications :

With graphe.Chart.SeriesCollection(1)
    'Var est une variable matrice où l'on met les valeurs de la s érie
    Var = .Values
    'Cols est une variable matrice où l'on met les couleurs, la
première correspondant
    'à la plus petite valeur
    cols = Array(RGB(0, 232, 0), RGB(241, 0, 204), RGB(0, 0, 255))
    'Vals est une variable matrice où l'on met les valeurs dans l'o rdre
croissant
    vals = Array(Application.Min(Var), Application.Large(Var, 2),
Application.Max(Var))
    'on boucle sur les points de la série
    For i = 1 To 3
        'on cherche la position de la valeur dans la variable val s...
        'et on récupère la couleur ayant la même position d ans cols
        x = Application.Index(cols, Application.Match(Var(i), v als, 0))
        'on applique cette couleur au point
        .Points(i).Interior.Color = x
    Next i
End With
Cordialement.
Daniel
news.free.fr
Le #22990641
Bonjour et, également, bonne année.
Daniel


Bonjour Daniel,

... et aussi un petit HS

Bonne Année.

--
LSteph
Publicité
Poster une réponse
Anonyme