ich habe folgendes Problem, ich habe eine Listbox in meiner VBA Maske die über eine Suchfunktion nach einem bestimmten Kriterium Daten anzeigt.
Ich habe Station 1 bis 30. Meine Listbox zeigt mir aber nicht nur Daten für z.B. Station 2 an. Sondern zeigt mir die Daten für die Station 2, 12 und 22 an. Dieser Fehler folgt bei Station 1 bis 9. Suche ich z.b. nach Station 10 und höher, folgt der Fehler nicht mehr. Ich kann mir leider nicht weiterhelfen. Vielleicht hat einer von euch eine Idee woran es liegen könnte? Mein Code sieht wie folgt aus:
Private Sub Suchen_Click()
Dim rng As Range
Dim strFirst As String
Dim vtmp() As Long
If Len(Trim(StationSuche)) = 0 Then
MsgBox "Bitte geben Sie eine gültige Station ein!", vbCritical + vbOKOnly, "Eingabefehler!"
Exit Sub
End If
ReDim vtmp(0)
With ActiveSheet
ListBox1.Clear
Set rng = .Range("A:C").Find(What:=StationSuche, Lookat:=xlPart)
If Not rng Is Nothing Then
strFirst = rng.Address
Do
If Not (IsNumeric(Application.Match(rng.Row, vtmp, 0))) Then
ReDim Preserve vtmp(UBound(vtmp) + 1)
vtmp(UBound(vtmp)) = rng.Row
ListBox1.AddItem .Cells(rng.Row, 1)
ListBox1.List(ListBox1.ListCount - 1, 1) = .Cells(rng.Row, 1)
ListBox1.List(ListBox1.ListCount - 1, 2) = .Cells(rng.Row, 7)
ListBox1.List(ListBox1.ListCount - 1, 3) = .Cells(rng.Row, 14)
ListBox1.List(ListBox1.ListCount - 1, 4) = rng.Row
End If
Set rng = .Range("A:C").FindNext(rng)
Loop While Not rng Is Nothing And rng.Address strFirst
End If
End With
If ListBox1.ListCount > 0 Then
ListBox1.ListIndex = 0
Else
MsgBox "Bitte geben Sie eine gültige Station ein!", vbExclamation
StationSuche = ""
End If
Set rng = Nothing
End Sub
Gruß Sören