Code VBA filtre avance

Mkate

XLDnaute Nouveau
Bonjour, je viens vers vous car je rencontre un problème avec ma macro.
Mon fichier excel est composé de divers contact avec des informations, qui sont triés par feuilles (par villes).
J'essaye de créer une macro qui aille chercher dans chacune des feuilles de mon classeur les cellules dont le texte correspond à des critères définis.

J'ai donc créer le code suivant:
Sub Macro1()
'
' Macro1 Macro
'
Dim sht As Worksheet

For Each sht In ThisWorkbook.Worksheets
Range("B:Q").AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Sheets("Critères").Range("D1:G2"), _
CopyToRange:=Sheets("FILTRER").Range("C2:R2"), _
Unique:=False

Next

End Sub


Cela ne fonctionne pas. N'étant pas une experte en VBA, est-ce que quelqu'un aurait la solution?
 

Paf

XLDnaute Barbatruc
bonjour,
peut-être un problème de référencement de plage.
je suppose que les feuilles Critères et Filtrer ne doivent pas faire l'objet du filtre copie

VB:
Sub Macro1()

Dim sht As Worksheet

For Each sht In ThisWorkbook.Worksheets
     if sht.name <>"Critères"  And sht.name <>"FILTRER" then
          sht.Range("B:Q").AdvancedFilter _
         Action:=xlFilterCopy, _
          CriteriaRange:=Sheets("Critères").Range("D1:G2"), _
          CopyToRange:=Sheets("FILTRER").Range("C2:R2"), _
          Unique:=False
     end if
Next
End Sub

le souci c'est que les données filtrées seront copiées toujours au même endroit et donc écraseront les précédentes.
Avec un classeur sans données confidentielles ( mais avec des données!) permettrait de faire quelques tests.

A+
 

Mkate

XLDnaute Nouveau
Bonjour, tout d'abord merci Paf pour votre réponse.
Le code ne fonctionne pas, je reçois comme message d'erreur : nom de champ introuvable dans la plage d'extraction, pourtant j'ai vérifié cela correspond...
Par contre, je ne dois pas aller chercher mes donnée dans les feuilles critères ou filtrer, je dois aller les chercher dans les feuille Paris, Londres etc... (je veux filtrer mes contacts qui sont classés par ville), les critères pour filtrer sont sur la feuille Critères, et la feuille d'extraction s'appelle FILTRER.
Je ne sais pas si le code changerait avec ces précisions.
Je vous remercie encore une fois pour votre réponse.
 

Discussions similaires

Statistiques des forums

Discussions
312 176
Messages
2 085 965
Membres
103 069
dernier inscrit
jujulop