Filtre Elaboré sélection de la plage

Le
kristofb
Bonjour tous,
En pack office 2003, je cherche a effectu un filtre labor qui
prennent en compte toutes les cellules de la feuille "data", en
utilisant les critres prsent dans la feuille "critre" le tout dans
la feuille rsultat.
Sheets("rsultat").Select
Range("A1").Select
Sheets("data").Range("A1:K28575").AdvancedFilter
Action:=xlFilterCopy, _
CriteriaRange:=Sheets("critre").Range("A1:A7"),
CopyToRange:=Range("A1"), _
Unique:=False

J'ai essay
Sheets("data").Range("A1", "A" &
Range("A1").SpecialCells(xlLastCell).Row).AdvancedFilter
Action:=xlFilterCopy, _
CriteriaRange:=Sheets("critre").Range("A1:A7"),
CopyToRange:=Range("A1"), _
Unique:=False

Mais au lieu d'avoir le rsultat escompt je n'ai que la cellule A1 de
la feuille Data.

Quelqu'un peut il m'aider ?
Merci tous.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #23953451
bonjour kristof,

essaie avec

CriteriaRange:="critère!A1:A7"

--
isabelle



Le 2011-11-10 10:59, kristofb a écrit :
Bonjour à tous,
En pack office 2003, je cherche a effectué un filtre élaboré qui
prennent en compte toutes les cellules de la feuille "data", en
utilisant les critères présent dans la feuille "critère" le tout dans
la feuille résultat.
Sheets("résultat").Select
Range("A1").Select
Sheets("data").Range("A1:K28575").AdvancedFilter
Action:=xlFilterCopy, _
CriteriaRange:=Sheets("critère").Range("A1:A7"),
CopyToRange:=Range("A1"), _
Unique:úlse

J'ai essayé
Sheets("data").Range("A1", "A"&
Range("A1").SpecialCells(xlLastCell).Row).AdvancedFilter
Action:=xlFilterCopy, _
CriteriaRange:=Sheets("critère").Range("A1:A7"),
CopyToRange:=Range("A1"), _
Unique:úlse

Mais au lieu d'avoir le résultat escompté je n'ai que la cellule A1 de
la feuille Data.

Quelqu'un peut il m'aider ?
Merci à tous.
kristofb
Le #23964121
Merci de ton aide Isabelle,
Cependant, avec ce code, j'ai "erreur d'execution '1004': Référence
non valide".

Sheets("résultat").Select
Range("A1").Select
Sheets("data").Range("A1", "A" &
Range("A1").SpecialCells(xlLastCell).Row).AdvancedFilter
Action:=xlFilterCopy, _
CriteriaRange:="critère!A1:A7", CopyToRange:=Range("A1"), _
Unique:lse
kristofb
Le #23965341
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:lse
End Sub

Merci à celles et ceux qui m'ont aidé.
Publicité
Poster une réponse
Anonyme