Bonjour,
Je souhaite réaliser en vba un filtre avancé (élaboré) en VBA multi-critères
- à partir d'un tableau de données (onglet "Source")
- à partir d'une plage de critères ("A02:AQ24") que je trouverais dans chaque onglet crée (S41, S42...etc.. correspondant à une extraction hebdomadaire)
- et dont le résultat de l'extraction ("BT2: DB2") se localise sur chaque onglet.
Je réalise actuellement cette opération "manuellement" par le filtre et cela fonctionne très bien.
Je souhaite maintenant automatisé tout cela avec un bouton d'action permettant de lancer une macro et un bouton effacer.
J'ai crée un onglet "essais" (qui correspondra aux futurs onglets S41, S42... etc) pour tester la macro suivante que je nomme "ExtraireFiltre" et que j'ai mis dans le module 1
Malheureusement rien ne se passe. Aucun résultat (sauf le range sur BS1...), aucun bug !!
J'ai testé parallèlement l'autre macro "EffaceData" et celle-ci fonctionne bien.
Je joins un fichier simplifié (onglets "Source" et "essais")... le fichier original est trop volumineux !!
Merci pour vos lumières...
Bien à vous
Je souhaite réaliser en vba un filtre avancé (élaboré) en VBA multi-critères
- à partir d'un tableau de données (onglet "Source")
- à partir d'une plage de critères ("A02:AQ24") que je trouverais dans chaque onglet crée (S41, S42...etc.. correspondant à une extraction hebdomadaire)
- et dont le résultat de l'extraction ("BT2: DB2") se localise sur chaque onglet.
Je réalise actuellement cette opération "manuellement" par le filtre et cela fonctionne très bien.
Je souhaite maintenant automatisé tout cela avec un bouton d'action permettant de lancer une macro et un bouton effacer.
J'ai crée un onglet "essais" (qui correspondra aux futurs onglets S41, S42... etc) pour tester la macro suivante que je nomme "ExtraireFiltre" et que j'ai mis dans le module 1
VB:
Sub ExtraireFiltre()
Dim Criteres As Range
Set Criteres = Range("A02:AQ24") 'définition plage critères
'On applique le filtre avancé
Sheets("Source").Range("A2:CJ3705").AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Criteres, _
CopyToRange:=Range("BT2:DB2"), _
Unique:=False
Range("BS1").Select
End Sub
Malheureusement rien ne se passe. Aucun résultat (sauf le range sur BS1...), aucun bug !!
J'ai testé parallèlement l'autre macro "EffaceData" et celle-ci fonctionne bien.
Je joins un fichier simplifié (onglets "Source" et "essais")... le fichier original est trop volumineux !!
Merci pour vos lumières...
Bien à vous