comment faire un mouteur de recherche

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

fourezizou

XLDnaute Occasionnel
bonjour a tout est merci pour tout les réponse
problème est le suivant
Vous pourriez mettre une moteur de recherche dans une cellule de Excel pour un groupe de personnes, comme le moteur de recherche Google, ou, comme on en trouve dans certains programmes, par exemple lorsque vous tapez les premiers caractères dans cette cellule nous montre tous les noms que ces caractères
je fait avec option Liste déroulante mais elle non par-maitre pas de trie automatique

voir le fichier excel joindre
 

Pièces jointes

Dernière édition:
Re : comment faire !!!!!!!!!!!!!!!!

Bonjour

Peut-être un BONJOUR pour commencer

Bienvenue sur le site
pas trés claire la question !!!!!!!!


et pas besoin de crier c'est ce que les majuscules veulent dire sur le forum 😡
 
Dernière édition:
Re : comment faire !!!!!!!!!!!!!!!!

Bonjour et Bienvenu sur XLD,
Bonjour gilbert_RGI ca fait longtemps mon cher ami 😱,
Le titre de discussion n'est pas attirant, il n'a rien a voir avec le sujet...
Un fichier exemple elucidant la demande sera le bienvenu,
Aller en mode avancé ==> Gérer les pièces jointes
@ te lire

Edit : Salut Patrick 🙂
 
Dernière édition:
Re : comment faire !!!!!!!!!!!!!!!!

Bonjour à vous aussi, fourezizou, et bienvenue sur XLD 🙂

Bravo d'avoir pris le temps de lire et d'appliquer la Lien supprimé... ou pas

L'option avancée "saisie semi-automatique des valeurs de cellule" fait ça très bien.

Edit : Bonjour R@chid, Gilbert_RGI 😉
 
Dernière édition:
Re : comment faire !!!!!!!!!!!!!!!!

Bonjour à tous

La vendange des nouveaux membres d'XLD n'est pas prometteuse cette année.
Sans doute la météo, la crise, ou la proximité du 21/12/2012

Tout fout le camp, dame !

Bienvenue à toi fourezizou
Ressort de ton post et passe par le fenêtre édition, et suis les conseils de mes petits camarades de jeu
et alors tout ira mieux dans le meilleur des mondes 😉

PS: Je suppute que ta langue maternelle n'est pas le français
Ceci explique peut-être en partie ta difficulté à rédiger ta question dans une tournure plus compréhensible.



EDITION: Personnellement j'avais pensé PERSAN = PERCENT = POURCENTAGE ??
En tout cas, je n'ai rien compris non plus à la question.
 
Dernière édition:
Re : comment faire !!!!!!!!!!!!!!!!

Bonjour le fil, Staple 1600

Moi, j'ai pensé à Ce lien n'existe plus

Prions tous pour que notre ami au pseudo poétique et imagé revienne, et lève le doute insupportable qui nous tracasse tant 😛
 
Re : comment faire !!!!!!!!!!!!!!!!

Bonjour.
fourezizou… Ne serait-ce pas une entité aussi impalpable que Murphy ? Vous savez celui par la faute de qui une tartine beurrée tombe toujours si elle peut tomber et ce coté beurré au contact du sol, sale de préférence…
Ne serait-ce pas un test de nos réactions face à une demande cumulant intentionnellement tous les défauts possibles d'une demande ?
Cordialement.
 
Re : comment faire !!!!!!!!!!!!!!!!

Bonjour le fil, bienvenu Fourezizou, bonjour le forum,

Pour cotoyer beaucoup de membres de ma famille du coté de ma femme je suis impressionné par l'effort qu'ils font pour parler un français ma foi très correct qu'ils l'écrivent comme il peuvent. Je suis loin de leur arriver à la cheville avec mes trois mots d'arabe que je parle et aucun que j'écris. Bien sûr on peut se foutre de leur gueule mais on peut aussi se mettre à leur niveau... Merci à Rachid pour sa réponse.
Quant à toi Fourezizou, quelle que soit ton origine, il me semble que "bonjour" existe dans toutes les langues...
 
Dernière édition:
Re : comment faire !!!!!!!!!!!!!!!!

Bonjour le fil, bonjour le forum,

En pièce jointe une proposition VBA avec la macro événmentielle Change ci-dessous :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cel As Range 'déclare la variable cel (Cellule)
Dim lst As String 'déclare la variable lst (LiSTe de validation)

If Target.Address <> "$D$1" Then Exit Sub 'si le changement a lieu ailleurs qu'en D1, sort de la procédure

