Macro filtre automatique excel [Résolu/Fermé]

Signaler
Messages postés
70
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
25 juillet 2008
-
Messages postés
17125
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
9 avril 2020
-
Bonjour à tous.
Je viens vous soumettre une petite problématique. En ce qui me concerne je bloque dessus depuis a peu près une semaine…
Je viens de créer un fichier comportant 5 colonnes : nom, statut, n° 1, n° 2 et date.
Ce fichier s’étant sur 4000 lignes actuellement et il est destiné a évoluer.
Comme vous pouvez l’imaginer , les noms et numéro sont tous différents. De plus la colonne nom contient les noms et prénom.
Ceci dit voilà ma problématique :
Je cherche à automatiser un filtre automatique via un bouton (macro).
C’est à dire qu’en cliquant sur ce bouton une boite de dialogue s’ouvre, je rentre le nom que je recherche et la magie du filtre automatique opère.
Tout ça pour éviter de l’activer à chaque voyage, sélectionner « personnalisé », choisir « contient » et rentrer le nom que je veux.

J’ai réussi à faire un morceau de code ouvrant la fenêtre de dialogue et à exécuter le filtre auto MAIS aucun résultat ne s’affiche…

Sub recherchernom()
Dim recherchernom As String
Recherchernom = InputBox("RECHERCHE PAR NOM", "Saisissez le nom recherché")
Selection.AutoFilter field:=1, Criteria1:="=*", Operator:=xlAnd
End Sub

Bêtise de ma part ou mon code est il trop simple ?
A l’aide plz
Merci d’avance

14 réponses

Messages postés
17125
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
9 avril 2020
3 942
Salut,

teste ce code,

Sub RechercheNom()
NomRecherché = InputBox("RECHERCHE PAR NOM", "Saisissez le nom recherché")
Selection.AutoFilter Field:=1, Criteria1:=NomRecherché
End Sub

si tu rencontres un problème reviens sur le forum avec un exemple de ton fichier avec ce lien

https://www.cjoint.com/

A+
Messages postés
70
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
25 juillet 2008
5
Bonjour et merci de ta réponse rapide Mike-31

Je viens d'essayer ton code.
Petite amélioration en ce qui concerne le filtre.
Par contre reste un problème majeur que je viens d’identifier : la recherche ne marche pas si je ne marque pas exactement ce qu’il y a de marqué…

Pour m’expliquer un peu plus, je cherche un nom DURAND DUPOND. Si je tape un seul nom sur les deux, rien a faire il m’affiche page blanche et même chose si je tape en minuscule. Il n’y a que si je rentre exactement la même chose qu’il me le filtre.

Es ce normal ou suis-je trop exigent ?
Merci de ton aide
j'ai pas toujours réussir la réponse de rechercher le nom
Messages postés
17125
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
9 avril 2020
3 942
Salut,

Ouvre une discussion en expliquant ton problème, celle ci est en statut résolu

Cordialement
Mike-31
Messages postés
17125
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
9 avril 2020
3 942
oui un peu exigent, nous avons entre les mains une machine formidable qui ne sait pas résonner.

Par contre je me demande si à partir d'une liste de validation, il ne serait pas judicieux d'activer ton filtre.

si ton fichier ne contient pas de données confidentielles, mets le sur le forum ou un exemple que l'on regarde de près

avec ce lien

https://www.cjoint.com/

A+
Messages postés
70
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
25 juillet 2008
5
Décidément tu reste ultra rapide
Effectivement les données sont confidentielles, je te créer un substitut et je te fournit ça dans un moment.
Merci encore
Messages postés
17125
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
9 avril 2020
3 942
Jettes un oeil sur ton modèle et on en reparle plus tard

https://www.cjoint.com/?hyqPsBVKMr

A+
Messages postés
253
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
21 décembre 2010
24
Pourquoi tu ne fais pas un Find tout simplement? ctrl+F
Messages postés
17125
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
9 avril 2020
3 942
Salut Olive60,

un find ne fait que rechercher une valeur ou un mot dans un tableau et non filtrer un tableau, ce que je pense souhaite notre ami Yanns.

Pour que tes explications soient complète cela équivaut également à édition/rechercher

