Re: Exécution d'une Macro selon donnée sélectionnée dans une liste déroulante |
Titre du sujet : Re: Exécution d'une Macro selon donnée sélectionnée dans une liste déroulante par Guy le 20/07/2013 20:22:45 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 |
Forums