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

Specifiek nummer zoeken via textbox

Status
Niet open voor verdere reacties.

Bakkerken

Gebruiker
Lid geworden
14 dec 2014
Berichten
46
Collega Excel fanaten,

overal gezocht maar geen antwoord gevonden voor mijn probleem.

Ik had via een textbox in userform graag een nummer in een kolom gezocht.
Indien het nummer 2x in de lijst voorkomt dient hij het onderste nummer te selecteren.
In bijlage een voorbeeldje, code in orginele file nog stuk langer maar die werkt perfect, enkel op dit loop ik vast.

Als ik zoek op 6 selecteert hij bv 46, als ik 26 zoek neemt hij 126.
Hij dient dus de exacte waarde uit de textbox te selecteren, en hierbij ook het onderste in de rij.

Hopelijk (ongetwijfeld) kan iemand hierbij helpen.

Dankjewel.
 

Bijlagen

Laatst bewerkt:
Code:
...Set A = Sheets("blad1").Range("B4", Range("B" & Rows.Count).End(xlUp)).Find(str[COLOR="#FF0000"], lookat:=xlWhole[/COLOR])...
 
Wat kan het toch simpel zijn blijkbaar. Heel veel dank hiervoor :)

Om toch ook wat bij te leren:
Wat doet dit exact dan? lookat:=xlWhole)

specifieke waarde zoeken of gewoon van onderaan beginnen zoeken?
Kwestie van ook wat bij te leren.
 
Die switch doet precies wat jij vroeg: een exacte match zoeken in plaats van een deel. De standaardwaarde is LookAt:=xlPart.
 
Laatst bewerkt:
En zo om de eventueel aanwezige 2e te vinden:
Code:
Private Sub CommandButton1_Click()
    Dim A As Range
    Dim O As Range
    Dim str As String
    
    str = Me.nummer.Value
    
    With Sheets("blad1").Range("B4", Range("B" & Rows.Count).End(xlUp))
        Set A = .Find(str, , , xlWhole)
        If A Is Nothing Then
            MsgBox ("nummer werd niet gevonden")
        Else
            Set O = A
            Set A = .FindNext(A)
            If A.Address <> O.Address Then
                A.Select
            End If
        End If
    End With
End Sub
 
Super. Dank voor de uitleg.

Ik heb als test mijn selectie ook nog even wat uitgebreid maar dan doet hij het niet meer zoals verwacht?
 

Bijlagen

Maar selecteert nog niet de laatst gevonden waarde als er dubbele waarden zijn.


Edit: Zo wel
Code:
Set A = Sheets("blad1").Range("B4", Range("B" & Rows.Count).End(xlUp)).Find(str, Lookat:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
 
Laatst bewerkt:
Zie #5
Als echter die gevraagde 6 meer dan 2x voorkomt zal mijn voorbeeld de 2e selecteren.
In je laatste document komt die 6 vaker voor en zal je moeten loopen in de FindNext sectie.
En waarom zoek je pas vanaf regel 4?
 
Laatst bewerkt:
Als je de code aanpast naar mijn voorstel pakt hij wel altijd de laatste
 
Yep, goeie :)
Niet aan gedacht.
Maar zo kan TS zogezegd, beide kanten op ;)
 
Inderdaad, gaat helemaal goed komen:thumb:
 
Code:
Sub M_snb()
  Application.Goto Columns(2).Find(6, , , 1, , 2),1
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan