Appeler une procédure en l'associant aux variables actuelles

Bonjour à tous,

Bon, je craque !

Je sollicite votre aide !!!!

J'ai toute une série de procédures qui font plusieurs actions quasi identiques d'une procédure à l'autre, dont notamment l'application d'un filtre.

Ce filtre reste donc le meme d'une procedure à l'autre, en revanche, les valeurs de cellule recherchées dans le filtre varient.

De fait, je souhaiterais creer une procedure "generale" de filtre (au debut de la feuille de code), qui serait appelée par les différentes procedures suivantes.

C 'est dans celles-ci que seraient donc indiquées les variables qui doivent etre integrées à la "procedure de filtre" pour filtrer les termes que je souhaite.

Ne sachant pas si mes explications sont très claires, je joint les lignes de codes, simplifiées à celles qui m'intéressent uniquement.

Merci de votre aide !

6classeur1.xlsm (35.07 Ko)

Bonjour Darus et

Voici ton fichier avec le code dans un module inutile de le mettre dans la feuille

A+

Bonjour,

Une solution :

Sub filtre_gen(nom$, impr$)
    ActiveSheet.Range("B:D").AutoFilter Field:=3, Criteria1:=nom
    ActiveSheet.Range("B:D").AutoFilter Field:=1, Criteria1:=impr
End Sub

Sub macro10()
ActiveSheet.AutoFilterMode = False
filtre_gen "ed", "hp"
End Sub

A+

Bonjour BrunoM45,

Bonjour Galopin01,

Un grand merci pour vos réponses rapides.

Vos 2 solutions fonctionnent à merveille !!!

J'ai appris 0,1% de VBA, plus que 99,98% !!

Trop cool, merci encore à tous les deux !

PS : pour ma culture, du coup :

L'un d'entre vous utilise "sNom" et l'autre "Nom$". Quelle est la différence ?

snom ou nom même combat ce sont des variables : Tu peux bien les appeler comme tu veux ça ne changera rien. Libellule ou papillon conviendraient parfaitement. C'est juste une question de convenance.

par contre le signe $ dans "nom$" ou "impr$" à une fonction bien précise : il signifie que la variable attendue est une chaine de caractère. C'est l'équivalent d'une déclaration Dim nom as String

Ensuite dans la macro on ne répète plus le "$" :

Sub filtre_gen(nom$, impr$)
... Criteria1:=nom
... Criteria1:=impr

A+

D'acc. C'est tres clair.

Merci pour ta reponse Galopin01.

Rechercher des sujets similaires à "appeler procedure associant variables actuelles"