Macro avec filtre élaboré
Résolu/Fermé
kristof
-
14 nov. 2011 à 12:09
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 14 nov. 2011 à 19:49
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 14 nov. 2011 à 19:49
A voir également:
- Macro avec filtre élaboré
- Photo filtre gratuit - Télécharger - Retouche d'image
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro recorder - Télécharger - Confidentialité
1 réponse
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 775
Modifié par Patrice33740 le 14/11/2011 à 15:26
Modifié par Patrice33740 le 14/11/2011 à 15:26
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
14 nov. 2011 à 15:56
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.
Modifié par Patrice33740 le 14/11/2011 à 16:04
14 nov. 2011 à 19:22
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 ?
14 nov. 2011 à 19:49
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.