• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

zoeken via listbox op een form

Status
Niet open voor verdere reacties.

rocknroadie

Gebruiker
Lid geworden
5 sep 2016
Berichten
184
Ik heb een tabel behoorlijk wat informatie. het is een lijst met alle belgische parketten en de gemeenten waarvoor ze bevoegd zijn.

regelmatig moeten wij het adres van een aprket opzoeken en om het opzoeken te vergemakkelijken heb ik 4 forms gemaakt met telkens een list box. alles werkt prima behalve het zoeken op naam.

Als ik zoek op naam via opzoeken op naam gemeente/stad en ik zoek op Brugge, dan wordt Brugge neit weergegeven in mijn lijst. ik ben er quasi zeker van dat ik iets verkeerd doe alleen weet ik niet wat.... de bedoeling is eigenlijk dat de lijst inkrimpt naargelang er meer letters worden ingetypt....

kan er iemand mij ff helpen aub?

Marc

Bekijk bijlage parketten zoeken.xlsm
 
Zet de code in de change methode.

Code:
Private Sub TextBox_Find_Change()
     If Len(TextBox_Find) > 0 Then
        For i = LB_01.ListCount - 1 To 0 Step -1
           If InStr(UCase(LB_01.List(i, 3)), UCase(TextBox_Find)) = 0 Then LB_01.RemoveItem i
        Next i
    End If
End Sub
 
Marc,

Voor het zoeken gebruik je deze code:
Code:
Private Sub TextBox_Find_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
sFind = TextBox_Find.Text
     If Len(sFind) = 0 Then
        LB_01.ListIndex = -1
        LB_01.TopIndex = 0
    Else
        For i = 0 To LB_01.ListCount - 1
           If InStr(UCase(LB_01.List(i, 3)), UCase(sFind)) > 0 Then
                LB_01.TopIndex = i
                LB_01.ListIndex = i
                Exit For
            End If
        Next i
    End If
End Sub

Deze regel If InStr(UCase(LB_01.List(i, 3)), UCase(sFind)) > 0 Then vind de eerste plaatsnaam waar 'brugge' in voorkomt.
Als je dit aanpast in If InStr(UCase(LB_01.List(i, 3)), UCase(sFind)) = 1 Then wordt de eerste plaatsnaam gevonden die begint met 'brugge'.

Succes,
 
Wouter bedankt voor de tip! Dat werkt prima Maar de voorzet van HSV doet exact wat ik eigenlijk nodig heb. bij zijn oplossing worden enkel nog de gemeenten weergegeven waar de ingetypte tekst in voorkomt.

HSV, bedankt voor deze tip! Werkt perfect!!!!
 
Je kan eventueel InStr(UCase(LB_01.List(i, 3)), UCase(TextBox_Find)) wijzigen in InStr(LB_01.List(i, 3), TextBox_Find, vbTextCompare).
Dan er bij het zoeken geen verschil aangehouden tussen HOOFD en kleine letters.
 
Nu ook niet Wout,

Beide zijn 'Ucase'.

Overigens: Als je die Textcompare wilt gebruiken moet de 'start' (eerste argument van Instr) ook ingevuld worden.
Code:
InStr([SIZE=3][COLOR="#FF0000"]1,[/COLOR][/SIZE]LB_01.List(i, 3), TextBox_Find, vbTextCompare).
Of korter geschreven:
Code:
InStr([SIZE=3][COLOR="#FF0000"]1,[/COLOR][/SIZE]LB_01.List(i, 3), TextBox_Find, [COLOR="#FF0000"][SIZE=3]1[/SIZE][/COLOR]).
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan