Moteur de recherche pour ma listbox

creolia

XLDnaute Impliqué
Bonjour à tous je travail à ce jour sur mon projet listbox grace à l'aide de david84 et hasco j'ai put creer un filtrage par nom par formation ainsi que par service.

je souhaite y integrer un moteur de recherche j'ai bien sur chercher sur le forum j'ai trouver des solution uniquement pour des listviews exemple celui ci

Code:
With L1
        .ListItems.Clear
        .Gridlines = True
If C4 = "" Then L4.ListItems.Clear
      Dim i&, fin&
    C1 = "": C2 = "": C3 = ""
    If C4 = "" Then L1.ListItems.Clear: Label6.Caption = "": Exit Sub
    fin = Feuil1.Range("A65536").End(xlUp).Row
    aa = Feuil1.Range("A4:K" & fin)
    For i = 1 To UBound(aa)
        For a = 1 To UBound(aa, 2)
            If aa(i, a) Like "*" & C4 & "*" Then aa(i, 11) = "oui"
        Next a
    Next i
    Y = 1
    For i = 1 To UBound(aa)
        If aa(i, 11) = "oui" Then Y = Y + 1
    Next
    If Y = 2 Then Label6.Caption = Y - 1 & " Ligne faisant référence à votre recherche a été trouvée "
    If Y > 2 Then Label6.Caption = Y - 1 & " Lignes faisant référence à votre recherche ont été trouvées  "
    If Y < 2 Then L1.ListItems.Clear: Label6.Caption = "": GoTo 1
    ReDim bb(Y - 1, 10)
    Y = 1
    For i = 1 To UBound(aa)
        If aa(i, 11) = "oui" Then
            For a = 1 To 10
                bb(Y, a) = aa(i, a)
            Next a
            Y = Y + 1
        End If
    Next i
    End With
    With L1
        .ListItems.Clear
        .View = lvwReport
        .FullRowSelect = True
        .Gridlines = True
        For i = 1 To UBound(bb)
            .ListItems.Add , , bb(i, 1)
            For a = 2 To UBound(bb, 2)
                .ListItems(.ListItems.Count).ListSubItems.Add , , bb(i, a)
            Next a
        Next i
        
1   End With
End If


ma question est peut ton adapter cette solution à une listbox svp dans le cas contraire existe til une solution equivalante qui recherche sur une plage de cellule et affiche dans la listbox tous les mots qui apparaitrais dans la recherche.

merci d'avance

en fichier joint la base de mon projet avec le filtrage existant.
 

Pièces jointes

  • TriListBox(1).xls
    176 KB · Affichages: 160

JNP

XLDnaute Barbatruc
Re : Moteur de recherche pour ma listbox

Bonjour Creolia :),
Re bonjour à tous aurais je poser une colle aux forum ;)
Pas spécialement mais adapter du code qui n'est ni à toi, ni à nous, n'est pas vraiment notre tasse de thé en général :p...
Jettes un oeil à ce fil, j'avais alimenté des ListBox en moteur de recherche :rolleyes:...
Bon dimanche :cool:
Ajout : Salut Philippe :)
 
Dernière édition:

creolia

XLDnaute Impliqué
Re : Moteur de recherche pour ma listbox

Bonjour divers bonjour JNP j'ai tenter utilisé ta solution mais il me recherche que sur la colonne A exemple si dans la colonne C je met XXXX il ne me le trouvent pas comment dois je faire svp
 

Pièces jointes

  • Copie de RechercheV1(1).xls
    37.5 KB · Affichages: 115

JNP

XLDnaute Barbatruc
Re : Moteur de recherche pour ma listbox

Re :),
Si tu modifies
Code:
Set Plage = Worksheets("vente").Range("a" & "1 : " & "e" & Ligne)
tu chercheras dans les 5 colonnes, mais attention, après, il ne faut plus utiliser OffSet, vu que tu auras un décalage, il va falloir utiliser .Row :rolleyes:...
Bon courage :cool:
 

creolia

XLDnaute Impliqué
Re : Moteur de recherche pour ma listbox

