Filtre avec caractère joker vba

Le
Steph
Bonjour,

Je cherche à faire un filtre sur des triplets, mais parfois je n'ai
que 1 ou 2 valeurs du triplet.
Mon triplet est composé:
- d'une lettre de A à N
- d'un nombre entre 1 et 99
- de 2 lettres: UP ou DW

Donc mes triplets peuvent être A_1_UP; D_16_DW

L'utilisateur remplit des comobobox pour faire sa requête sur 1, 2 ou
les 3 valeurs du triplets.

Si une des valeurs est vide, il faudrait que j'utilise des caractères
jokers, genre * ou ? mais je n'y arrive pas.

J'ai fait ça:

If ComboBox1 <> "" Then motif = motif & ComboBox1.Value Else motif =
"?"
If ComboBox2 <> "" Then motif = motif & "_" & ComboBox2.Value Else
motif = motif & "_" & "??"
If ComboBox3 <> "" Then motif = motif & "_" & ComboBox3.Value Else
motif = motif & "_" & "??"

Rows("2:2").Select
Selection.AutoFilter
ActiveSheet.Range(Cells(2, 11), Cells(ligne, 11)).AutoFilter
Field:=11, Criteria1:="*" & motif & "*"


Ici, mes ? étaient les jokers mais ça ne marche pas.

Comment puis-je faire ?

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #23994181
bonjour Steph,

Selection.AutoFilter Field:, Criteria1:="=?" & motif & "*", Operator:=xlAnd

je ne sais pas si l'erreur c'est fait lors de ton copier/coller
mais au cas ou, n'oublie pas de laisser un espace avant et après les &

--
isabelle



Le 2011-11-22 11:20, Steph a écrit :
Bonjour,

Je cherche à faire un filtre sur des triplets, mais parfois je n'ai
que 1 ou 2 valeurs du triplet.
Mon triplet est composé:
- d'une lettre de A à N
- d'un nombre entre 1 et 99
- de 2 lettres: UP ou DW

Donc mes triplets peuvent être A_1_UP; D_16_DW ...

L'utilisateur remplit des comobobox pour faire sa requête sur 1, 2 ou
les 3 valeurs du triplets.

Si une des valeurs est vide, il faudrait que j'utilise des caractères
jokers, genre * ou ? mais je n'y arrive pas.

J'ai fait ça:

If ComboBox1 If ComboBox2<> "" Then motif = motif& "_"& ComboBox2.Value Else
motif = motif& "_"& "??"
If ComboBox3<> "" Then motif = motif& "_"& ComboBox3.Value Else
motif = motif& "_"& "??"

Rows("2:2").Select
Selection.AutoFilter
ActiveSheet.Range(Cells(2, 11), Cells(ligne, 11)).AutoFilter
Field:, Criteria1:="*"& motif& "*"


Ici, mes ? étaient les jokers mais ça ne marche pas.

Comment puis-je faire ?

Merci
isabelle
Le #23994171
ou plus simplement,


a = ComboBox1
b = ComboBox2
c = ComboBox3

Selection.AutoFilter Field:, Criteria1:="=*" & a & "*" & b & "*" & c & "*", Operator:=xlAnd

--
isabelle
Steph
Le #23994931
On 23 nov, 01:51, isabelle
ou plus simplement,

a = ComboBox1
b = ComboBox2
c = ComboBox3

Selection.AutoFilter Field:, Criteria1:="=*" & a & "*" & b & "*" & c & "*", Operator:=xlAnd

--
isabelle



Merci mais ça ne marche pas si a ou b ou c est vide.
Si a et b et c sont remplis, ça marche, mais je cherchais une solution
si l'une de mes variables est vide.
isabelle
Le #23995621
a, b ou c ne peuvent pas être vide (empty), mais peuvent être = à une chaine vide ("")

--
isabelle


Le 2011-11-23 04:53, Steph a écrit :

Merci mais ça ne marche pas si a ou b ou c est vide.
Si a et b et c sont remplis, ça marche, mais je cherchais une solution
si l'une de mes variables est vide.
Publicité
Poster une réponse
Anonyme