Filtre automatique personnalisé en VBA ?

Le
Laure
bonjour,

j'aurais voulu savoir s'il était possible de transcrire en VBA un filtre
automatique personnalisé ?

Je m'explique un peu mieux :
j'ai un tableau de plus de 5000 lignes, sur lequel je souhaite créer un
filtre automatique personnalisé avec pour critères "contient" et le mot
Cela marche très bien en "manuel" mais j'aurais souhaité que les gens
puissent faire une recherche et cela de manière un peu plus simple avec une
inputbox, afin qu'ils rentrent directement le mot ou la partie de mot sur
lequel ils veulent faire leur recherche.

voici mon code :
nompdt = InputBox("Quel nom ?")
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="=nompdt", Operator:=xlAnd
End Sub

seulement la recherche se fait alors uniquement si le critère est "égal"
alors que je veux "contient"

Auriez-vous une idée ?

merci d'avance
Laure
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
Laure
Le #4319021
merci merci merci... ça marche nickel !!
en plus j'aurais dû y penser car je suis partie en stage VBA niveau 1 il y a
15 jours et donc on a vu cette instruction...
en tout cas merci beaucoup
Laure


Je te propose ceci :
On Error Resume Next
ActiveSheet.ShowAllData

Celà devrait répondre à ton attente


merci beaucoup pour la réponse et la rapidité... cela me convient très bien.

j'aurais une autre question, si je peux me permettre :
voilà dans un autre fichier j'ai un bouton RESET afin de supprimer un filtre
élaboré... il fonctionne bien sauf si on clique 2 fois de suite dessus (on a
alors la fenêtre de débogage)... je ne sais pas comment lui dire que si les
données du classeur ne sont pas filtrées alors pas la peine de faire le RESET
?

voici le code que j'utilise : ActiveSheet.ShowAllData

Laure


Salut Laure
Il suffit de rajouter dans la donnée de recherche le symbole * avant et aprés
soit dans ta macro comme ceci :
nompdt = InputBox("Quel nom ?")
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="=*" & nompdt & "*", Operator:=xlAnd
Inconvènient seule l'option "contient" pourra être utilisée comme critère de
recherche
soit dans la fenêtre de l'InputBox par l'utilisateur : il saisit par exemple
*Ma recherche*
ou tu peut par défaut l'y intégrer avec ce code :
nompdt = InputBox("Quel nom ?", , "**")
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="=" & nompdt, Operator:=xlAnd
a charge à l'utilisateur de maintenir les caractères avec sa saisie
Avantage toutes les types de recherche peuvent être utilisés : =
"Recherche", contient "*Recherche*", commence "Recherche*", se termine
"*Recherche"
option nettement supérieure quant aux possibilités offertes

Celà te convient-il ???




bonjour,

j'aurais voulu savoir s'il était possible de transcrire en VBA un filtre
automatique personnalisé ?

Je m'explique un peu mieux :
j'ai un tableau de plus de 5000 lignes, sur lequel je souhaite créer un
filtre automatique personnalisé avec pour critères "contient" et le mot...
Cela marche très bien en "manuel" mais j'aurais souhaité que les gens
puissent faire une recherche et cela de manière un peu plus simple avec une
inputbox, afin qu'ils rentrent directement le mot ou la partie de mot sur
lequel ils veulent faire leur recherche.

voici mon code :
nompdt = InputBox("Quel nom ?")
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="=nompdt", Operator:=xlAnd
End Sub

seulement la recherche se fait alors uniquement si le critère est "égal"
alors que je veux "contient"...

Auriez-vous une idée ?

merci d'avance
Laure








FFO
Le #4318911
Salut Laure
Il suffit de rajouter dans la donnée de recherche le symbole * avant et aprés
soit dans ta macro comme ceci :
nompdt = InputBox("Quel nom ?")
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="=*" & nompdt & "*", Operator:=xlAnd
Inconvènient seule l'option "contient" pourra être utilisée comme critère de
recherche
soit dans la fenêtre de l'InputBox par l'utilisateur : il saisit par exemple
*Ma recherche*
ou tu peut par défaut l'y intégrer avec ce code :
nompdt = InputBox("Quel nom ?", , "**")
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="=" & nompdt, Operator:=xlAnd
a charge à l'utilisateur de maintenir les caractères avec sa saisie
Avantage toutes les types de recherche peuvent être utilisés : =
"Recherche", contient "*Recherche*", commence "Recherche*", se termine
"*Recherche"
option nettement supérieure quant aux possibilités offertes

Celà te convient-il ???




bonjour,

j'aurais voulu savoir s'il était possible de transcrire en VBA un filtre
automatique personnalisé ?

Je m'explique un peu mieux :
j'ai un tableau de plus de 5000 lignes, sur lequel je souhaite créer un
filtre automatique personnalisé avec pour critères "contient" et le mot...
Cela marche très bien en "manuel" mais j'aurais souhaité que les gens
puissent faire une recherche et cela de manière un peu plus simple avec une
inputbox, afin qu'ils rentrent directement le mot ou la partie de mot sur
lequel ils veulent faire leur recherche.

