VBA moteur de recherche

Bonjour à tous,

Je sollicite votre aide au sujet de créer un moteur de recherche sur Excel. C'est-à-dire, rechercher un mot ou une expression dans une feuille. Et surtout aller à ce qui a été trouvé et surligner ce qui a été trouvé.

Bref, la même chose que quand on fait ctrl+f sur internet

Après quelques recherches sur internet j'ai trouvé un code (que je mettrais à la fin de ce message)

mais le problème est qu'il m'indique les résultats trouvés en me donnant les noms des cellules où se trouve le mot. Il ne va pas au mot. Et il ne surligne pas.

Pourriez-vous m'aider s'il vous plaît ?

Le fichier Excel où je travail c'est un répertoire de quelques intitulés d'articles de loi avec les numéros des lois, des décrets, etc. Il y a 2 colonnes

Spoiler

Par exemple :

Colonne 1 : Temps partiel : l'intérêt du service justifie un refus de réintégration anticipée

Colonne 2 : Art 60 loi n°84-53 du 26/01/1984 ; art 1 et 8 décret n°2004-777 du 29/07/2004

Voici le code en question et si vous avez carrément autre chose à me conseiller je suis preneur

Sub recherchertout()
 Dim mot As Variant
 mot = InputBox("Entrez le texte", "Recherche du mot ou chiffre")
Set c = Cells.Find(mot, LookIn:=xlValues)         
 MsgBox c.Address, , "1ere Recherche " & mot
 k = k + 1
 If Not c Is Nothing Then
 firstAddress = c.Address
 Do
 k = k + 1
 Set c = Cells.FindNext(c)
 If c Is Nothing Or c.Address = firstAddress Then MsgBox "Fin des recherches ": Exit Sub

 MsgBox c.Address, , k & "ème Recherche"
 Loop While (Not c Is Nothing) And (c.Address <> firstAddress)
 End If
 End Sub
 

Bonjour,

de toute façon au mieux il ira au premier mot qu'il a trouvé …. et ton code devient quoi si il y en a plusieurs ?

Autant utiliser la fonction Excel prévue pour une recherche. CTRL F puis F4 pour recherche suivant.

Merci pour ta réponse

J'ai trouvé quelque chose, je suis proche du but, toi ou quelqu'un pourrait m'aider ?

C'est au niveau de la "range". La recherche ne se fait que dans la colonne A. Je voudrais B et C.

kk5ly

Le code (trouvé sur internet) :

A noter que les valeurs en gras "Range("B3:C100").Interior.ColorIndex = 2" et "For ligne = 3 To 100" ont été modifiées par moi. Cela n'a pas résolu mon problème, je ne comprends pas ...

Option Compare Text

Private Sub TextBox1_Change()

    Application.ScreenUpdating = False

    Range("B3:C100").Interior.ColorIndex = 2
    ListBox1.Clear

    If TextBox1 <> "" Then
        For ligne = 3 To 100
            If Cells(ligne, 1) Like "*" & TextBox1 & "*" Then
                Cells(ligne, 1).Interior.ColorIndex = 43
                ListBox1.AddItem Cells(ligne, 1)
            End If
        Next
    End If

End Sub

Re,

çà ressemble beaucoup à ceci.

Sans fichier difficile de voir si tu as besoin des lignes avec "Listbox1" ? Pour mois non car aucun de tes code n'en faisait mention.

Tu l'as copié de où ce code sans déclaration de variable ?

Dim ligne as long comme commencer.

ou comme dans l'exemple ci-aprés

https://forum.excel-pratique.com/viewtopic.php?f=2&t=131323&p=806054&hilit=recherche+couleur#p806054

Re,

Ces codes viennent de recherches sur Google (j'ai trouvé ce forum grâce à cette recherche d'ailleurs), je ne saurais pas te dire l'adresse exacte car j'ai ouvert plusieurs onglets, etc ...

J'ai copié le code qu'il y a dans le topic que tu montres, il est très très bien. Sauf que le problème est que je n'arrive pas à faire faire la recherche sur les colonnes B et C.

Je ne peux que une colonne. J'ai remarqué que dans le code "Ligne, 1" veut dire que la recherche se fera sur la colonne A.

Donc j'ai mis "Ligne, 2" et le résultat est satisfaisant mais j'aurais préféré que cela recherche sur les colonnes B et C

Au pire je fais 2 moteurs de recherches, c'est une option viable (c'est peut-être le mieux) pour ce fichier Excel dans ce cas précis. Mais j'aimerais savoir pour ma propre "culture" d'Excel. Car dans d'autres cas, cela serait un peu bête d'avoir 2 moteurs de recherches.

Merci en tout cas !

Rechercher des sujets similaires à "vba moteur recherche"