Filter sur un critère en fonction d'une plage de cellule avec WHILE

Bonjour,

J'essaye actuellement de finir une macro mais je bloque sur un point (Ayant cherché sur le forum je n'ai pas trouvé de sujet avec les mêmes critères)

Le but de cette macro et de filtrer un tableau en feuille1 selon une liste de critère en feuille 2 et ensuite de l’enregistrer sur une nouvelle feuille Excel qui portera le nom du critère

Le tableau va de la colonne A à la Colonne AD et le choix du filtre est en V3

Les critères de filtre dans la feuille 2 vont de B2 à B31

J'arrive avec mes connaissances actuelles à filtrer le tableau en fonction du critère nominatif mais j'aimerais bien pouvoir le faire automatiquement et pas recopier le code pour chaque critère et remettre à chaque fois le nom de la cellule du critère + les autres instructions.

Je ne sais pas trop comment faire pour insérer dans ce code une boucle WHILE qui doit pouvoir automatiser le process mais honnêtement j'ai un peu du mal à savoir comment l'insérer ici..

Merci par avance et bonne journée

Le code actuel pour un critère :

Sub Macro_test()

End Sub

Bonjour,

Ton fichier serait bienvenu !

Filtrer avec copie du résultat sur une autre feuille, c'est le filtre avancé qui fait cela...

NB- Enregistrer du code ne fait qu'allonger inutilement la procédure qu'il conviendrait d'épurer...

Cordialement.

Hello,

Merci beaucoup pour ta réponse,

J'ai donc réussi à créer un filtre avancé en VBA et jusque la c'est parfait,

Mon objectif est de pouvoir une fois que le filtre est actif (Ici le test est sur America) de pouvoir copier les données de la feuille BASE ED LIGHT vers

un autre fichier Excel, ici celui nommé America.

Cependant, il semble que mon code ne soit pas correct, pourrais-tu m'aider ou me donner des pistes de réflexion ? Merci d'avance pour ta réponse et bonne journée (Le premier code est pour le filtre, il est OK et l'autre concerne le copy/paste dans le fichier voulu)

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Not Application.Intersect(Target, Range("crit")) Is Nothing Then

Call filtre

End If

End Sub

Sub enregistrement()

Sheets("BASE ED LIGHT").Activate

Range("V2").Value = "America"

Sheets("BASE ED LIGHT").Range("A:AD").Select

Application.CutCopyMode = False

selection.Copy

Workbooks.Open ("V:\SCS\MRP\1- Synthèses, reportings & newsletters\Dossier split\America.xlsx")

Workbooks("America.xlsx").Activate

Range("A:AD").Select

selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

End Sub

Le code filtre est manquant... !

A défaut de ton fichier, c'est celui qui importe le plus.

Pour la suite, c'est du code enregistré, encore, donc à refaire...

Rechercher des sujets similaires à "filter critere fonction plage while"