VBA macro clic sur une cellule

Résolu
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 :-)
Configuration: Windows XP Internet Explorer 7.0

7 réponses

  1. Modérateur
    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.
    1. 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 ?
      1. Modérateur
        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?
        1. 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
          1. Modérateur
            Alors juste remplace If ActiveCell... par If ActiveSheet.Range("A1")... Si ta liste est en A1 bien entendu.
        2. Contributeur
          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
          
          1. 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...
            1. 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