Bonne soirée
Messages postés
70
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
25 juillet 2008
5
Re et bonjour olive60
Merci pour le fichier Mike-31 je regarde ça.
Tiens donc... une nouvelle commande... oups...
Je ne la connais pas celle là olive60 donc pour toi aussi je regarde ça je vous tiens au courant
merci
A +
Messages postés
70
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
25 juillet 2008
5
Bonjour à tous.
Je tiens tout d'abord à m'excuser par ma réponse tardive.
Je viens de passer un moment à regarder le fichier que tu m'as envoyer Mike-31.
J'aime bien le principe de recherche en rentrons le nom qu'on recherche dans une cellule.
Par contre il y a toujours le problème de recherche exact...
Nous l'avons vu hier je suis exigent ^^
Olive60 en effet si la manipulation CTRL+F est obligatoire (ou édition rechercher), ça n'interesse pas mes collègues.
Ils tiennent à ce que j'automatise la recherche afin qu'ils n'ai plus que le nom à rechercher et pour eux devoir sélectioner chaque case avant de tomber sur le bon nom est une perte de temps.

On viens d'ellucider déjà une grosse partie, mais il reste encore la question primordiale :
Peux t'on, dans une macro, faire en sorte de rechercher un mot précis et nom tout le nom?
Exemple : pour trouver Agence de tourisme de Toulouse, puis je en tappant "tourisme" filtrer toutes les correspondances ?
Je sais que le filtre le fait très bien mais les attendes de mes collègues ne seront pas comblées :$

Merci encore.
Messages postés
17125
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
9 avril 2020
3 942
Salut yanns,

Je crois que tu n'as pas tout à fait compris mon fichier, en fait la colonne A n'est pas une saisie supplémentaire, c'est une colonne de ton fichier que j'ai nommé, cette plage peut être plus grande que les besoins actuel ce qui te permet d'ajouter des lignes sans modifier la liste de validation.
Pour faire une recherche sur un nom il te suffit de sélectionner le nom dans cette liste et tu as le résultat sans rien saisir et de sélectionner (tous) en fin de liste pour de nouveau tout réafficher.
Si cela ne répond pas à tes attentes j'essayerai une sélection à partir de la liste de choix.

A+
Messages postés
70
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
25 juillet 2008
5
En effet je suis complétement largué excuse moi.
Je viens juste de remarquer que la macro recherche n'est que le filtre.
En fait sur ce fichier (à moins que mon cerveau recclame le week-end plus que moi) je ne recherche plus un nom...
La recherche se fait manuellement en scrutant tous les noms un par un?
A moins que l'on réintègre la macro recherche quand on sélectionne la cellule G1?? (d'ailleurs je sais pas si c'est possible)
A ton avis?
Ou sinon dans G1 on rentre un nom, on valide, et ca filtre les correspondances

Autre petite question cependant
Est il possible de faire afficher un message "pas de correspondance au lieu d'avoir une erreur?
Je pense mais je ne sais plus comment faire
Merci
Messages postés
17125
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
9 avril 2020
3 942
En fait pour faire simple, en G1 c'est une liste de validation qui reprend une liste de cellule de ton fichier et donc ne propose que les noms existant, donc il ne peut y avoir d'erreur n'y de saisie vu qu'il suffit de clicquer sur un nom de la liste et donc il y a correspondant.
le simple fait de sélectionner un nom en G1 déclenche automatiquement la macro fitre de même pour afficher toute la liste, dans cette cellule G1 il suffit de sélectionner (tous)

A+
Messages postés
70
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
25 juillet 2008
5
Ok merci grandement de ton aide et excuse moi pour le temps passé à m'aider
A bientôt
Essaie cela
ça devrait marcher
insère tout d'abord un command bouton

Private Sub CommandButton1_Click()
Range("A1").Select
var = InputBox("Saisir le mot à rechercher")
If ActiveSheet.AutoFilterMode Then
Else
Selection.AutoFilter
End If
Selection.AutoFilter Field:=nombre, Criteria1:=("*" & (var & "*"))

oú nombre correspond au numéro de la colonne ou tu souhaite faire ton filtre
Bonjour Yanns,

J'ai découvert le site il y a une semaine et j'ai lu ta problématique. Il est peut-être trop tard?
J'ai utilisé le code VBA pour un problème similaire au tiens.
J'ai testé le dernier code qui ne fonctionne pas.
Par contre j'ai découvert que si dans la boite de dialogue tu inscris : =*Nom abrégé* cela fonctionne.
Exemple tu chercher des alarmes : alors =*ALA* cela fonctionne à merveille.

A bientôt
et bon courage
Messages postés
70
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
25 juillet 2008
5
Et voila une petit exemple. Je n'ai pas assez d'imagination pour recreer un fichier de plus de 4000 lignes ^^

Merci de ton aide

https://www.cjoint.com/?hyqjtwX61t