XL 2016 image : colorer selon condition

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Toujours dans mes lubies, je voudrais colorer une image selon condition.

par exemple si :
- cellule G10 = OK image couleur de fond en vert sinon en rouge.

Je cherche sur le net et je ne trouve pas d'exemple pour les images.
Auriez-vous la solution ?

Je joins un petit fichier test.
Avec mes remerciements,
Je vous souhaite à toutes et à tous un très beau et bon dimanche,
Amicalement,
arthour973,
 

Pièces jointes

  • image_coul_condition.xlsm
    15.7 KB · Affichages: 19

Staple1600

XLDnaute Barbatruc
Bonjour

Je sais pas sur quel net tu cherches mais...
Un exemple (qui implique deux images identiques avec l'une avec fond vert et l'autre fond rouge)
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Shapes("Picture 1").Visible = [G10] = "OK"
ActiveSheet.Shapes("Picture 2").Visible = [G10] <> "OK"
End Sub
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Bonjour,

Ton code fonctionne bien sur mais il ne fait pas ce que je cherche à faire.
(c'est sans doute pour ça que je n'ai pas encore trouvé sur le net)

Ce que fait ton code :
- il change d'image en fonction du "ok" ou "",

Ce que je cherche à faire :
- n'avoir qu'une seule image et changer sa couleur selon, "ok" ou "".

Je garde ton code pour une autre application possible.
Et je suis content quand même LOL :)
Merci à toi,
arthour973,
 

Staple1600

XLDnaute Barbatruc
Re

Tu as du mal lire ma proposition alors
J'ai bien spécifié que les images sont identiques (sauf le fond)
Donc en clair Picture 2 est une copie de Picture 1, sur laquelle j'ai modifié le fond.
Du coup visuellement, si on superpose exactement les deux images, on a l'impression d'une seule image qui change de couleur, non?
 

Staple1600

XLDnaute Barbatruc
Bonjour

Ou alors si c'est une forme automatique
(comme dans l'exemple ci-dessous avec une forme Rectangle)
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$G$10" Then
With Me.Shapes("Rectangle 1").Fill
.Visible = msoTrue
.ForeColor.RGB = IIf([G10] = "OK", RGB(0, 176, 80), RGB(255, 0, 0))
.Transparency = 0
.Solid
End With
End If
End Sub
 

job75

XLDnaute Barbatruc
Bonjour Lionel, Bernard, JM,

Une ligne de code suffit amplement :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Shapes("Rectangle 1").Fill.ForeColor.RGB = IIf([G10] = "OK", RGB(0, 176, 80), RGB(255, 0, 0))
End Sub
A+
 

Staple1600

XLDnaute Barbatruc
Re

Dans ce cas, change le titre de ta question ;)
Et utilises les bons mots clés dans tes recherches...
Nous étions en 2015 ;)
 

Discussions similaires

Réponses
29
Affichages
1 K

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T