Macro - Liste déroulante

Bonjour,

Tout d'abord je tiens à m'excuser parce que ma question a déjà été posée ou presque, mais en tant que pur novice, je ne comprends pas les réponses...

Voilà j'ai une liste déroulante qui ne contient que Yes et No, et je voudrais que le simple de choix de Yes ou No dans la liste déclenche la macro associée à chacun des cas (j'ai déjà enregistrer les macros en question). Pour l'instant ma boucle if fonctionne mais je suis obligé d'éxécuter à chaque fois la macro manuellement après avoir choisi Yes ou No...

Je vous remercie mille fois d'avance,

Jocelyn

Bonjour

Ta liste de validation en F2

Code à placer dans le module de la feuille contenant ta liste de validation

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$F$2" Then   ' Ta liste est en F2
    If Target = "Yes" Then          ' Attention à la casse
      MsgBox "Macro Yes"
    Else
      MsgBox "Macro No"
    End If
  End If

End Sub

A la place des MsgBox marques le nom de tes macros

Merci Banzai64

J'ai copié le code que tu m'as donné,ma liste(Yes,No) était en feuille 3 donc je me suis permis de remplacer le 2 par un 3.

Dans VBA editor j'ai double cliqué sur Feuille 3, le module feuille 3 s'est ouvert, j'y ai copié ton code, j'ai changé les msgbox par mes macros mais que suis-je censé faire ensuite? le résultat est toujours le même pour l'instant mais je suppose qu'il me reste qqch à faire...

Moi j'ai enregistré mes macros dans un module à part. Quel est le rapport entre les modules insérés, les modules des feuilles? je n'y connais vraiment rien désolé

Merci d'avance.

Bonjour

Regardes l'exemple dans le fichier

Voir la macro dans le module de la page "Feuil3"

Voir les macros dans un module standard

Merci beaucoup effectivement ça marche désormais!

Est-ce que si ça ne te prend pas plus de 5 minutes tu pourrais m'expliquer pour les prochaines fois pourquoi il faut faire ça? Je vais devoir le faire plein de fois, mais autant que je comprenne plutôt que de recopier bêtement.

C'est à dire, pourquoi il faut écrire la macro dans le module de la feuille en question, pourquoi Worksheet_change, pourquoi ByVal, pourquoi Target?

Encore merci, c'est vraiment cool!

Bonjour

Déjà il faut commencer

Regardes les cours sur ce site https://www.excel-pratique.com/fr/vba.php

Joss91 a écrit :

pourquoi il faut écrire la macro dans le module de la feuille en question

Comme c'est un événement de feuille le code doit être dans son module

Joss91 a écrit :

pourquoi Worksheet_change

Parce que c'est l'événement qui est généré lors de la modification d'une cellule

Joss91 a écrit :

pourquoi ByVal, pourquoi Target?

C'est l'événement qui est défini comme cela avec ces paramètres

Mais après les cours sur ce site tu auras beaucoup de réponses à tes questions

Rechercher des sujets similaires à "macro liste deroulante"