ich bitte um einen Tipp bei dem folgenden Fehler: Ich will eine Suche über alle Tabellenblätter _ (TBs) durchführen. Über das akt. TB funktioniert das, aber bei der Methode FIND auf alle Worksheets wird statt eines Range-Objektes der Wert zurückgegeben. Habe schon diese Abhilfe für Fehler 91 eingesetzt, aber darum geht es nicht. Fehler ist 1004 (mein Lieblingsfehler). Nicht def. Variablen sind global.
Sub SuchenMitOptionenAusfuehrenNormal()
Dim rng As Range
Dim tb As Object
Dim a As Variant
If alleTBs Then
For Each tb In Worksheets
On Error GoTo Fehler1
' HIER WIRD DER FEHLER SEIN: wahrscheinlich wird das Objekt nicht richtig angesprochen:
Set rng = tb.Cells.Find(What:=ss, _
After:=ActiveCell, _
lookIn:=lookIn, _
lookAt:=lookAt, _
searchOrder:=searchOrder, _
SearchDirection:=xlNext, _
matchCase:=matchCase, _
SearchFormat:=False)
Fehler1:
If rng Is Nothing Then
a = MsgBox("Suche nach """ & ss & """: kein Treffer.", _
vbInformation & vbOKOnly, ctitel)
Else
rng.Activate ' Fehler: rng erhält hier die Standardeigenschaft der _
Trefferzelle, den Wert. Der Fehler tritt nicht auf, wenn kein Treffer auf dem betr. TB ist.
End If
On Error Resume Next
Next tb
Else
Set rng = ActiveSheet.Cells.Find(What:=ss, _
After:=ActiveCell, _
lookIn:=lookIn, _
lookAt:=lookAt, _
searchOrder:=searchOrder, _
SearchDirection:=xlNext, _
matchCase:=matchCase, _
SearchFormat:=False)
If rng Is Nothing Then
a = MsgBox("Suche nach """ & ss & """: kein Treffer.", _
vbInformation & vbOKOnly, ctitel)
Else
rng.Activate
End If
End If
Set rng = Nothing
End Sub
Danke für das Durchsehen und die Mühe!
Thomas