Intégrer une macro à une liste déroulante

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

  • Exemple v1.xlsm
    15.9 KB · Affichages: 35
  • Exemple v1.xlsm
    15.9 KB · Affichages: 31
  • Exemple v1.xlsm
    15.9 KB · Affichages: 32

jpb388

XLDnaute Accro
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
 

jpb388

XLDnaute Accro
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
 

troopers87

XLDnaute Occasionnel
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 ?
 

troopers87

XLDnaute Occasionnel
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...
 

jpb388

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

Bonjour le forum
regarde si cela te vas
reponse #7 : rien ne se passe car target adress est en d3 et pas en d4
 

Pièces jointes

  • Exemple v1.xlsm
    21.6 KB · Affichages: 27
  • Exemple v1.xlsm
    21.6 KB · Affichages: 36
  • Exemple v1.xlsm
    21.6 KB · Affichages: 32

troopers87

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

Je ne comprends pas, cela ne fonctionne pas sur mon fichier : rien ne se passe :/

Je te joins mon fichier Exemple, qui cette fois, estime le budget de vacances...
 

Pièces jointes

  • Exemple v2.xlsm
    17.5 KB · Affichages: 32
  • Exemple v2.xlsm
    17.5 KB · Affichages: 37
  • Exemple v2.xlsm
    17.5 KB · Affichages: 38

troopers87

XLDnaute Occasionnel
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 !
 

troopers87

XLDnaute Occasionnel
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) ?
 

Discussions similaires

Réponses
10
Affichages
595