Bonjour,
A partir d'une base de données, je souhaite développer un fomulaire de recherche de références selon 1 à 3 mots clés.
Mon formulaire est créé, j'ai prévu 3 textbox afin que les utilisateurs saisissent leurs critères de recherche. Sur ce même formulaire, j'ai une listbox afin d'y faire apparaître les références qui contiennent tous les critères (au moins 1 est nécessaire) et j'ai également un certain nombre de textbox pour faire appraître le détail de la référence selectionnée dans la listbox.
Mon problème concerne seulement la partie identification des références ayant tous les mots clés. J'arrive bien à définir la liste des références mais seulement selon un mot clé et non selon les 2 ou 3 mots clés pour la même référence. De plus, mon code prend en compte la synthaxe (minuscule et majuscule) ce qui rend la recherche incomplète.
Auriez-vous une solution ou un conseil sur la façon de procéder svp !!!
Mon code est le suivant :
CMD_Go >>> bouton pour lancer la recherche
Cle1, Cle2, Cle3 >>> textbox pour saisir les mots clés
Listbox >>> nom de la listbox
Ci-dessous un exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 Private Sub CMD_Go_Click() 'Test de la présence du mot clé 1 If Cle1.Value = "" Then MsgBox "Veuillez saisir un critère de recherche.", vbExclamation, Exit Sub End If 'Nettoyage de la listbox ListBox.Clear Application.ScreenUpdating = False 'Boucle pour récupérer le nombre de ligne non vide i = 3 Worksheets("ONG_BDD").Range("B4").Select Do Until ActiveCell.Value = "" ActiveCell.Offset(1, 0).Select i = i + 1 Loop 'Double boucle pour parcourir chaque cellule de chaque ligne For n = 4 To i For c = 2 To 37 If Cells(n, c) Like ("*" & Cle1.Value & "*") Then ListBox.AddItem Cells(n, 2) End If If Cle2.Value <> "" Then If Cells(n, c) Like ("*" & Cle2.Value & "*") Then ListBox.AddItem Cells(n, 2) End If End If If Cle3.Value <> "" Then If Cells(n, c) Like ("*" & Cle3.Value & "*") Then ListBox.AddItem Cells(n, 2) End If End If Next c Next n End sub
Ref : 11-256 / 33-486 / 44-789 / 56-457 / 78-412
Col 1 : le poisson est rouge / le poisson est malade / la femme voit rouge / la femme est absente / le ciel est découvert
Col 2 : Ballon / bleu / malade / femme / rouge
Col 3 : femme / ciel / découvert / poisson / poisson
etc.
si l'utilisateur recherche les références qui contiennent les mots clés "isson" et "fem" la listbox doit afficher 11-256, 56-457 !
Partager