"Moteur de recherche" feuille excel

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. Le fichier en question

    https://mon-partage.fr/f/aZMrGHeL/
    0
    1. 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
      1. 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