Macro filtre automatique excel

Résolu
yanns Messages postés 70 Statut Membre -  
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   -
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

--

carpe diem

14 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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+
    1
  2. yanns Messages postés 70 Statut Membre 6
     
    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
    0
    1. BIS
       
      j'ai pas toujours réussir la réponse de rechercher le nom
      0
    2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
       
      Salut,

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

      Cordialement
      Mike-31
      0
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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+
    0
  4. yanns Messages postés 70 Statut Membre 6
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. olive60 Messages postés 273 Statut Membre 27
     
    Pourquoi tu ne fais pas un Find tout simplement? ctrl+F
    0
    1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
       
      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
      0
  7. yanns Messages postés 70 Statut Membre 6
     
    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 +
    0
  8. yanns Messages postés 70 Statut Membre 6
     
    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.
    0
    1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
       
      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+
      0
  9. yanns Messages postés 70 Statut Membre 6
     
    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
    0
  10. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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+
    0
  11. yanns Messages postés 70 Statut Membre 6
     
    Ok merci grandement de ton aide et excuse moi pour le temps passé à m'aider
    A bientôt
    0
  12. Quku
     
    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
    0
  13. guyrobert
     
    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
    0