1
Excel / Do Schleife bei einer Suchfunktion (VBA UserForm)
« am: August 20, 2015, 10:45:44 Vormittag »
Hallo zusammen,
ich versuche Namen zu suchen in einer Tabelle. In A stehen die Nachnamen, in B Vornamen. Das ganze soll in einer VBA User Form geschehen.
Einzelne Nachnamen zu suchen ist kein Problem, Namen wie Müller, Meier etc. kommen jedoch häufiger vor und sollen dann in Kombination mit dem Vornamen ausgegeben werden. Das Problem ist, dass ich nicht weiß wie ich eine passende Schleife da rein setzte, dass der solange sucht bis Vorname und Nachname in der gleiche Row gefunden werden.
Das ist mein Ansatz:
Das mit der Schleife stimmt vorne und hinten nicht,... wäre über Hilfe sehr dankbar.
Liebe Grüße
ich versuche Namen zu suchen in einer Tabelle. In A stehen die Nachnamen, in B Vornamen. Das ganze soll in einer VBA User Form geschehen.
Einzelne Nachnamen zu suchen ist kein Problem, Namen wie Müller, Meier etc. kommen jedoch häufiger vor und sollen dann in Kombination mit dem Vornamen ausgegeben werden. Das Problem ist, dass ich nicht weiß wie ich eine passende Schleife da rein setzte, dass der solange sucht bis Vorname und Nachname in der gleiche Row gefunden werden.
Das ist mein Ansatz:
Zitat
Private Sub Such_Click()
Dim i As Integer
Dim rZelle As Range
Dim rZelle2 As Range
Dim sSuchbegriff As String
Dim sSuchbegriff2 As String
If Trim$(TextBox1.Value) <> "" Then
sSuchbegriff = Trim$(TextBox1.Value)
Else
MsgBox "Sie müssen einen Suchbegiff eingeben - danke.", _
48, " Hinweis für " & Application.UserName
Exit Sub
End If
If Trim$(TextBox2.Value) <> "" Then
sSuchbegriff2 = Trim$(TextBox2.Value)
Else
MsgBox "Sie müssen einen Suchbegiff eingeben - danke.", _
48, " Hinweis für " & Application.UserName
Exit Sub
End If
Do
i = 1
Set rZelle = ThisWorkbook.Worksheets("Daten").Cells(i, 1).Find(what:=sSuchbegriff, LookAt:=xlPart, LookIn:=xlValues)
Set rZelle2 = ThisWorkbook.Worksheets("Daten").Cells(i, 2).Find(what:=sSuchbegriff2, LookAt:=xlPart, LookIn:=xlValues)
If rZelle.Row = rZelle2.Row Then
With ThisWorkbook.Worksheets("Daten").Columns(1)
If Not rZelle Is Nothing Then
Label2.Caption = .Range("A" & rZelle.Row).Value
Label3.Caption = .Range("B" & rZelle.Row).Value
Label4.Caption = .Range("C" & rZelle.Row).Value
Label5.Caption = .Range("D" & rZelle.Row).Value
Label6.Caption = .Range("E" & rZelle.Row).Value
Label7.Caption = .Range("F" & rZelle.Row).Value
Label44.Caption = .Range("G" & rZelle.Row).Value
Label9.Caption = .Range("H" & rZelle.Row).Value
Label10.Caption = .Range("I" & rZelle.Row).Value
Label11.Caption = .Range("J" & rZelle.Row).Value
Label12.Caption = .Range("K" & rZelle.Row).Value
Label13.Caption = .Range("L" & rZelle.Row).Value
Label14.Caption = .Range("M" & rZelle.Row).Value
Label15.Caption = .Range("N" & rZelle.Row).Value
Label16.Caption = .Range("O" & rZelle.Row).Value
Label17.Caption = .Range("P" & rZelle.Row).Value
Label39.Caption = .Range("Q" & rZelle.Row).Value
Label40.Caption = .Range("R" & rZelle.Row).Value
Label41.Caption = .Range("S" & rZelle.Row).Value
Label42.Caption = .Range("T" & rZelle.Row).Value
Label43.Caption = .Range("U" & rZelle.Row).Value
Label45.Caption = .Range("V" & rZelle.Row).Value
' usw.
Else
MsgBox "Der Begriff """ & sSuchbegriff & """ wurde nicht gefunden.", _
48, " Hinweis für " & Application.UserName
With TextBox1
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
End With
Else
i = i + 1
Loop
End If
Set rZelle = Nothing
Set rZelle2 = Nothing
End Sub
Das mit der Schleife stimmt vorne und hinten nicht,... wäre über Hilfe sehr dankbar.
Liebe Grüße