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

colorier dessin en fonction de la valeur de cellules

9 réponses
Avatar
frederic89
Bonjour,
Je suis nouveau sur ce forum et espère me trouver dans la bonne rubrique.
J'ai vu que le sujet suivant a déjà été traité en 2010 mais malgré les information de n'y arrive pas.
Voici mon problème
J'ai un feuille nommé "CARTE"
Dans cette feuille j'ai 3 dessins nommés "DEP01" "DEP02" "DEPT03"
J'ai une feuille "DONNEES"
Dans cette feuille
En colonne A : A1 = Code departement, A2 = "DEPT01" , A3 = DEPT02 et A4 = DEPT03
En colonne B : B1 = Chiffre d'affaire, B2 = 100, B3=200, et B4=300

Les valeurs B2, B3, B4 sont des valeurs variables

Mon besoin est le suivant : Les cartes dont le CA est <= 150 doivent etre rouge, si 150>CA>=250 alors les cartes doivent être bleue, si le CA>250 alors la couleur doit etre verte.

Bien entendu si cela devait s'arrêter a trois cartes donc 3 département cela serait super mais j'ai toute la France a faire. mais lorsque j'aurai compris pour 3 cartes je pense pouvoir m'en sortir.
Merci a tous et bonne soirée....@+

9 réponses

Avatar
isabelle
bonjour,

Sub Macro1()
Dim Shp As Shape, nm As String, vl As Double
For Each Shp In Sheets("CARTE").Shapes
nm = Shp.Name
vl = Application.Index(Sheets("DONNEES").Range("B:B"),
Application.Match(nm, Sheets("DONNEES").Range("A:A"), 0))
Select Case vl
Case Is <= 150: Shp.OLEFormat.Object.Interior.Color = RGB(255, 0, 0)
Case 151 To 250: Shp.OLEFormat.Object.Interior.Color = RGB(0, 255, 0)
Case Is > 250: Shp.OLEFormat.Object.Interior.Color = RGB(0, 0, 255)
End Select
Next
End Sub

isabelle

Le 2014-06-19 11:31, frederic89 a écrit :
Bonjour,
Je suis nouveau sur ce forum et espère me trouver dans la bonne rubrique.
J'ai vu que le sujet suivant a déjà été traité en 2010 mais malgré les
information de n'y arrive pas.
Voici mon problème
J'ai un feuille nommé "CARTE"
Dans cette feuille j'ai 3 dessins nommés "DEP01" "DEP02" "DEPT03"
J'ai une feuille "DONNEES"
Dans cette feuille
En colonne A : A1 = Code departement, A2 = "DEPT01" , A3 = DEPT02 et A4 > DEPT03
En colonne B : B1 = Chiffre d'affaire, B2 = 100, B3 0, et B400

Les valeurs B2, B3, B4 sont des valeurs variables

Mon besoin est le suivant : Les cartes dont le CA est <= 150 doivent etre rouge,
si 150>CA>%0 alors les cartes doivent être bleue, si le CA>250 alors la
couleur doit etre verte.

Bien entendu si cela devait s'arrêter a trois cartes donc 3 département cela
serait super mais j'ai toute la France a faire. mais lorsque j'aurai compris
pour 3 cartes je pense pouvoir m'en sortir.
Merci a tous et bonne soirée....@+

Avatar
MichD
Bonjour,

Un fichier exemple ici :


http://cjoint.com/?DFtxeLhuxnW
Avatar
frederic89
Le jeudi 19 Juin 2014 à 23:02 par isabelle :
bonjour,

Sub Macro1()
Dim Shp As Shape, nm As String, vl As Double
For Each Shp In Sheets("CARTE").Shapes
nm = Shp.Name
vl = Application.Index(Sheets("DONNEES").Range("B:B"),
Application.Match(nm, Sheets("DONNEES").Range("A:A"), 0))
Select Case vl
Case Is <= 150: Shp.OLEFormat.Object.Interior.Color = RGB(255, 0, 0)
Case 151 To 250: Shp.OLEFormat.Object.Interior.Color = RGB(0, 255, 0)
Case Is > 250: Shp.OLEFormat.Object.Interior.Color = RGB(0, 0, 255)
End Select
Next
End Sub

isabelle

Le 2014-06-19 11:31, frederic89 a écrit :
Bonjour,
Je suis nouveau sur ce forum et espère me trouver dans la bonne
rubrique.
J'ai vu que le sujet suivant a déjà été
traité en 2010 mais malgré les
information de n'y arrive pas.
Voici mon problème
J'ai un feuille nommé "CARTE"
Dans cette feuille j'ai 3 dessins nommés "DEP01"
"DEP02" "DEPT03"
J'ai une feuille "DONNEES"
Dans cette feuille
En colonne A : A1 = Code departement, A2 = "DEPT01" , A3 = DEPT02 et
A4 > DEPT03
En colonne B : B1 = Chiffre d'affaire, B2 = 100, B3 0, et B400