voici mon code :
nompdt = InputBox("Quel nom ?")
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="=nompdt", Operator:=xlAnd
End Sub

seulement la recherche se fait alors uniquement si le critère est "égal"
alors que je veux "contient"...

Auriez-vous une idée ?

merci d'avance
Laure


Laure
Le #4318841
merci beaucoup pour la réponse et la rapidité... cela me convient très bien.

j'aurais une autre question, si je peux me permettre :
voilà dans un autre fichier j'ai un bouton RESET afin de supprimer un filtre
élaboré... il fonctionne bien sauf si on clique 2 fois de suite dessus (on a
alors la fenêtre de débogage)... je ne sais pas comment lui dire que si les
données du classeur ne sont pas filtrées alors pas la peine de faire le RESET
?

voici le code que j'utilise : ActiveSheet.ShowAllData

Laure


Salut Laure
Il suffit de rajouter dans la donnée de recherche le symbole * avant et aprés
soit dans ta macro comme ceci :
nompdt = InputBox("Quel nom ?")
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="=*" & nompdt & "*", Operator:=xlAnd
Inconvènient seule l'option "contient" pourra être utilisée comme critère de
recherche
soit dans la fenêtre de l'InputBox par l'utilisateur : il saisit par exemple
*Ma recherche*
ou tu peut par défaut l'y intégrer avec ce code :
nompdt = InputBox("Quel nom ?", , "**")
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="=" & nompdt, Operator:=xlAnd
a charge à l'utilisateur de maintenir les caractères avec sa saisie
Avantage toutes les types de recherche peuvent être utilisés : =
"Recherche", contient "*Recherche*", commence "Recherche*", se termine
"*Recherche"
option nettement supérieure quant aux possibilités offertes

Celà te convient-il ???




bonjour,

j'aurais voulu savoir s'il était possible de transcrire en VBA un filtre
automatique personnalisé ?

Je m'explique un peu mieux :
j'ai un tableau de plus de 5000 lignes, sur lequel je souhaite créer un
filtre automatique personnalisé avec pour critères "contient" et le mot...
Cela marche très bien en "manuel" mais j'aurais souhaité que les gens
puissent faire une recherche et cela de manière un peu plus simple avec une
inputbox, afin qu'ils rentrent directement le mot ou la partie de mot sur
lequel ils veulent faire leur recherche.

voici mon code :
nompdt = InputBox("Quel nom ?")
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="=nompdt", Operator:=xlAnd
End Sub

seulement la recherche se fait alors uniquement si le critère est "égal"
alors que je veux "contient"...

Auriez-vous une idée ?

merci d'avance
Laure




cousinhub
Le #4265491
Bonsoir,
avec l'instruction suivante peut-être :
On Error Resume Next
au début de ton code
Bon courage

merci beaucoup pour la réponse et la rapidité... cela me convient très bien.

j'aurais une autre question, si je peux me permettre :
voilà dans un autre fichier j'ai un bouton RESET afin de supprimer un filtre
élaboré... il fonctionne bien sauf si on clique 2 fois de suite dessus (on a
alors la fenêtre de débogage)... je ne sais pas comment lui dire que si les
données du classeur ne sont pas filtrées alors pas la peine de faire le RESET
?

voici le code que j'utilise : ActiveSheet.ShowAllData

Laure


Salut Laure
Il suffit de rajouter dans la donnée de recherche le symbole * avant et aprés
soit dans ta macro comme ceci :
nompdt = InputBox("Quel nom ?")
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="=*" & nompdt & "*", Operator:=xlAnd
Inconvènient seule l'option "contient" pourra être utilisée comme critère de
recherche
soit dans la fenêtre de l'InputBox par l'utilisateur : il saisit par exemple
*Ma recherche*
ou tu peut par défaut l'y intégrer avec ce code :
nompdt = InputBox("Quel nom ?", , "**")
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="=" & nompdt, Operator:=xlAnd
a charge à l'utilisateur de maintenir les caractères avec sa saisie
Avantage toutes les types de recherche peuvent être utilisés : =
"Recherche", contient "*Recherche*", commence "Recherche*", se termine
"*Recherche"
option nettement supérieure quant aux possibilités offertes

Celà te convient-il ???




bonjour,

j'aurais voulu savoir s'il était possible de transcrire en VBA un filtre
automatique personnalisé ?

Je m'explique un peu mieux :
j'ai un tableau de plus de 5000 lignes, sur lequel je souhaite créer un
filtre automatique personnalisé avec pour critères "contient" et le mot...
Cela marche très bien en "manuel" mais j'aurais souhaité que les gens
puissent faire une recherche et cela de manière un peu plus simple avec une
inputbox, afin qu'ils rentrent directement le mot ou la partie de mot sur
lequel ils veulent faire leur recherche.

voici mon code :
nompdt = InputBox("Quel nom ?")
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="=nompdt", Operator:=xlAnd
End Sub

seulement la recherche se fait alors uniquement si le critère est "égal"
alors que je veux "contient"...

Auriez-vous une idée ?

merci d'avance
Laure






Publicité
Poster une réponse
Anonyme