"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

A voir également:

7 réponses

eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

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

eric
2
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 715
 
Bonjour,

un exemple de code de Michel_m de CCM:

https://www.cjoint.com/c/CFdnEViUfqI

Bonne suite
1
Arnaud13011 Messages postés 18 Statut Membre
 
Le fichier en question

https://mon-partage.fr/f/aZMrGHeL/
0
Arnaud13011 Messages postés 18 Statut Membre
 
Help me please
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 715
 
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
Arnaud13011 Messages postés 18 Statut Membre
 
Bonjour,

ça serait concernant la colonne C. Un simple filtre serait un peu contraignant sachant, il y aura plus de 500 lignes. J'ai vu sur certains forums et ça serait un peu mon besoin mais que sur la colonne C. Le problème est que je suis totalement novice en macro

https://openclassrooms.com/forum/sujet/excel-vba-moteur-de-recherche-filtrant
0
rEVOLV3r Messages postés 232 Statut Membre 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