'***************************
'Liste de validation entière
'***************************
If Target.Value = "" Then 'condition : si D1 est effacée
    With Target.Offset(1, 0).Validation 'prend en compte la validation de donnée en D2
        .Delete 'supprime l'ancienne éventuelle validation de données
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=" & Range("liste").Address 'ajoute la plage nommée "liste" comme liste de validation
    End With 'fin de la prise en compte de la liste de validation en D2
    Exit Sub 'sort de la procédure
End If 'fin de la condition

'***************************************
'Liste de validation correspondante à D1
'***************************************
For Each cel In Range("liste") 'boucle sur toutes les cellule de la plage nommée "liste"
    'condition : si les premières lettres (converties en majuscules) de cel sont égales la valeur éditée en D1 (convertie en majuscule)
    If UCase(Left(cel.Value, Len(Target.Value))) = UCase(Target.Value) Then
        lst = IIf(lst = "", cel.Value & ",", lst & cel.Value & ",") 'définit la variable lst
    End If 'fin de la condition
Next cel 'prochaine cellule de la boucle
If lst = "" Then Exit Sub 'si lst est vide, sort de la procédure
With Target.Offset(1, 0).Validation 'prend en compte la validation de donnée en D2
    .Delete 'supprime l'ancienne éventuelle validation de données
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:=lst 'ajoute la variable lst comme liste de validation
End With 'fin de la prise en compte de la liste de validation en D2
End Sub
Le fichier :
 

Pièces jointes

Re : comment faire un mouteur de recherche

Bonjour le fil, bonjour le forum,

En pièce jointe une proposition avec un bouton et une boîte de dialogue avec le code ci-dessous :
Code:
Private test As Boolean 'déclare la variable test


Private Sub TextBox1_Change() 'au changement de la TextBox1
Dim pc As Byte 'déclare la variable pc (Position du Curseur)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim r As Range 'déclare la variable r (Recherche)
Dim pa As String 'déclare la variable pa (Première Adresse)

If test = True Then Exit Sub 'si test est vrai, sort de la procédure
pc = Len(Me.TextBox1.Value) 'définit la position du curseur
Me.ListBox1.Clear 'vide la ListBox1
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
    dl = .Cells(Application.Rows.Count, 8).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 8 (=H)
    Set pl = Range("H1:H" & dl) 'définit la plage pl
End With 'fin de la prise en compte de l'onglet "Feuil1"
Set r = pl.Find(Me.TextBox1.Value, , xlValues, xlPart) 'définit la recherche r (recherche le contenu de la TextBox1 dans la plage pl)
If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
    pa = r.Address 'définit l'adresse de la première occurrence trouvée
    Do 'exécute
        If UCase(Left(r.Value, pc)) = UCase(Me.TextBox1.Value) Then 'condition 2 : si le texte éditée dans la TextBox1 correspond au début du texte de l'occurrence
            test = True 'définit la variable test (evite la boucle sur l'événement "Change" du bouton
            TextBox1.Value = r.Value 'modifie le texte édité dans la TextBox1
            'sélectionne le texte dans la TextBox1
            Me.TextBox1.SelStart = pc 'début de la sélection
            Me.TextBox1.SelLength = Len(Me.TextBox1) - pc 'longueur de la sélection
        End If 'fin de la condition 2
        Me.ListBox1.AddItem r.Value 'ajoute l'occurrence trouvée à la ListBox1
        Set r = pl.FindNext(r) 'redéfinit la recherche r (occurrence suivante)
    Loop While Not r Is Nothing And r.Address <> pa 'boucle tant qu'il existe de nouvelles occurrences ailleurs qu'en pa
End If 'fin de la condition 1
test = False 'réinitialise la variable test
End Sub


Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) 'au double-clic dans la ListBox1
Sheets("Feuil1").Range("C5").Value = Me.ListBox1.Value 'place en C5 le mot double-cliqué dans la ListBox1
Unload Me 'vide et ferme l'UserForm
End Sub


Private Sub CommandButton1_Click() 'bouton "Valider"
Sheets("Feuil1").Range("C5").Value = Me.TextBox1.Value 'place en C5 le mot dans la TextBox1
Unload Me 'vide et ferme l'UserForm
End Sub
Clique sur ce bouton. Une boîte de dialogue Recherche s'ouvre. Tape du texte dans le premier champ. La recherche se fait en deux phases. D'une part, si le texte édité correspond au début d'un mot de la liste en colonne H, le mot entier s'affiche. D'autre part, tous les mots de la liste en colonne H contenant le(s) caractère(s) édité(s) dans la textbox, s'ajoutent à la listbox.
Si le contenu de la textbox te convient, valide (bouton Valider ou touche [Entrée]). Le contenu de la textbox s'affichera en C5 et la boîte de dialogue se fermera.
Tu peux aussi double-cliquer dans une ligne qui te convient dans la listbox pour l'afficher en C5 et fermer la boîte de dialogue...

Le fichier :
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
631
Retour