Macro avec filtre élaboré
Résolu
kristof
-
Patrice33740 Messages postés 8400 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8400 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai enregistré une macro avec un filtre élaboré, je souhaiterai remplacer les valeurs brutes K28575 et K7 dans les "Range" par respectivement les zones comprises entre A1 et la dernière cellule de la feuille Data et Critère.
Voici le code généré :
Sheets("data").Range("A1:K28575").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("critère").Range("A1:A7"), CopyToRange:=Range("A1"), _
Unique:=False
Est ce possible ?
Merci à ceux qui se pencheront sur mon cas.
J'ai enregistré une macro avec un filtre élaboré, je souhaiterai remplacer les valeurs brutes K28575 et K7 dans les "Range" par respectivement les zones comprises entre A1 et la dernière cellule de la feuille Data et Critère.
Voici le code généré :
Sheets("data").Range("A1:K28575").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("critère").Range("A1:A7"), CopyToRange:=Range("A1"), _
Unique:=False
Est ce possible ?
Merci à ceux qui se pencheront sur mon cas.
1 réponse
-
Essaies ce code :
Dim rngData As Range Dim rngCritere As Range Set rngData = Worksheets("Data").Range("a1").CurrentRegion Set rngCritere = Worksheets("Critères").Range("a1").CurrentRegion rngData.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=rngCritere, _ CopyToRange:=Worksheets("Résultat").Range("a1")
Cordialement
Patrice-
Je m'en suis sorti en utilisant les "Noms définis".
Dans le principe, je sélectionne mes données je les nomme et j'utilise
leur nom dans le filtre élaboré.
J'ai nommé les Données "data", les Critères "critere"
Voici le source de la macro.
Sub Macro2()
'Positionnement dans feuille et sélection des data
Sheets("Feuil2").Select
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
'attribution d'un nom défini à la plage de données
ActiveWorkbook.Names.Add Name:="data", RefersToR1C1:=Selection
'
'Positionnement dans feuille et sélection des criteres
Sheets("Feuil3").Select
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
'attribution d'un nom défini à la plage de critères
ActiveWorkbook.Names.Add Name:="Critere", RefersToR1C1:=Selection
Sheets("Feuil4").Select
'
'utilisation du filtre élaboré
Range("data").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range("critere"), CopyToRange:=Range("A1"), _
Unique:=False
End Sub
Merci de t'être penché sur mon sujet. -
-
-
Il n'est pas utile de sélectionner une cellule ou une feuille pour agir dessus, c'est une perte de temps et une source d'erreur.
Le select feuille provoque les évènements Deactivate de la feuille quitée et Activate de feuille choisie.
Le select cellule provoque l'évènement SelectionChange de la feuille.
-