• 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 binnen Listbox

Status
Niet open voor verdere reacties.

HyperXnl

Gebruiker
Lid geworden
2 apr 2016
Berichten
74
En we lopen wederom tegen een probleem aan :D

In het Userform kan een artikel gezocht worden. Echte zoekt hij hem alleen in de Listbox op de eerste kolom.
(Bijv. Zoeken op B, dan pakt hij automatisch boek)

Is het ook mogelijk om te zoeken binnen meerdere kolommen?
Dus als ik bijv. 256 bij zoeken intyp dat hij dan de regel van Kousen pakt?


Thanks maar weer :confused:

Grtz Michael
 

Bijlagen

Ik zou eerder prioriteit geven aan het gebruik van VBA:

Bijv.

Code:
Private Sub UserForm_Initialize()
   TextBox5 = Format(Date, "dd-mm-yyyy")
   ListBox1.List = Sheets("Voorraad").Cells(2, 1).CurrentRegion.Offset(1).Value
   ComboBox1.List = Sheets("Leveranciers").Cells(1).CurrentRegion.Offset(1).Value
End Sub

Private Sub ListBox1_Click()
    For j = 0 To 4
       Me("Textbox" & Choose(j + 1, 1, 2, 3, 7, 21)) = ListBox1.Column(j)
    Next
    TextBox4.Value = ""
    
    Frame3.Visible = Val(TextBox3) <= Val(TextBox7)
End Sub

Bij een betere strukturering van de naamgeving van de userformcontrols kun je met minder code af; bijv.

Code:
Private Sub ListBox1_Click()
    For j = 0 To 4
       Me("Textbox" & j) = ListBox1.Column(j)
    Next
    TextBox4.Value = ""
    
    Frame3.Visible = Val(TextBox3) <= Val(TextBox7)
End Sub
 
Laatst bewerkt:
zo beter
Code:
Private Sub TextBox6_Change()
Dim sFind As String
    sFind = Me.TextBox6.Text
     
    If Len(sFind) = 0 Then
        Me.ListBox1.ListIndex = -1
        Me.ListBox1.TopIndex = 0
    Else
        For i = 0 To Me.ListBox1.ListCount - 1
           If InStr(UCase(ListBox1.List(i[COLOR=#ff0000], 1[/COLOR])), UCase(sFind)) > 0 Then
                Me.ListBox1.TopIndex = i
                Me.ListBox1.ListIndex = i
                Exit For
            End If
        Next i
    End If
End Sub
 
Mannen net jullie opties geprobeerd

@SNB, ben redelijk nieuw in de VBA, Macro's etc. Hoop middels dit forum er wat meer van te weten te komen. Net de code getest krijg hem alleen niet aan de praat.

@Jack Nouws, Deze werkt wel maar dan pakt hij alleen de waarde uit de tweede kolom, maar wil graag dat hij zoeken in alle kolommen binnen de listbox.

Thanks
 
Bedoel je dit?

Code:
If InStr(UCase(Join(Application.Index(Application.Index(ListBox1.List, 0, 0), i + 1, 0), "|")), UCase(sFind)) > 0 Then

ipv:


Code:
 If InStr(UCase(ListBox1.List(i)), UCase(sFind)) > 0 Then

Code (nog) wat lang en nu wordt er overigens in iedere kolom van de ListBox gezocht
 
@eVr

Ja dat is hem. Top bedankt hiervoor, ik kan weer verder.
Thanks
 

Korter misschien?
Code:
If InStr(UCase(Join(Application.Index(ListBox1.List, i + 1, 0), "|")), UCase(sFind)) Then
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan