|
|
||||||
|
#1
|
|
|
|
|
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
|
|
#2
|
|
|
|
|
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 "FFO" a écrit : [..] |
|
#3
|
|
|
|
|
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 ??? "Laure" a écrit : [..] |
|
#4
|
|
|
|
|
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 "FFO" a écrit : [..] |
|
#5
|
|
|
|
|
Bonsoir,
avec l'instruction suivante peut-être : On Error Resume Next au début de ton code Bon courage Laure a écrit : [..]
|
|
Fuseau horaire GMT +2. Il est actuellement 00h42. | Privacy Policy
|