"Moteur de recherche" feuille excel

Arnaud13011 Messages postés 18 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je gère une BD de produits alimentaires avec plusieurs fournisseurs et j'aimerai créer un "moteur de recherche" sur le première ligne qui filtrerait fur à mesure les lignes en fonction du mot saisi.

Merci de votre aide

7 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    un exemple : https://www.cjoint.com/c/CFdloocCyY2

    eric
    2
  2. Arnaud13011 Messages postés 18 Statut Membre
     
    Le fichier en question

    https://mon-partage.fr/f/aZMrGHeL/
    0
  3. Arnaud13011 Messages postés 18 Statut Membre
     
    Help me please
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    qui filtrerait fur à mesure les lignes en fonction du mot saisi. Ce mot serait celui de quelle colonne?????

    Avec un filtre tout simple cela vous irait ?????
    0
  6. rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
     
    Bonjour Arnaud13011,

    J'étais moi aussi un novice en VBA il y a de ça 2 semaines, mais à force de recherche et de codage je commence à me débrouiller légèrement ;-)

    Bref voici une macro qui sert à trouver le premier nom du fournisseur rechercher.

    _____
    Sub chercherFournisseur()

    'Déclaration des variables
    Dim strName As String

    Sheets("Feuil1").Activate

    'MSGBOX POUR DEMANDER LE FOURNISSEUR A RECHERCHER
    strName = InputBox(Prompt:="Entrez le nom du fournisseur:", _
    Title:="RECHERCHE D'UN FOURNISSEUR PAR NOM", Default:="nom")
    If strName = "nom" Or _
    strName = vbNullString Then
    Exit Sub
    Else
    'RECHERCHE DU NOM DU FOURNISSEUR
    Application.ScreenUpdating = False ' pour aller plus vite
    Set ma_feuille = ThisWorkbook.Sheets("feuil1")
    col_no = 1 ' pour la colonne A (A = 1)
    lg_no = 1 ' 1 pour à partir de la première ligne
    flag_trouve = False

    Do While Not IsEmpty(ma_feuille.Cells(lg_no, col_no))
    If (ma_feuille.Cells(lg_no, col_no).Value = strName) Then
    ma_feuille.Rows(lg_no).Select
    flag_trouve = True
    Exit Do
    End If
    lg_no = lg_no + 1
    Loop
    If (flag_trouve = False) Then
    MsgBox ("Nom du fournisseur " & strName & " non trouvé !")
    End If
    Application.ScreenUpdating = True ' Remet le comportement initial
    End If
    End Sub
    _____

    Malheureusement lorsque le nom du premier fournisseur est trouvé, la macro va sélectionner toute ta ligne de donnée ou son nom se trouve mais ne continue à chercher plus loin dans ta colonne les autres apparitions de ton fournisseur.

    Ce que tu peux faire, c'est trier ton tableau avec les filtres avant d'utiliser la macro pour arriver à la bonne place. Ou utiliser un tableau croiser dynamique qui serait dans ton cas intéressant.

    Ps : j'utilise des filtres sur plus de 100'000 lignes et...ca fonctionne très bien :-D
    0