Bonjour Nicolas,
pour info, si ta demande avait été : je saisis 2 en A3 et je veux avoir "OK !" en B3
là, une simple formule en B3 aurait suffit : =SI(A3=2;"OK !";"")
le code VBA aurait été vraiment très simple :
Sub Essai()
[B3] = IIf([A3] = 2, "OK !", "") 'si A3 = 2, B3 = "OK !" sinon B3 = ""
End Sub
mais il faudrait lancer manuellement la macro : Alt F8 pour afficher la liste des macros ; sélection de la macro (s'il y a au moins une autre macro) ; clic sur bouton « Exécuter » ... OU mise en place et utilisation d'un raccourci clavier ; Ctrl e par exemple.
pour une exécution « à la volée », sans devoir lancer la macro, le code VBA serait :
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .CountLarge > 1 Then Exit Sub 'on sort si la sélection comporte plus d'un élément
If .Address <> "$A$3" Then Exit Sub 'on sort si la cellule active n'est pas A3
[B3] = IIf([A3] = 2, "OK !", "") 'si A3 = 2, B3 = "OK !" sinon B3 = ""
End With
End Sub
c'est donc un peu moins « compliqué » que précédemment, car vu qu'il n'y a pas de modification de la cellule active, il n'est pas nécessaire de désactiver les événements avant modif, puis de les réactiver après (c'était fait via .EnableEvents).
⚠ j'ai mis plusieurs infos dans le fichier !
dhany