Exécution d'une Macro selon donnée sélectionnée dans une liste déroulante | ||
---|---|---|
Inscription: 13/03/2012
Messages:
13
Système d'exploitation: PC Version Excel utilisée: 2003, 2007, 2010, 2013 |
Posté le : 20-07-2013 12h35
Bonjour, J'ai créé des boutons boutons, qui font référence à des Macros pour filtrer les données de la colonne D, d'un tableau Excel Je souhaiterai à la place d'utiliser des boutons, utiliser une liste déroulante, avec laquelle lorsque on sélectionne une donnée, celle-ci fait fonctionner la Macro correspondante Les macros de filtrage sont déjà créees. J'ai trouvé un code qui fait référence à ce genre d'exercice, que j'ai adapté et incorporé dans la feuille (Worksheet), mais cela ne fonctionne pas:
Private Sub Worksheet_Change(ByVal Target As Range)
Je vous joint le fichier.
Est-ce que quelqu'un pourrait m'aider? Merci d'avance pour votre aide |
|
|
Re: Exécution d'une Macro selon donnée sélectionnée dans une liste déroulante | ||
---|---|---|
Inscription: 09/01/2008
De Montréal, Québec
Messages:
463
Système d'exploitation: PC Version Excel utilisée: 97 à 2016 |
Posté le : 20-07-2013 20h22
Bonjour targa,
Je passe sur le côté approximatif du montage de l'application et la méthode choisie pour filtrer les données.
En attendant de peaufiner davantage essaie de remplacer Private Sub Worksheet_Change(ByVal Target As Range) If [G1] = "MT10" Then MacroMT_10 If [G1] = "MT31" Then MacroMT_31 If [G1] = "MT34" Then MacroMT_34 If [G1] = "MT36" Then MacroMT_36 If [G1] = "MT36_pont" Then MacroMT_36_pont If [G1] = "MT41" Then MacroMT_41 If [G1] = "MT42" Then MacroMT_42 If [G1] = "MT44" Then MacroMT_44 If [G1] = "MT45" Then MacroMT_45 End Sub par Private Sub Worksheet_Change(ByVal Target As Range) If [G1] = "MT10" Then Call MT_10 If [G1] = "MT31" Then Call MT_31 If [G1] = "MT34" Then Call MT_34 If [G1] = "MT36" Then Call MT_36 If [G1] = "MT36_pont" Then Call MT_36_pont If [G1] = "MT41" Then Call MT_41 If [G1] = "MT42" Then Call MT_42 If [G1] = "MT44" Then Call MT_44 If [G1] = "MT45" Then Call MT_45 End Sub Le mot réservé Call est indiqué mais pas obligatoire. Aussi tu auras remarqué qu'en compilant, habitude à prendre impérativement, une erreur se produit sur l'une quelconque des lignes If [G1] = "UneValeur" Then MacroUneValeur Aucune procédure publique du module ne porte Macro en préfixe, d'où l'erreur de compilation. Par exemple MacroMT_45 n'existe pas alors que MT_45 est bien nommée.
Voilà, remplace ton bout de code par celui fourni et dis-moi si ça fonctionne.
Cordialement,
Guy |
|
|
Re: Exécution d'une Macro selon donnée sélectionnée dans une liste déroulante | ||
---|---|---|
Inscription: 13/03/2012
Messages:
13
Système d'exploitation: PC Version Excel utilisée: 2003, 2007, 2010, 2013 |
Posté le : 26-07-2013 19h36
Salut Guy, Désolé pour la réponse tardive. J'ai remplacé le code selon tes conseils et...., merveilleux cela fonctionne. C'est tout à fait ce que je recherchais.
Pour le montage approximatif de l'application, j'en conviens, c'est pas ce qu'il y a de plus beau, mais c'était juste pour donner rapidement un fichier modèle pour l'exemple. Ma version finale est mieux élaborée et bien plus attractive!
En tous les cas, je te remercie infiniment pour ton aide précieuse.
Je clos ce sujet.
Merciii Salutations et bon week-end Targa |
|
|