VBA - Filtre dynamique

  • Initiateur de la discussion Initiateur de la discussion n_xeon
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

n_xeon

Guest
Bonjour à tous

Je cherche à ''variabiliser'' un champ de filtre dans une fonction VBA :

ActiveSheet.ListObjects("Tableau_mrs_vs_00658_APPLCOMMON_PRD_OperationPlanDB"). _
Range.AutoFilter Field:=9, Criteria1:=Array(liste_n), Operator _
:=xlFilterValues

liste_n est une valeur définie dans une cellule via une fonction et ressemble à :
"AFE", "AMO", "JPB"

Si je rentre en dur ces caractères, le filtre fonctionne. Via la varaiable, que nenni...

Une idée pour me dépanner ?

Merci d'avance !!!
 
Bonjour n_xeon,

Comme souvent, un petit fichier exemple serait utile: il permettrait notamment de comprendre (ou visualiser) ce qu'il y a dans cette fameuse cellule nommée liste_n (les 3 chaînes séparées par des virgules, une des trois chaînes citées, ...)
 
Re²,

J'vous jure, un fichier de 5Mo avec les feuilles utiles masquées (et pas de tableau au doux nom de "Tableau_mrs_vs_00658_APPLCOMMON_PRD_OperationPlanDB") 🙄
... Et il ne contient pas d'infos confidentielles, au moins??

[Edit:] Allons bon, voilà que le fichier et le message de l'auteur ont disparu (c'est vrai qu'on peut apparemment supprimer ses messages, maintenant!?) ... Dommage pour ceux qui passeront par ici plus tard!

Chez moi, ceci semble fonctionner:
Code:
  ActiveSheet.ListObjects("Tableau_mrs_vs_00658_APPLCOMMON_PRD_OperationPlanDB"). _
  Range.AutoFilter Field:=9, Criteria1:=Split(Replace(liste_n, Chr(34), ""), ","), Operator _
  :=xlFilterValues
 
Dernière édition:
Bonsoir,

Mais quid de Split ? Ca fait quoi cette fonction ?
L'aide t'aura peut-être fourni la réponse avant moi ... Split renvoie un tableau composé d'autant d'éléments qu'il y avait de parties -dans la chaîne de départ- séparées par un certain délimiteur:
Si liste_n contient, au départ "AFE", "AMO", "JPB", alors Split(liste_n, ",") donne un tableau de 3 éléments (indices 0, 1, 2) contenant chacun une des trois parties de départ qu'une virgule séparait.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
423
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
576
G
Réponses
7
Affichages
1 K
gfgghbhg
G
Réponses
1
Affichages
528
A
Réponses
19
Affichages
2 K
Réponses
1
Affichages
2 K
Compte Supprimé 979
C
Réponses
7
Affichages
4 K
Compte Supprimé 979
C
Z
  • Question Question
Réponses
2
Affichages
1 K
ZodiiaK
Z
J
Réponses
1
Affichages
2 K
Jerome5625
J
Retour