Bonjour
Partant du principe que le meilleur code est celui qu'on n'écrit pas...
Filtrer avec une liste indépendante nécessite de s'assurer qu'aucun élément de la liste n'est absent de la source de données (sinon bonjour les problèmes), ce qui ralentit forcément le code...
Dans ton fichier joint, un effort pour afficher dans l'onglet filtre des valeurs en rapport avec les données aurait été bienvenu...
Une autre solution consiste à ajouter une colonne à la source : une simple actualisation du TCD donnera le filtre voulu.
Formule
=MAX(NB.SI(Filtre!A:A;A2);0)
champ à placer en zone de filtre du TCD avec filtre sur 1