Couleur d'une forme en fonction de la valeur d'une cellule

petipouf

XLDnaute Nouveau
Bonjour à tous,
Je souhaite modifier la couleur d'une forme en fonction d'une condition.
Exemple : un disque se colore en rouge si la cellule A1 < 100 et qui se colore en vert si la cellule A1>= 100.
Je n'ai aucune connaissance en macro.
J'ai pu trouver un code sur internet qui réaliserait une fonction analogue:
"
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("B3").Value = 0 Then
ActiveSheet.Shapes(1).Fill.ForeColor.SchemeColor = 11
ElseIf Range("B3").Value = 5 Then
ActiveSheet.Shapes(1).Fill.ForeColor.SchemeColor = 10
End If
End Sub
"
mais je ne sais pas quoi en faire
Pourriez-vous m'aider svp :) :) :) :) :) :) :)
 

Joël GARBE

XLDnaute Nouveau
Bonjour,

Je mettrais plutôt le code dans l'événement "Change" plutôt que SelectionChange, avec ce code à insérer dans le module privé de la feuille concernée en modifiant au besoin les paramètre RGB... :

Private Sub Worksheet_Change(ByVal Target As Range)
With ActiveSheet.Shapes(1)
.Select
Select Case Range("A1")
Case Is < 100
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(0, 255, 0)
Case Else
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 0, 0)
End Select
End With
Target.Select
End Sub
 

petipouf

XLDnaute Nouveau
Bonjour Joël
Tout d'abord merci beaucoup du temps que tu m'accordes!

Je dois me servir de la formule, pourrais-tu m'éclairer ?
Voici comment je procède:
j'ouvre Excel, je crée l'ellipse,
ensuite je clique dessus et met: affecter une macro.
Par défaut apparaît: nom de la macro: ellipse1_Cliquer
Je la modifie.
Dans le code VBA il y a pour le moment:

Sub Ellipse1_Cliquer()
End Sub

Je supprime ces éléments et y ajoute ton code.
Malheureusement rien ne se passe...

Encore merci de ton aide!
 

Jacky67

XLDnaute Barbatruc
Bonjour,
Ceci devrait être suffisant
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Shapes(1).Fill.ForeColor.SchemeColor = IIf(Range("a1").Value < 100, 10, 11)
End Sub

Pour le mettre en place
-Copier le code ci-dessus
-Sélectionner la feuille ou se trouve la forme
-Alt+F11
-Coller le code dans la grande fenêtre (blanche):)
-Retourner sur la feuille et tester en changeant la valeur de A1
Exemple en pj
 

Pièces jointes

  • petipouf.xlsm
    14.4 KB · Affichages: 37
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 136
Messages
2 116 633
Membres
112 819
dernier inscrit
Trivet