Macro avec filtre élaboré
Résolu
kristof
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 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.
A voir également:
- Macro avec filtre élaboré
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Filtre whatsapp - Accueil - Messagerie instantanée
- Jitbit macro recorder - Télécharger - Confidentialité
- Filtre teams - Accueil - Visio
1 réponse
Essaies ce code :
Cordialement
Patrice
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
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.
Je ne savais pas que l'on pouvais définir des variables en range.
Et merci pour ton "déconseil" pour le select.
Peux tu me dire quelle incidence ont les select dans le code ?
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.