Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

créer un moteur de recherche avec une macro

loubjm

XLDnaute Nouveau
Bonsoir,

dans le cadre d'un projet je réalise la constitution d'un fichier client commun à moi et mes collègues,
ce fichier recense une liste de clients avec pour chacun d'entre eux la ou les personnes à contacter avec leur ligne directe.
chaque client est identifié par un numéro client.

je joins à mon message un fichier excel qui épouse les même codes que mon fichier :
- en page 1 : le moteur de recherche et l'affichage du résultat en bas de page
- en page 2 : la base de données

s'agissant d'une grosse base client, l'idée est de gagner du temps sur la recherche d'info et donc de bannir la solution "filtre",
je souhaite que l'utilisateur tape dans la case de recherche soit le nom du client soit le numéro client,
s'affiche alors le ou les résultats recherchés juste en dessous (affichage des lignes de la base de données dans lesquelles le mot clé a été trouvé).

pour l'histoire j'ai suivi une formation VBA de 2 jours la semaine dernière pour essayer de répondre à mon problème mais une fois seul devant l'outil c'est du "chinois".

Merci par avance si quelqu'un à la gentillesse de pouvoir m'apporter son expertise

cdlt

JM
 

Pièces jointes

  • TEST MACRO.xlsx
    17 KB · Affichages: 87
  • TEST MACRO.xlsx
    17 KB · Affichages: 78

Calvus

XLDnaute Barbatruc
Re : créer un moteur de recherche avec une macro

Bonsoir loubjm,

Regarde si cela te convient.

J'ai fait 2 listes de validation, afin de choisir le client ou son numéro.

Tu peux sélectionner un client, ou laisser vide et chercher via le numéro.

Il suffit ensuite de cliquer sur le bouton de recherche.

Dis nous si ça va.

A+
 

Pièces jointes

  • TEST MACRO.xlsm
    17.1 KB · Affichages: 188
  • TEST MACRO.xlsm
    17.1 KB · Affichages: 117
Dernière édition:

fhoest

XLDnaute Accro
Re : créer un moteur de recherche avec une macro

Bonjour Calvus (plus rapide que moi...),loubjm
voici un autre code (sans comparaison avec Calvus,car j'ai fait ce code entre temps,sans avoir vu le sien, qui à mon avis correspond également à ta demande)
A toi de voir.
il faut mettre le code derrière le bouton recherche.
Code:
Option Compare Text

Sub recherche()


Dim c As Range
Dim plage As Range
Dim i As Byte
Dim j As Byte
j = 13
Sheets("accueil").Range("A14:D100").Clear
Set plage = Sheets("base").Range("A4:B9") ' a adapter
For Each c In plage
If c Like "*" & Sheets("accueil").Range("C6").Value & "*" Then
j = j + 1
For i = 1 To 4
Sheets("accueil").Cells(j, i).Value = Sheets("base").Cells(c.Row, i).Text
Next
End If
Next
End Sub
A bientôt.
 

loubjm

XLDnaute Nouveau
Re : créer un moteur de recherche avec une macro

bonsoir,

Merci Calvus pour ta réactivité

d'un point de vue affichage du résultat c'est pile ce dont j'ai besoin,
en revanche je souhaite "taper" un mot clé dans la zone recherche et non sélectionner dans une liste déroulante, un peu comme un Google quoi. la base client comporte des centaines de noms, donc la liste déroulante ne sera pas pratique.

autre petit souci, il peut y avoir plusieurs résultats pour un même nom ou un même numéro client, tous les résultats doivent s'afficher et pas seulement le premier trouvé dans la liste.

quoiqu'il en soit, merci encore pour ton aide.

cdlt
 

MISSK 971

XLDnaute Nouveau
BonjourCe lien n'existe plus XLDnaute Accro
Bonjour à tous
j'ai besoin d'aide urgente

j'ai besoinde réaliser sous excel un sorte de moteur de recherhe

il faudrait renseigner des filtre et cliquer sur rechercher

le filtre colonne A détermine les champs qui doivent apparaitre dans la colonne B et ainsi de suite

Mais ça ne fonctionne pas la liste déroutante qui apparait dans la colonne B ne se réduit pas en fonction du premier critère colonne A choisi


a l'aide !!
 

Pièces jointes

  • urgent.xlsm
    140.9 KB · Affichages: 40

Discussions similaires

Réponses
16
Affichages
639
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…