Changement de couleur de formes en fonction de donnés.

Rall

XLDnaute Nouveau
Bonjour à tous,

Je cherche à modifier la couleur de fond d'un objet en fonction de données placés dans une cellule.


Par exemple la cellule B4 est inférieur à 50 la formelibre2 doit être de la couleur orange.

Je cherche à obtenir trois couleurs différentes selon les données, je ne sais pas encore comment le changement serra déclenché :

- Soit dés qu'il y'a changement de contenue de cellule il y'a mise à jour de la couleur.
- Soit il est nécessaire d'appuyer sur un bouton de mise à jour... A voir selon les possibilités.

Merci d'avance de votre aide, cela donnerais énormément de clarté et de visibilité à mon fichier (il pourra être utilisé et compris par le plus grand nombre).

Romain.
 

DoubleZero

XLDnaute Barbatruc
Re : Changement de couleur de formes en fonction de donnés.

Bonjour, le Fil, le Forum,

Peut-être ainsi :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [b4] < 50 Then
ActiveSheet.Shapes("Sourire 1").Fill.ForeColor.RGB = RGB(255, 192, 0)
Else
ActiveSheet.Shapes("Sourire 1").Fill.ForeColor.RGB = RGB(0, 256, 0)
End If
End Sub
A bientôt :)
 

Pièces jointes

  • 00 - Rall - Couleur objet conditionnelle.xls
    38.5 KB · Affichages: 90

JNP

XLDnaute Barbatruc
Re : Changement de couleur de formes en fonction de donnés.

Bonjour le fil :),
Une MFC en icones, tu n'aimes pas :rolleyes: ?
Bonne suite :cool:
Ajout : bing, je me suis cogné à l'âne :p... Gros bisous 00 (et félicitations pour les progrès ;)) :)
 

Pièces jointes

  • Feux tricolores.xlsm
    12.6 KB · Affichages: 62
Dernière édition:

Rall

XLDnaute Nouveau
Re : Changement de couleur de formes en fonction de donnés.

Le fichier Feux est pas mal mais ne ne capte pas bien comment fonctionne le changement de couleur.

Je joint un fichier pour illustrer.


Edit: Le fichier sourire est pas mal du tout je vais voir si je peut m'en sortir avec, pour les feux l'objet est simpa mais pas adapté (comment il est fait d'ailleurs? ^^)

Merci de vos réponses rapide!
 

Pièces jointes

  • Couleur.xlsx
    12.3 KB · Affichages: 58
  • Couleur.xlsx
    12.3 KB · Affichages: 64
  • Couleur.xlsx
    12.3 KB · Affichages: 63
Dernière édition:

Rall

XLDnaute Nouveau
Re : Changement de couleur de formes en fonction de donnés.

On peut mettre des valeurs sur les objets, pas obligatoire mais option simpa.

A et double zéro le début de ta fonction est impératif ou modifiable?
"Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
 

JNP

XLDnaute Barbatruc
Re : Changement de couleur de formes en fonction de donnés.

Re :),
Le fichier "Feux" est une simple utilisation des MFC natives de 2007 et 2010 :p..
Sinon, en repartant du code d'00, vois si cela te convient :rolleyes:...
Bonne suite :cool:
 

Pièces jointes

  • Couleur.xlsm
    20.8 KB · Affichages: 73
  • Couleur.xlsm
    20.8 KB · Affichages: 69
  • Couleur.xlsm
    20.8 KB · Affichages: 64

JNP

XLDnaute Barbatruc
Re : Changement de couleur de formes en fonction de donnés.

Re :),
pas aussi sofistiqué que JNP mais en prenant le principe de 00
Je l'ai bien connue, Sophie Stickée, une gentil fille :p...
A noter que j'ai fait une légère erreur, c'est une procédure
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
et non
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
qu'il faut utiliser :eek:...
Le problème, cher voisin ;), c'est que If...Else...End If ne prends que 2 cas de figures :eek:...
Dans une MFC, ça fonctionnerait vu qu'il y aurait le cas "neutre", mais dans une forme, ça ne parait pas être le cas :eek:...
D'où l'utilisation d'un ElseIf pour le 3ème cas, qui pourrait être remplacé par un Select Case avec les 3 cas de figure :p :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MaCouleur As Long
If Intersect(Target, Range("K10:M10")) Is Nothing Or Target.Count > 1 Then Exit Sub
Select Case Target
Case 1 To 25
MaCouleur = 5066944
Case 26 To 50
MaCouleur = 4626167
Case Is > 50
MaCouleur = 5880731
Case Else
MaCouleur = 0
End Select
Select Case Target.Address
Case "$K$10"
ActiveSheet.Shapes("Forme libre 5").Fill.ForeColor.RGB = MaCouleur
Case "$L$10"
ActiveSheet.Shapes("Forme libre 6").Fill.ForeColor.RGB = MaCouleur
Case "$M$10"
ActiveSheet.Shapes("Forme libre 7").Fill.ForeColor.RGB = MaCouleur
End Select
End Sub
Après, le fait de calculer la forme en fonction de la cellule renseignée peut permettre de simplifier s'il y a beaucoup de formes à modifier :rolleyes:...
Bonne suite :cool:
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Changement de couleur de formes en fonction de donnés.

Bonjour,

Avec fonction perso (modifs + faciles pour utilisateur)

=colorieimage(A6;SI(K10>50;5880731;SI(K10>25;4626167;255)))

La valeur peut être le résultat d'une formule et non pas une valeur saisie.


JB
 

Pièces jointes

  • fonctionColoriage3.xls
    65.5 KB · Affichages: 71
  • ColoriageImage4.xls
    29.5 KB · Affichages: 78
  • FonctionColoriage3B.xls
    51.5 KB · Affichages: 78
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 797
Messages
2 092 212
Membres
105 286
dernier inscrit
SoCa