VBA macro clic sur une cellule

Résolu/Fermé
ori05 Messages postés 56 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 7 septembre 2009 - 25 août 2009 à 10:27
ori05 Messages postés 56 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 7 septembre 2009 - 26 août 2009 à 10:43
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

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
25 août 2009 à 14:20
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.
0
ori05 Messages postés 56 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 7 septembre 2009 3
25 août 2009 à 14:27
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 ?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
25 août 2009 à 14:31
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?
0
ori05 Messages postés 56 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 7 septembre 2009 3
25 août 2009 à 15:03
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
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
25 août 2009 à 15:08
Alors juste remplace If ActiveCell... par If ActiveSheet.Range("A1")... Si ta liste est en A1 bien entendu.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
25 août 2009 à 15:14
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
0
ori05 Messages postés 56 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 7 septembre 2009 3
25 août 2009 à 15:55
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...
0
ori05 Messages postés 56 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 7 septembre 2009 3
26 août 2009 à 10:43
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
0