• 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.

Spinbutton en Textboxen

Excelvbas01

Gebruiker
Lid geworden
7 apr 2020
Berichten
181
Beste forumleden,
In het bestand worden gegevens via tekstbox opgezocht.
Ik wil via scrollbar danwel spinbutton gegeven kunnen scrollen.

Vb: Nummer 1001 heeft meer gegevens dan de beschikbare tekxtboxen. Ik wil alle gegevens die gekoppeld zijn aan in dit geval nummer 1001 kunnen zien, via spinbutton/scrollbar. Ik kan dit oplossen door meerdere teksbpxen op te nemen in Userform maar ik wil dit bepreken tot vijf tekstboxen.

Uiteraard heb ik op internet gezocht maar kan op dit moment niets vinden war er op lijkt.

Hopelijk heeft iemand hier een idee.
 

Bijlagen

Kijk eens of je hier iets mee kan. De Spinbutton verschijnt enkel als er méér dan 5 resultaten gevonden worden.
Wil je echter gebruik maken van de Listbox zoals emields heeft voorgesteld gebruik dan volgende code om te filteren. Deze heeft minder interactie met het werkblad.
Code:
Private Sub t_zoek_Change()
    If IsNumeric(t_zoek) Then sVal = 1 * t_zoek.Value Else sVal = Chr(34) & t_zoek.Value & Chr(34)
    With Sheets("Blad1")
        lRow = .Range("A" & .Rows.Count).End(xlUp).Row
        With .Range("A1:A" & lRow)
            Data = Filter(.Parent.Evaluate("transpose(if(" & _
                .Address & "=" & sVal & ",row(1:" & .Rows.Count & ")))"), False, 0)
            If UBound(Data) = -1 Then ListBox1.Clear: Exit Sub
            arr = Application.Index(.Resize(, 6).Value, Application.Transpose(Data), [{5,6}])
            If UBound(Data) = 0 Then ListBox1.Column = arr Else ListBox1.List = arr
        End With
    End With
End Sub
 

Bijlagen

Unieke elementen in Combobox.
Code:
CB_01.List = Application.Unique(Application.Index(sn, 0, 1))
 
Ik wil jullie allemaal bedanken voor het meedenken. Ik ben bekend met listboxen maar wilde textboxen scrollen. Het bestand van warme bakkertje is wat ik in mijn gedachten had. Het werkt prima alleen als ik de code van spinbutton in mijn andere bestand schrijf, dan krijg ik foutmelding. (gegeven komen niet overeen)
Het gaat om deze regel: If j > UBound(data) Then Exit Sub.
Ben nog aan het zoeken waar de fout zit.
 
Het werkt prima. Heb beginnersfout gemaakt. Was vergeten Dim data mee te nemen.
Ik heb nog een ding geen must, zou wel leuk zijn. Ik zou graag willen dat wanneer spinbutton aan het eind is dat het stopt met scrollen. Nu gaat door met scrollen. Ik heb het volgende gedaan maar werkt gedeeltelijk.

If TextBox5 = "" then
MsgBox "Eind "
Exit Sub
End if

Het werkt gedeeltelijk. Het stop bij lege textbox5. Maar wanneer ik spinbutton click om bv terug te gaan dan krijg ik Msg het eind is bereikt. Ik kan dus niet terug.

Het kan volgens mij anders en beter dan wat ik bedacht heb. Dus mocht iemand een idee hebben graag.
 
Probeer het eens met deze.
Code:
Private Sub t_zoek_Change()
    For i = 1 To 5
        Me("TextBox" & i) = vbNullString
        Me("lblBox" & i) = vbNullString
    Next
    If IsNumeric(t_zoek) Then
        sVal = 1 * t_zoek.Value
    Else
        sVal = Chr(34) & t_zoek.Value & Chr(34)
    End If
    With Sheets("Blad1")
        lRow = .Range("A" & .Rows.Count).End(xlUp).Row
        With .Range("A1:A" & lRow)
            data = Filter(.Parent.Evaluate("transpose(if(" & _
                .Address & "=" & sVal & ",row(1:" & .Rows.Count & ")))"), False, 0)
            SpinButton1.Visible = UBound(data) > 4: SpinButton1.Value = 0: SpinButton1.Max = UBound(data) - 4
            If UBound(data) = -1 Then Exit Sub
            For i = 0 To UBound(data)
                If i = 5 Then Exit For
                Me("TextBox" & i + 1).Text = .Parent.Cells(data(i), 5)
                Me("lblBox" & i + 1).Text = .Parent.Cells(data(i), 6)
            Next
        End With
    End With
End Sub
 
Terug
Bovenaan Onderaan