Filtre elaboré en utilisant une variable comme critère

hazein

XLDnaute Nouveau
bonjour je souhaite utiliser un filtre élaboré pour récupérer les données sans doublons.
j'utilise le code suivant mais cela ne fonctionne pas

Code:
 [A1:E1000].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=sheet1.combobox1.value, CopyToRange:=[G6:K6]
j'essaye de filtrer en fonction de l'élément récupérer dans la combobox mais cela ne fonctionne pas car CriteriaRange n'accepte pas les variables mais uniquement des plages.
Donc si vous avez une solution à me proposer je suis preneur.

Merci d'avance
 

Papou-net

XLDnaute Barbatruc
Re : Filtre elaboré en utilisant une variable comme critère

Bonsoir hazein,

Essaie en définissant ta plage de cellules dans une variable comme dans l'exemple ci-dessous.

A mettre en début de procédure :

Code:
Dim Plage As Range
Set Plage = Range("G6:K6")
Puis modifie ta ligne :

Code:
[A1:E1000].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=sheet1.combobox1.value, CopyToRange:=Plage

Cordialement.
 

job75

XLDnaute Barbatruc
Re : Filtre elaboré en utilisant une variable comme critère

Bonjour hazein, Papou-net :) le forum,

La plage de critère est ici la plage IV1:IV2, et il faut une formule en IV2 :

Code:
'formule pour une recherche en colonne A
[IV2] = "=""""&A2=""" & Sheet1.ComboBox1 & """"
'filtrage sans doublon => dernier argument True
[A1:E1000].AdvancedFilter xlFilterCopy, [IV1:IV2], [G6:K6], True
'effacement critère
[IV2] = ""
Bien noter :

- Sheet1 est le CodeName de la feuille, si c'est le nom de l'onglet écrire Sheets("Sheet1")

- la formule suppose une recherche sur la colonne A.

Si la recherche est par exemple sur la colonne B, remplacer A2 par B2 dans la formule.

Si la recherche porte sur plusieurs colonnes, il faudra compliquer la formule.

A+
 

Statistiques des forums

Discussions
312 296
Messages
2 086 962
Membres
103 409
dernier inscrit
Dave56