Les valeurs B2, B3, B4 sont des valeurs variables

Mon besoin est le suivant : Les cartes dont le CA est <= 150 doivent etre
rouge,
si 150>CA>%0 alors les cartes doivent être bleue, si le CA>250
alors la
couleur doit etre verte.

Bien entendu si cela devait s'arrêter a trois cartes donc 3
département cela
serait super mais j'ai toute la France a faire. mais lorsque j'aurai compris
pour 3 cartes je pense pouvoir m'en sortir.
Merci a tous et bonne soirée....@+




Re bonjour,
Au fait, je ne sais pas si c'est important mais ma version de EXCEl est la 2013.
salutations,


frédéric,
Avatar
frederic89
Le jeudi 19 Juin 2014 à 23:02 par isabelle :
bonjour,

Sub Macro1()
Dim Shp As Shape, nm As String, vl As Double
For Each Shp In Sheets("CARTE").Shapes
nm = Shp.Name
vl = Application.Index(Sheets("DONNEES").Range("B:B"),
Application.Match(nm, Sheets("DONNEES").Range("A:A"), 0))
Select Case vl
Case Is <= 150: Shp.OLEFormat.Object.Interior.Color = RGB(255, 0, 0)
Case 151 To 250: Shp.OLEFormat.Object.Interior.Color = RGB(0, 255, 0)
Case Is > 250: Shp.OLEFormat.Object.Interior.Color = RGB(0, 0, 255)
End Select
Next
End Sub

isabelle

Le 2014-06-19 11:31, frederic89 a écrit :
Bonjour,
Je suis nouveau sur ce forum et espère me trouver dans la bonne
rubrique.
J'ai vu que le sujet suivant a déjà été
traité en 2010 mais malgré les
information de n'y arrive pas.
Voici mon problème
J'ai un feuille nommé "CARTE"
Dans cette feuille j'ai 3 dessins nommés "DEP01"
"DEP02" "DEPT03"
J'ai une feuille "DONNEES"
Dans cette feuille
En colonne A : A1 = Code departement, A2 = "DEPT01" , A3 = DEPT02 et
A4 > DEPT03
En colonne B : B1 = Chiffre d'affaire, B2 = 100, B3 0, et B400

Les valeurs B2, B3, B4 sont des valeurs variables

Mon besoin est le suivant : Les cartes dont le CA est <= 150 doivent etre
rouge,
si 150>CA>%0 alors les cartes doivent être bleue, si le CA>250
alors la
couleur doit etre verte.

Bien entendu si cela devait s'arrêter a trois cartes donc 3
département cela
serait super mais j'ai toute la France a faire. mais lorsque j'aurai compris
pour 3 cartes je pense pouvoir m'en sortir.
Merci a tous et bonne soirée....@+




Oups.... je viens de voir ma bétise, la macro semble fonctionner. Je continue a regarder et surtout a la comprendre.... c'est pas jouer!!! Encore merci
Salutations,
Avatar
frederic89
Le jeudi 19 Juin 2014 à 23:02 par isabelle :
bonjour,

Sub Macro1()
Dim Shp As Shape, nm As String, vl As Double
For Each Shp In Sheets("CARTE").Shapes
nm = Shp.Name
vl = Application.Index(Sheets("DONNEES").Range("B:B"),
Application.Match(nm, Sheets("DONNEES").Range("A:A"), 0))
Select Case vl
Case Is <= 150: Shp.OLEFormat.Object.Interior.Color = RGB(255, 0, 0)
Case 151 To 250: Shp.OLEFormat.Object.Interior.Color = RGB(0, 255, 0)
Case Is > 250: Shp.OLEFormat.Object.Interior.Color = RGB(0, 0, 255)
End Select
Next
End Sub

isabelle

Le 2014-06-19 11:31, frederic89 a écrit :
Bonjour,
Je suis nouveau sur ce forum et espère me trouver dans la bonne
rubrique.
J'ai vu que le sujet suivant a déjà été
traité en 2010 mais malgré les
information de n'y arrive pas.
Voici mon problème
J'ai un feuille nommé "CARTE"
Dans cette feuille j'ai 3 dessins nommés "DEP01"
"DEP02" "DEPT03"
J'ai une feuille "DONNEES"
Dans cette feuille
En colonne A : A1 = Code departement, A2 = "DEPT01" , A3 = DEPT02 et
A4 > DEPT03
En colonne B : B1 = Chiffre d'affaire, B2 = 100, B3 0, et B400

