Hallo Hady,
komisch, in deiner Ursprungsfrage hast du das genau umgekehrt beschrieben. Da wolltest du nach Bauleiter INTERN 1 suchen. Seis drum. Dann schmeißen wir eben das INTERN raus.
Probier mal den folgenden Code:
Sub ZeileSuchen()
gesuchtePerson = "Bauleiter INTERN 1"
p1 = InStr(gesuchtePerson, " "): p2 = InStrRev(gesuchtePerson, " ")
If p2 > p1 Then gesuchtePerson = Left(gesuchtePerson, p1) & Right(gesuchtePerson, Len(gesuchtePerson) - p2)
Vergleich = Left(gesuchtePerson, 3) & "*" & Right(gesuchtePerson, Len(gesuchtePerson) - InStr(gesuchtePerson, " "))
Set c = Columns("G:G").Find(gesuchtePerson) 'sucht nach Bauleiter 1
If c Is Nothing Then Set c = Vergleich 'sucht nach Bau*1
If Not c Is Nothing Then gefundeneZeile = c.Row
End Sub
Zuerst wird alles zwischen dem ersten und dem letzten Leerzeichen entfernt. Sodass "Bauleiter 1" rauskommt. Danach kann man dann suchen. Wird das nicht gefunden, z.B. wegen Tippfehlern, wird stattdessen der Vergleich herangezogen der nach "Bau*1" sucht. Gefunden wird eine Zelle vom Typ Range, dessen Eigenschaft .Row die Zeile an deine Variable zurückgiebt.
Vielleicht hilft dir das weiter.
Gruß Mr. K.
|