Intégrer une macro à une liste déroulante

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

troopers87

XLDnaute Occasionnel
Bonjour à tous,

je sais, le sujet a déjà été abordé plusieurs fois, mais je ne trouve pas de réponse adéquate à mon problème... Je vais la faire courte :

je souhaite faire une estimation d'un budget de courses selon les réponses de l'utilisateur. Dans l'exemple, si l'utilisateur sélectionne OUI dans la liste déroulante (en rouge), alors rien ne se passe. Mais supposons qu'il clique sur NON, il faudrait que les données de la plage D5 à D7 soient supprimées.

Comment puis-je faire ça ? J'ai tenté un bout de code, mais comme vous le constatez, ce n'est vraiment pas mon domaine de prédilection...

Merci d'avance !
 

Pièces jointes

Re : Intégrer une macro à une liste déroulante

Bonjour a tous
essayes ceci
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$3" And Target.Value = "non" Then
  Application.EnableEvents = False
  Range("D5:D7").ClearContents
  Application.EnableEvents = True
End If
End Sub
 
Re : Intégrer une macro à une liste déroulante

re
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 'target.addresss verifie cellule _
  target.value vérifie que non est affiche _
    si les deux son ok la macro se poursuit
 If Target.Address = "$D$3" And Target.Value = "non" Then
   Application.EnableEvents = False ' enleve evenement change
   Range("D5:D7").ClearContents 'RAZ
   Application.EnableEvents = True ' remet  evenement change
 End If
 End Sub
 
Re : Intégrer une macro à une liste déroulante

Par contre, j'ai un souci : en fait, j'ai une deuxième liste déroulante dans cette feuille... Du coup, dès que je clique dessus, la macro se lance... Peut-on dissocier les deux listes en VBA ?
 
Re : Intégrer une macro à une liste déroulante

Bonjour,

j'ai tenté d'améliorer la macro pour que des lignes soient masquées selon le cas où l'utilisateur clique sur "oui" ou sur "non" :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 'target.addresss verifie cellule _
  target.value vérifie que non est affiche _
    si les deux son ok la macro se poursuit

If Target.Address = "$D$4" And Target.Value = "non" Then

   Application.EnableEvents = False         'enleve evenement change
   
   Range("D6:D10").ClearContents            'RAZ
   Rows("7:7").Select                       'sélectionne ligne 7
   Selection.EntireRow.Hidden = True        'cache ligne 7
 
   Application.EnableEvents = True          'remet  evenement change
   
ElseIf Target.adresse = "$D$4" And Target.Value = "oui" Then

   Application.EnableEvents = False         'enleve evenement change
   
   Range("D6:D10").ClearContents            'RAZ
   Rows("5:6").Select                       'sélectionne ligne 5 à 6
   Selection.EntireRow.Hidden = True        'cache ligne 5 à 6
 
   Application.EnableEvents = True          'remet  evenement change

Else


End If
 
End Sub

Malheureusement, plus rien ne se produit et je n'en comprend pas la cause...
 
Re : Intégrer une macro à une liste déroulante

Ecoute, toutes mes excuses, effectivement après vérification ça fonctionne... Je ne comprends pas pourquoi tout à l'heure, rien ne se passait... Tout fonctionne parfaitement, finalement. Merci pour ton aide précieuse !
 
Re : Intégrer une macro à une liste déroulante

Une dernière question : je voudrais rajouter une macro à cette feuille (masquer/démasquer un graphique selon si une case est remplie ou non). Pas de souci pour l'instant avec la macro, si ce n'est l'endroit où je la place : dois-je créer une nouvelle Private Sub Worksheet_Change(ByVal Target As Range) ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
552
Retour