Les valeurs B2, B3, B4 sont des valeurs variables

Mon besoin est le suivant : Les cartes dont le CA est <= 150 doivent etre
rouge,
si 150>CA>%0 alors les cartes doivent être bleue, si le CA>250
alors la
couleur doit etre verte.

Bien entendu si cela devait s'arrêter a trois cartes donc 3
département cela
serait super mais j'ai toute la France a faire. mais lorsque j'aurai compris
pour 3 cartes je pense pouvoir m'en sortir.
Merci a tous et bonne soirée....@+




Re re re bonjour,
Super... j'ai utilisé votre module pour ma carte de france et ça fonctionne tres bien.
Juste une petite question.
Dans ma carte (ensemble des dessin des département) de france j'ai des départements pour lesquels je n'ai pas de valeur dans la feuille VALEURS et dans ce cas ça plante. comment puis je faire.
Merci d'avance,
salutation
Avatar
isabelle
bonjour,

j'ai ajouté une condition pour vérifier la fonction Match

Sub Macro1()
Dim Shp As Shape, nm As String, vl

For Each Shp In Sheets("CARTE").Shapes
nm = Shp.Name

If Not IsError(Application.Match(nm, Sheets("DONNEES").Range("A:A"), 0)) Then
vl = Application.Index(Sheets("DONNEES").Range("B:B"),
Application.Match(nm, Sheets("DONNEES").Range("A:A"), 0))

Select Case vl
Case Is <= 150: Shp.OLEFormat.Object.Interior.Color = RGB(255, 0, 0)
Case 151 To 250: Shp.OLEFormat.Object.Interior.Color = RGB(0, 255, 0)
Case Is > 250: Shp.OLEFormat.Object.Interior.Color = RGB(0, 0, 255)
End Select

Else
Err.Clear
End If

Next
End Sub

isabelle

Le 2014-06-20 05:13, frederic89 a écrit :

Re re re bonjour,
Super... j'ai utilisé votre module pour ma carte de france et ça fonctionne tres
bien.
Juste une petite question.
Dans ma carte (ensemble des dessin des département) de france j'ai des
départements pour lesquels je n'ai pas de valeur dans la feuille VALEURS et dans
ce cas ça plante. comment puis je faire.
Merci d'avance,
salutation

Avatar
isabelle
il faudrait modifier,

Else
Err.Clear
End If

par

Else
Err.Clear
Shp.OLEFormat.Object.Interior.Color = xlNone
End If

isabelle

Le 2014-06-20 09:30, isabelle a écrit :
bonjour,

j'ai ajouté une condition pour vérifier la fonction Match

Sub Macro1()
Dim Shp As Shape, nm As String, vl

For Each Shp In Sheets("CARTE").Shapes
nm = Shp.Name

If Not IsError(Application.Match(nm, Sheets("DONNEES").Range("A:A"), 0))
Then
vl = Application.Index(Sheets("DONNEES").Range("B:B"),
Application.Match(nm, Sheets("DONNEES").Range("A:A"), 0))

Select Case vl
Case Is <= 150: Shp.OLEFormat.Object.Interior.Color = RGB(255, 0, 0)
Case 151 To 250: Shp.OLEFormat.Object.Interior.Color = RGB(0, 255, 0)
Case Is > 250: Shp.OLEFormat.Object.Interior.Color = RGB(0, 0, 255)
End Select

Else
Err.Clear
End If

Next
End Sub

isabelle

Le 2014-06-20 05:13, frederic89 a écrit :

Re re re bonjour,
Super... j'ai utilisé votre module pour ma carte de france et ça fonctionne tres
bien.
Juste une petite question.
Dans ma carte (ensemble des dessin des département) de france j'ai des
départements pour lesquels je n'ai pas de valeur dans la feuille VALEURS et dans
ce cas ça plante. comment puis je faire.
Merci d'avance,
salutation

Avatar
isabelle
ou bien par:

Else
Err.Clear
With Shp.OLEFormat.Object.Interior
.Color = xlNone
.Pattern = xlNone
.TintAndShade = 0
End With
End If

pour mettre la forme sans couleur et transparente.

isabelle
Avatar
frederic89
Le vendredi 20 Juin 2014 à 18:46 par isabelle :
ou bien par:

Else
Err.Clear
With Shp.OLEFormat.Object.Interior
.Color = xlNone
.Pattern = xlNone
.TintAndShade = 0
End With
End If

pour mettre la forme sans couleur et transparente.

isabelle


Merci Isabelle, je teste de suite.
Salutations