Ich habe eine Suchfunktion in meiner Userform per VBA integrieren können, welche folgenden Code beinhaltet (die Suche findet per Enter-Button statt):
Private Sub CommandButton12_Click()
Dim StrSuch As String, firstadr As String, weiter%, sucher As Variant
If KeyCode = 13 Then
'Suche durchführen auf Button (inaktiv):
StrSuch = TextBox1.Text
If StrSuch "" Then
With Sheets("Übersicht").Range("a5:a6000")
Set sucher = .Find(what:=StrSuch, Lookat:=xlWhole)
If Not sucher Is Nothing Then
firstadr = sucher.Address
ListBox1.ListIndex = sucher.Row - 5
weiter = MsgBox("Weitersuchen?", 36)
If weiter = 6 Then
Do
Set sucher = .FindNext(sucher)
ListBox1.ListIndex = sucher.Row - 5
weiter = MsgBox("Weitersuchen?", 36)
If weiter = 7 Then Exit Sub
Loop While Not sucher Is Nothing And sucher.Address firstadr
End If
End If
End With
End If
End If
End Sub
Die Suche funktioniert auch soweit Prima, jedoch nur für die Stoffbezeichnungen (Spalte A) vermutlich weil diese auch in der ListBox hinterlegt ist! Kurze Übersicht:
In Spalte A der Tabelle steht die "Stoffbezeichnung", in Spalte B eine "Alternative oder IUPAC-Bezeichnung" und in Spalte C steht eine "CAS-Nummer".
Bisher sucht das Marko also nur in Spalte A nach den eingegebenen Begriff und macht einen Abgleich mit den Begriffen aus ListBox1, wo auch nur die Stoffbezeichnungen aufgelistet sind und keine weiteren Merkmale. Nun wäre die Frage, ob man die Suche auf die anderen Spalten ausweiten könnte OHNE dass die Begriffe überhaupt verglichen werden, er soll also lediglich Spalte A, B, C des Excel Dokuments nach den eingegebenen Suchbegriff durchforsten und dann Row des Excel Dokuments -5 in der ListBox markieren (da die ListBox bei 1 beginnt, jedoch das Excel-Sheet in Zeile 5)
Ich habe schon herumgewerkelt mit Range und versucht ohne einen Abgleich der ListBox irgendeine Lösung zustande zu kriegen, jedoch bisher ohne Erfolg...
Habt ihr vielleicht eine pfiffige Idee und könnt mir weiterhelfen?
Lieben Gruß