Bonjour JNP jai fais les modification que tu ma dis ainsi remplacer offset par .row j'ai une erreur nombre d'argument incorrecte ou d'affectation de propriete incorrecte sa peut venir d'ou svp merci
 

JNP

XLDnaute Barbatruc
Re : Moteur de recherche pour ma listbox

Re :),
tu ma dis ainsi remplacer offset par .row
C'était pas un remplacement littéral, mais bien une adaptation du code en utilisant une propriété plutôt qu'une autre :rolleyes:...
au plus simple, dimensionne un C2 en Range, et modifie cette partie du code
Code:
    If Flag = True Or Multi = False Then
        Set C2 = C.Offset(0, -C.Column + 1)
        ListBox1.AddItem C2.Offset(0, 0), N
        ListBox1.List(N, 0) = C2
        ListBox1.List(N, 1) = C2.Offset(0, 1)
        ListBox1.List(N, 2) = C2.Offset(0, 2)
        ListBox1.List(N, 3) = C2.Offset(0, 3)
        ListBox1.List(N, 4) = C2.Offset(0, 4)
        N = N + 1
    End If
Bonne suite :cool:
 

creolia

XLDnaute Impliqué
Re : Moteur de recherche pour ma listbox

Bonjour JNP j'ai fais donc ce que tu ma dis c'est ok mais si sur la meme ligne j'ai exemple en A5 xxxxx et en B5 xxxxx

dans listbox il m'affiche 2 lignes au lieux d'une pourait ont changer cela svp

Code:
If InStr(1, TxtBRechCode, " ", vbTextCompare) <> 0 Then Multi = True Else Multi = False
Ligne = Worksheets("vente").Range("a" & "65536").End(xlUp).Row
Set Plage = Worksheets("vente").Range("a" & "1 : " & "e" & Ligne)
With Plage
If Multi Then Set C = .Find(Recherche(0), LookAt:=xlPart) Else Set C = .Find(Recherche, LookAt:=xlPart)
If Not C Is Nothing Then
Adresse = C.Address
Do
Flag = True
If Multi Then
For J = 1 To UBound(Recherche)
If InStr(1, C, Recherche(J), vbTextCompare) = 0 Then
Flag = False
Exit For
End If
Next J
End If
    If Flag = True Or Multi = False Then
        Set c2 = C.Offset(0, -C.Column + 1)
        ListBox1.AddItem c2.Offset(0, 0), N
        ListBox1.List(N, 0) = c2
        ListBox1.List(N, 1) = c2.Offset(0, 1)
        ListBox1.List(N, 2) = c2.Offset(0, 2)
        ListBox1.List(N, 3) = c2.Offset(0, 3)
        ListBox1.List(N, 4) = c2.Offset(0, 4)
        N = N + 1
    End If
    Set C = .FindNext(C)
    Loop While Not C Is Nothing And C.Address <> Adresse
    End If
End With
For x = 1 To 8

Next x
If TxtBRechCode = "" Then ListBox1.List =

merci d'avance
 

JNP

XLDnaute Barbatruc
Re : Moteur de recherche pour ma listbox

Re :),
ok mais si sur la meme ligne j'ai exemple en A5 xxxxx et en B5 xxxxx

dans listbox il m'affiche 2 lignes au lieux d'une pourait ont changer cela svp
Euh, non, ce code n'est pas étudié pour cela, le plus simple est de ne pas mettre xxxx en A5 et en B5 :rolleyes:...
Sinon, il faut réécrire complètement le code en utilisant d'autres mode de raisonnement, si tu te sent, n'hésite pas :p...
Bon courage :cool:
 

creolia

XLDnaute Impliqué
Re : Moteur de recherche pour ma listbox

re bonjour JPN merci pour tout l'aide apporter ecoute c'est pas que je ne suis pas motive mais mes connaissance a ce jour me le permet pas je vais donc me contenter de ceci qui deja pas mal meri de tout coeur et à bientot a tous;)
 

Discussions similaires

Réponses
5
Affichages
198
Réponses
11
Affichages
305
Réponses
2
Affichages
111

Statistiques des forums

Discussions
312 352
Messages
2 087 519
Membres
103 575
dernier inscrit
rst