ich schreibe gerade ein Makro, in dem ich per Suchfunktion einen String suche. Solange der String gefunden werden kann, ist alles in Ordnung. Gibt es den String jedoch in der Tabelle nicht, stürzt das Makro ab. Hat jemand einen guten Tipp für mich?
Vielen Dank, Nikolaus
Code:
Sub FindATB_v2()
' FindATB Macro
' by Nikolaus Schumacher
' Sucht ATB-Nummer aus einer Tabelle
' Variables:
Dim Cntr_No, ATB_No, Response, MyStr, YesNo, Status
YesNo = vbYes ' Erst einmal soll der Loop loslaufen
Do Until YesNo = vbNo ' Loop-Anfang
' Ask for input...
Cntr_No = InputBox("Bitte Containernummer eingeben." & Chr(13) & "Ein Bruchstück (z.B. '123456' kann ausreichen!")
If Cntr_No = "" Then GoTo ENDE ' So fange ich den [Cancel]-Button ab
' .. go looking for it.
Cells.Find(What:=Cntr_No, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
' Fehlerbehandlung, wenn der String nicht gefunden werden kann...
' Hier brauche ich ein wenig Unterstützung...
If Status = False Then _
MsgBox ("Fehler")
ActiveCell.Offset(0, 1).Activate ' In Feld mit ATB-Nr wechseln
ATB_No = Mid(ActiveCell, 7, 7) ' Die richtigen Zahlen suchen
MyStr = Format(ATB_No, "0 00 00 -00") ' Suchergebnis formatieren
YesNo = MsgBox("Die ATB-Nr. lautet: '" & MyStr & "' - Soll eine weitere Nummer gesucht werden?", vbYesNo)
Loop ' Loop-Ende
' Ende vom Makro...
ENDE:
End Sub