Rechercher avec un ou plusieurs mots clés [Résolu]

Messages postés
175
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
8 mai 2017
- - Dernière réponse : PCPT
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
- 12 mai 2008 à 05:51
Bonjour,

j' ai une liste qui contient des fournitures

exemple :

Cahier petit carreau
crayon
régle
ciseau
cahier spirale

un textbox + un bouton pour effectuer la recherche

Je voudrais que lorsque je saisie  " cahier " dans mon textbox et que je clique sur mon bouton,
dans la liste, il ne s affiche que :

cahier petit carreau
cahier spirale

J' ai essayé un code que j' ai trouvé où on surligne le mot correspondant mais cela ne convient pas, je pense que le principe est le même mais je n y arrive pas.

Merci par avance pour votre aide

 

Fripouil
Afficher la suite 

11 réponses

Meilleure réponse
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
3
Merci
re,

Salut Mortalino,

voici en (VB6)

Private Sub Command1_Click()


Dim iBoucle As Integer
Dim sItems As String


For iBoucle = 0 To List1.ListCount - 1


    sItems = List1.List(iBoucle)
   
    If InStrRev(sItems, "cahier") Then MsgBox List1.List(iBoucle)
   
Next iBoucle


End Sub

"cahier" correpond à ton TextBox, tu peux le faire sans la var : sItems


A+
Exploreur

 Linux a un noyau, Windows un pépin

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 190 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Exploreur
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
0
Merci
Salut,

Je pense que dans ton cas une boucle sur ta list + l'utilisation de InstrRev et voir Mid$ et Right$, devrait répondre à ta demande...

A+
Exploreur

 Linux a un noyau, Windows un pépin
Commenter la réponse de cs_Exploreur
Messages postés
175
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
8 mai 2017
0
Merci
euh tu n aurais pas un petit exemple que je puisses transformer car je vois pas bien ce que tu veux dire

merci encore

Fripouil
Commenter la réponse de cs_Fripouil
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
Salut,
(salut Exploreur)

Je connais rien au dot Net, mais pourquoi ne pas (à l'évènement Click du bouton) lire chaque Item à l'aide d'une boucle, et quand il n'y a pas le terme indiqué dans le TextBox DANS l'item en cours, tu fais un Remove de celui-ci ?
Il ne restera que ceux ayant le mot-clé recherché

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Commenter la réponse de mortalino
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
0
Merci
ce qui donne :

If InStrRev(List1.List(iBoucle), "cahier") Then MsgBox List1.List(iBoucle)

A+
Exploreur

 Linux a un noyau, Windows un pépin
Commenter la réponse de cs_Exploreur
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
pourquoi InStrRev ?

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Commenter la réponse de mortalino
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
0
Merci
ben....c'est ma façon de voir la chose(qui n'est pas toujours la meilleur....)

A+
Exploreur

 Linux a un noyau, Windows un pépin
Commenter la réponse de cs_Exploreur
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
0
Merci
j'suis toujours en apprentissage....lol...

A+
Exploreur

 Linux a un noyau, Windows un pépin
Commenter la réponse de cs_Exploreur
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
No soucy  ;)
Autant partir du début, c'est plus simple.

Bien que je n'y connaisse rien, j'essaie de lui faire, mais galère ce dot net

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Commenter la réponse de mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
Je comprends maintenant pourquoi je ne me mets pas au dot net..
Ce fichu RemoveAtm'a fait galéré..

Bef,
ouvre un nouveau projet (pour tester, mais ca fonctionne), place une listbox, un textbox et un bouton :

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles
MyBase.Load
        With Me.ListBox1
            .Items.Add("Cahiers petit
carreaux")
            .Items.Add("stylos")
            .Items.Add("Marqueurs")
            .Items.Add("Feuilles A4")
            .Items.Add("Cahiers grand
carreaux")
            .Items.Add("Trouilloteuse")
        End With
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles
Button1.Click
        Dim i As Long

        For i = Me.ListBox1.Items.Count - 1
To 0 Step -1
            If InStr(LCase(Me.ListBox1.Items.Item(i).ToString), LCase(Me.TextBox1.Text.ToString)) =
0 Then Me.ListBox1.Items.RemoveAt(i)
        Next
    End Sub
End Class
~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Commenter la réponse de mortalino
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
29
0
Merci
outch moitié vb moitié vb.net.....

à vérifier
dans ce but contexte :
instr => chaine.contains
lcase => chaine.tolower

next? next I ^^

et on peut déclarer en même temps que l'utilisation, ce qui donne :

<strike>Dim i As Long</strike>
For i As Long = Me.ListBox1.Items.Count -
1 To 0 Step -1

mieux vaut décocher les références à VB6 pour se forcer à prendre le pli....
plus de left mid etc...
<hr width="100%" size="2" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Commenter la réponse de PCPT