Vous trouverez dans le fichier joint tout ce dont j'ai besoin...
À savoir que - selon la valeur de la cellule D5 (ici, "Oui" ou "Non") - mon image/shape doit comprendre 2 interactions :
1° changer de dimensions en hauteur et largeur ; 2° se voir affecter/désaffecter la macro du module 1 "AFFICHE_MESSAGE".
NB : oui, je sais, "désaffecter" n'est pas joli-joli, mais il est de circonstance en ces temps où l'on ne pense qu'au vide... (jeu de mot capillotracté).
Bonsoir.
Pourquoi pas comme ça tout simplement, dans le module de l'objet Worksheet :
VB:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$D$5" Then Exit Sub
Me.Shapes("Rectangle : coins arrondis 1").Visible = Target.Value = "Oui"
End Sub
Et affectez la macro à la forme une fois pour toutes.
Vous parliez de changer ses dimensions, mais les mettre à 0 le rend quasi invisible, alors pourquoi pas carrément invisible, n'est-ce pas. Comme ça on ne peut même plus cliquer dessus et il devient inutile de changer sa propriété OnAction.
Effectivement, vu sous cet angle... C'est beaucoup plus clair et explicite.
Et le code est nickel! (J'ai simplement enlevé "Option Explicit" qui faisait planter le tout)