Moteur de recherche
Bonjour à tous,
Je souhaite créer un moteur de recherche par mot clé qui va afficher un résultat.
N'ayant aucune connaissance, j'ai regardé la page du site permettant de créer un champ de recherche :
https://www.blog-excel.com/creer-un-champ-de-recherche-vba/
Dans ce tuto, on recherche les mots clés dans la feuille d'un classeur, sauf que je souhaite que l'on recherche dans tous les fichiers *.xls du répertoire.
Option Compare Text
Private Sub TextBox1_Change() 'www.blog-excel.com/creer-un-champ-de-recherche-vba
Application.ScreenUpdating = False
Range("A2:A24").Interior.ColorIndex = 2 'Exemple 1 (feuille)
ListBox1.Clear 'Exemple 2 (ListBox)
If TextBox1 <> "" Then
For ligne = 2 To 24
If Cells(ligne, 1) Like "*" & TextBox1 & "*" Then
Cells(ligne, 1).Interior.ColorIndex = 43 'Exemple 1 (feuille)
ListBox1.AddItem Cells(ligne, 1) 'Exemple 2 (ListBox)
End If
Next
End If
End Sub
Comment faire pour étendre la recherche sur tous les fichiers *.xls d'un répertoire plutôt que d'un classeur ?
Pourriez-vous m'aider ?
Merci à tous
Bonjour,
Le problème que tu veux poser n'a plus rien à voir avec le tuto que tu as pris en considération...
Le propre d'une recherche efficace est que la réponse soit immédiate ou quasi. Tu vises un dispositif où cela ne sera manifestement pas le cas !
Il convient donc de commencer la réflexion par la définition de ta base de recherche et son organisation, en prenant en compte les modalités possibles d'accès rapide pour chercher...
Si tu veux mettre d'emblée en place un système pour lequel Excel n'est pas spécialement adapté, il vaudrait mieux t'orienter vers des systèmes de gestion de bases de données, ou à vouloir utiliser Excel pour un usage comparable à te mettre en mesure de maîtriser les outils susceptibles de permettre tant bien que mal d'y parvenir (plus ou moins !), ce qui réclame un travail long et dense...
Je pense donc que le mieux est de faire en sorte que ce dans quoi tu veux chercher soit organisé de façon à rendre une recherche aisément possible, et rapide. Ce qui n'est déjà pas un mince travail.
Mais si tu persistes dans ton projet, bon courage !
Cordialement.
Bonjour MFerrand,
Merci pour votre retour.
J'ai intégré des données dans une autre feuilles du coup.
Sur le forum, j'ai trouvé un moteur de recherche qui correspond à mon besoin. Le hic, c'est que lorsque je recherche un mot clé, il m'affiche uniquement le mot et j'aimerai si possible afficher la ligne (cellule C à J).
Le fichier est composé de deux feuilles :
- RECHERCHE : Où l'on saisie les recherches
- Sheet1 : Où sont stockés toutes les données
La recherche s'effectue en fonction de la cellule A de la feuille "Sheet1".
Quand je fais une recherche, j'aimerai que la listbox m'affiche les résultats des colonnes C à J.
Est-ce que cette demande est réalisable ?
Option Compare Text
Private Sub ListBox1_DblClick(ByVal Cancel As msforms.ReturnBoolean)
' si on clic sur un item de la ListBox1 alors on active la cellule correspondante
Sheets("Sheet1").Activate
Worksheets("Sheet1").Cells(Tablo(ListBox1.ListIndex), 1).Activate
End Sub
Private Sub TextBox1_Change()
' on défini 3 variables
Dim Ligne As Long, Cpt As Long
Erase Tablo()
Application.ScreenUpdating = False
ListBox1.Clear
Cpt = 0
If TextBox1 <> "" Then
With Sheets("Sheet1")
For Ligne = 1 To .Range("A" & Rows.Count).End(xlUp).Row
If .Cells(Ligne, 1) Like "*" & TextBox1 & "*" Then
ListBox1.AddItem .Cells(Ligne, 1).Value
ReDim Preserve Tablo(Cpt + 1)
Tablo(Cpt) = Ligne
Cpt = Cpt + 1
End If
Next
End With
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
Source : https://www.blog-excel.com/creer-un-champ-de-recherche-vba
Merci !