This is a very simple example (the "populate the form" part of your user form will be more complicated)
But once you know foundCell, filling in the userform should be simple for you to set up.
' in userform code module
Private Sub butFind_Click()
Dim FoundCell As Range
Dim PreviousFound As Range
On Error Resume Next
Set PreviousFound = Range(butFind.Tag)
On Error GoTo 0
With Sheet1.Range("A:A")
If PreviousFound Is Nothing Then Set PreviousFound = .Cells(Rows.Count, 1)
Set FoundCell = .Find(what:=TextBox1.Text, after:=PreviousFound, lookat:=xlPart, MatchCase:=False)
End With
If FoundCell Is Nothing Then
TextBox2.Text = "not found"
butFind.Tag = vbNullString
Else
TextBox2.Text = FoundCell.Value
TextBox3.Text = FoundCell.Offset(0, 1).Value
butFind.Tag = FoundCell.Address(, , , True)
End If
End Sub
Private Sub TextBox1_Change()
TextBox2.Text = vbNullString
TextBox3.Text = vbNullString
End Sub
Private Sub butClose_Click()
Unload Me
End Sub