Créateur d'un moteur de recherche - VBA

Bonjour,

Après avoir lu le tuto sur le moteur de recherche ( https://www.blog-excel.com/creer-un-champ-de-recherche-vba/ ) j'ai tenté sans connaissance du VBA de bidouiller pour faire le mien. Peine perdue, il y a bien trop de détails de programmation pour que ça soit aussi simple.

Du coup j'en appel à l'aide ici.

C'est tout bête, mais je souhaite que le "moteur" soit tout à gauche de ma page, et pas à droite comme sur le tuto.

Techniquement je veux lui dire de faire sa recherche sur la colonne E par exemple, et non la colonne A. Or j'ai beau toucher à la range, il se passe rien. J'en déduis qu'il me manque quelque chose (une fonction, de la logique, que sais-je).

Idéalement, j'aimerais aussi que ça surligne toute la ligne à partir du résultat (si le résultat est en E17, que ça surligne de E17 jusqu'à T17 par exemple).

Si quelqu'un a la gentillesse de m'expliquer le bout de code qui correspond s'il vous plaît ?

bonjour

menu Données Filtre. C'est fini

Merci mais j'ai peut-être pas compris la réponse. ^^

Si tu me parles d'un filtrage des données, je vois bien ce que ça donne mais c'est pas ce qui est recherché.

L'idée étant de passer par le moteur de recherche pour pouvoir percevoir rapidement et en même temps toutes les lignes concernées.

(Imaginons que j'ai une liste d'associations par exemple.). C'est plus sexy sous la forme présentée dans le tuto de ce site.

Bonjour,

voici le fichier modifié pour avoir le texte à chercher dans la colonne E (5ème colonne) et de suite le code:

Option Compare Text

Private Sub TextBox1_Change() 'www.blog-excel.com/creer-un-champ-de-recherche-vba

    Application.ScreenUpdating = False

    Range("E2:T24").Interior.ColorIndex = 2

    If TextBox1 <> "" Then
        For ligne = 2 To 24
            If Cells(ligne, 5) Like "*" & TextBox1 & "*" Then
                Range(Cells(ligne, 5), Cells(ligne, 20)).Interior.ColorIndex = 43

            End If
        Next
    End If

End Sub
CGVI a écrit :

Merci mais j'ai peut-être pas compris la réponse. ^^

Si tu me parles d'un filtrage des données, je vois bien ce que ça donne mais c'est pas ce qui est recherché.

L'idée étant de passer par le moteur de recherche pour pouvoir percevoir rapidement et en même temps toutes les lignes concernées.

(Imaginons que j'ai une liste d'associations par exemple.). C'est plus sexy sous la forme présentée dans le tuto de ce site.

ah oui le filtre d'Excel n'est pas sexy

mais il marche bien, il est ultra rapide et tu vois les lignes filtrées

sans aucun effort

Merci Sequoyah ! Un grand merci.

J'ai pu réutiliser ton code et le modifier selon mes feuilles et les lignes/colonnes. Nikel.

Peut-être une dernière question, si je veux définir la zone de recherche comme partant de la colonne E et sans limite de ligne, comment dois-je faire pour le spécifier ?

[Edit] Autre question en fait, si je souhaite que ma recherche se fasse sur plusieurs colonnes, comment devrais-je le préciser dans le code ? (En lisant et relisant un paquet de trucs, j'ai cru comprendre qu'il y avait une subtilité entre les colonnes accolées ou non. On va considérer qu'ici ce serait accolé pour simplifier.)

jmd : Franchement, pour moi-même ta solution me convenait.

Merci quand même.

Salut CGVI,

voici le nouveau fichier qui permet la recherche sur trois colonnes (E, F et G) et le code:

'Source : http://www.blog-excel.com/creer-un-champ-de-recherche-vba
Option Compare Text

Private Sub TextBox1_Change()

    Dim CL As Object

    Application.ScreenUpdating = False

    Range("E2:G24").Interior.ColorIndex = 2
    ListBox1.Clear
    For Each CL In Range("E2:G24")

        If TextBox1 <> "" Then
            If CL.Value Like "*" & TextBox1 & "*" Then
                CL.Interior.ColorIndex = 43
                ListBox1.AddItem CL
            End If
        End If
    Next
End Sub

Encore merci Sequoyah !

Du coup ça me gêne, parce que je m'aperçois que je me suis mal exprimé.

Ta solution est bien pratique quand on cherche une case à mettre en surbrillance. Mais dans mon cas cas je souhaite mettre toute la ligne en surbrillance.

Pour l'exemple qui clarifiera, imaginons que ma 1ère colonne est une liste d'associations, la seconde une liste de leurs acronymes respectifs (et la 3e colonne qu'importe).

Mais ton code est loin d'être inutile, il me servira ailleurs. Merci.

[Edit]

Je pense avoir trouvé, du moins ça me donne ce que je veux.

Il fallait "juste" que je trouve comment rajouter un élément à "Cells". Du coup je comprends maintenant comment je peux déterminer à l'avance les colonnes désirées.

Encore merci !

Private Sub TextBox1_Change()

    Application.ScreenUpdating = False

    Range("D2:AL100").Interior.ColorIndex = 2
    ListBox1.Clear

    If TextBox1 <> "" Then
        For ligne = 2 To 100
            If Cells(ligne, 4) & Cells(ligne, 5) Like "*" & TextBox1 & "*" Then
                Range(Cells(ligne, 4), Cells(ligne, 37)).Interior.ColorIndex = 43
            End If
        Next
    End If
End Sub

En fait, là à ce stade il me manque juste l'information pour préciser que je veux qu'il cherche de B1 par exemple à toute colonne B.

re

mettre des lignes en surbrillance ?

faire une MFC en testant si la cellule contient le terme recherché

tu peux même faire une petite zone simulant une fenêtre fille (les fenêtres filles sont le grand kif de ceux qui veulent simuler un progiciel)

Re jmd,

Je viens de voir à quoi correspond une MFC, et pour le moment j'en ai pas l'usage. Mais effectivement, j'en vois déjà des applications grâce à toi.

(J'imagine pour les zones de type fenêtre fille, mais perso' je suis pas un grand fan de ce genre de "simulation". ^^)

Tu aurais une idée qui répondrait à ça d'ailleurs ?

En fait, là à ce stade il me manque juste l'information pour préciser que je veux qu'il cherche de B1 par exemple à toute colonne B.

Rebonjour par ici,

Est-il possible de transformer en lien URL les résultats de recherche qui s'affichent dans l'espace en dessous du mot clé ? (là où les résultats apparaissent) ?

Merci d'avance.

Correction dans ma question, en fait je devrais dire : est-il possible de rendre cliquable les résultats de la recherche apparaissent dans la ListBox1 ?

Par cliquable j'entends qu'en cliquant dessus ça nous amènerait directement à la ligne qui correspond sur la page actuelle.

+1 ca m'interesserai aussi

Rechercher des sujets similaires à "createur moteur recherche vba"