Exécution d'une Macro selon donnée sélectionnée dans une liste déroulante
#1
Débutant XLPages

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)
 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

 

Je vous joint le fichier.

 

Est-ce que quelqu'un pourrait m'aider?

Merci d'avance pour votre aide

Pièce jointe:
xlsm Classeur1.xlsm   [ Taille: 29.63 Ko - Téléchargements: 1229 ]
Hors Ligne
Rapport   Haut 

Re: Exécution d'une Macro selon donnée sélectionnée dans une liste déroulante
#2
Accro XLPages

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


Hors Ligne
Rapport   Haut 

Re: Exécution d'une Macro selon donnée sélectionnée dans une liste déroulante
#3
Débutant XLPages

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 smiley

Salutations et bon week-end

Targa

Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes