VBA macro clic sur une cellule

[Résolu/Fermé]
Signaler
Messages postés
56
Date d'inscription
lundi 13 juillet 2009
Statut
Membre
Dernière intervention
7 septembre 2009
-
Messages postés
56
Date d'inscription
lundi 13 juillet 2009
Statut
Membre
Dernière intervention
7 septembre 2009
-
Bonjour,
J'ai fait une macro qui s'exécute en fonction du contenu d'une cellule :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If (ActiveCell.Value = "NOK") Then
MsgBox "Add a comment"
End If
End Sub

Le problème est que la valeur est dans une liste déroulante OK/NOK et si je selectionne OK et ensuite je sélectionne NOK la msgbox n'apparait pas... Il faut que je clique sur n'importe quelle cellule de la feuille et que je reclique sur cette cellule pour que le message apparaisse....

Savez vous comment je pourrais régler ce problème ??

Merci d'avance :-)

7 réponses

Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 644
Salut,
En fait, dans ce cas, la macro ne doit pas tester la valeur contenue dans la cellule mais la valeur du combobox.
Double clic sur la liste déroulante donne :
Private Sub ComboBox1_Change()

End Sub
entre ces deux lignes indiquer :
If ComboBox1.Value = "NOK" Then
MsgBox "Add a comment"
End If
à noter toutefois que ComboBox1 est le nom de ta liste déroulante nom susceptible d'être différent chez toi.
Messages postés
56
Date d'inscription
lundi 13 juillet 2009
Statut
Membre
Dernière intervention
7 septembre 2009
4
En fait ma liste n'est pas faite à partir d'une combobox, mais de données->validation->liste....
Donc ça ne va pas marcher....si ?
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 644
Oui non.
Dans ton cas, ta macro est donc la bonne. Il convient de tester la valeur de ta cellule. Alors comment et quand veux tu que la macro se lance?
Messages postés
56
Date d'inscription
lundi 13 juillet 2009
Statut
Membre
Dernière intervention
7 septembre 2009
4
Je voudrais que ma macro se lance dès que je sélectionne NOK dans ma liste. En fait elle marche bien, mais une fois la selection faite il faut que je clique à coté et ensuite que je REclique sur ma cellule pour que le message s'affiche....c'est ça qui m'embete
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 644
Alors juste remplace If ActiveCell... par If ActiveSheet.Range("A1")... Si ta liste est en A1 bien entendu.
Messages postés
16520
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
26 septembre 2021
3 224
bonjour

ci dessous la cellule "validation" est E2

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$E$2" Then Exit Sub
If Target = "NOK" Then
   MsgBox "c'est gagné!"
End If

End Sub
Messages postés
56
Date d'inscription
lundi 13 juillet 2009
Statut
Membre
Dernière intervention
7 septembre 2009
4
michel_m j'ai testé ta solution mais malheureusement ça ne change rien du tout par rapport à ce que j'avais fait avant il faut également sortir de la case et recliquer dessus pour voir le message....

pijaku j'ai également testé la tienne, là le message s'affiche quand on sort de la cellule, donc c'est déjà mieux on n'a pas besoin de recliquer dessus, cependant le fait d'utiliser ActiveCell m'arrangeait beaucoup, car la liste déroulante OK/NOK je l'ai plein de fois dans ma feuille !

Donc là je ne sais pas trop comment procéder...
Messages postés
56
Date d'inscription
lundi 13 juillet 2009
Statut
Membre
Dernière intervention
7 septembre 2009
4
Bonjour,
autant pour moi en fait j'avais laissé Worksheet_SelectionChange au lieu de mettre Worksheet_Change donc là effectivement ça marche. Michel_m toute mes excuses !
Merci encore