Hallo liebe Forumsmitglieder,
ich habe eine Suchfunktion, welche alle Tabellenblätter nach Eingabe eines Suchbegriffes durchsucht.
Eine MsgBox bietet bei einem Fund folgende Auswahl:
"Ja" für weitersuchen - das funktioniert
"Nein" für das Beenden der Suche - funktioniert auch, man verbleibt auf dem Tabellenblatt wo sich das aktuelle Suchergebnis befindet
"Abbrechen" hier soll wieder auf das TAbellenblatt gesprungen werden von dem aus die Suche gestartet wurde - hier funktioniert der Code nicht, es wird nicht auf das Ausgangsblatt gesprungen.
Hier der Code:
Sub Suchen()
Dim ws As Worksheet
Dim c
Dim firstAddress As String
Dim secAddress
Dim GFound As Boolean
Dim GWeiter As Boolean
Dim Ausgangsblatt As Variant
Ausgangsblatt = ActiveSheet.Name
GWeiter = False
GFound = False
anf:
SSearch = InputBox("Suchen nach:", "Stichwort-Suche / Suchfunktion", SSearch)
If SSearch = "" Then
End
End If
weiter:
For Each ws In Worksheets
With ws.Cells
Set c = .Find(SSearch, LookIn:=xlValues, MatchCase:=False)
If Not c Is Nothing Then
GFound = True
ws.Select
c.Select
firstAddress = c.Address
If MsgBox("Weitersuchen?", vbQuestion + vbYesNoCancel) = vbYes Then
Do
Set c = .FindNext(c)
secAddress = c.Address
If c.Address = firstAddress Then
Exit Do
End If
c.Select
If MsgBox("Weitersuchen?", vbQuestion + vbYesNoCancel) = vbCancel Then
Sheets(Ausgangsblatt).Select 'Dieses Tabellenblatt soll bei Abbruch aufgerufen werden
GoTo abbruch
End If
c.Select
If MsgBox("Weitersuchen?", vbQuestion + vbYesNoCancel) = vbNo Then
GWeiter = True
GoTo ende
End If
Loop While Not c Is Nothing And secAddress <> firstAddress And c.Address <> firstAddress
Else
GWeiter = True
GoTo ende
End If
End If
End With
Next ws
ende:
If GFound = False Then
If MsgBox("Suchwert nicht gefunden! Neue Suche?", vbInformation + vbYesNo) = vbYes Then
GoTo anf:
End If
Else
If GWeiter = False Then
If MsgBox("Es wurden alle in Frage kommenden Namen angezeigt! Soll die Suche neu gestartet werden?", vbInformation + vbYesNo) = vbYes Then
GoTo weiter
Else
Sheets(Ausgangsblatt).Select 'Hier funktioniert der Code, das Tabellenblatt wird aufgerufen.
End If
End If
End If
abbruch:
End Sub
Wo liegt da der Fehler?
Danke schonmal wieder im voraus für eure Hilfe!
|