Mein lieber megawunk,
erstmals solltest du Gast01234 danken, dass er dir die Struktur deines Codes so deutlich aufzeigt.
Dann erkennt man(n) selbst ohne große Kenntnis, wo die logischen Löcher und warum du Cancel
ohne Yes nie erreichst.
NoBody Is Perfect, man(n) kann es eben keinem Recht machen, aber versuche es einmal so
Schönes Wochenende
Gast43210
Option Explicit
'Suchbegriff
'Arbeitsblatt wo gestartet
'Für gewöhnlich Suche im Kreis, d.h. ab ActiveSheet ans Ende und dann ab Anfang
'Kein Treffer = Abfrage Neuer Begriff / Ende
'Treffer =
'Abfrage weitere Suche
'= wenn JA - weitere Suche
' - im aktuellen Arbeitsblatt
' - nächste Blätter
'= wenn Nein - Treffer bleibt Aktiv
'= wenn Abbruch - Zurück in Start Arbeitsblatt
Sub MeineSuche()
Dim x As Long, start As Long 'index of worksheet
Dim SSearch As String
Dim c As Range, fa As String
Dim Flag As Boolean
GoOn:
SSearch = InputBox("Suchen nach:", "Stichwort-Suche / Suchfunktion", SSearch)
If SSearch = "" Then End
start = ActiveSheet.Index: x = start
Do
With Sheets(x)
Set c = .Cells.Find(SSearch, LookIn:=xlValues, MatchCase:=False)
If Not c Is Nothing Then
Flag = True
Sheets(x).Activate
fa = c.Address
Do
c.Activate
Select Case MsgBox("Weitersuchen?", vbQuestion + vbYesNoCancel, "")
Case vbYes
Set c = .Cells.FindNext(c)
Case vbNo
End
Case vbCancel
Select Case MsgBox("Neue Suche?", vbInformation + vbYesNo, "")
Case vbYes
GoTo GoOn
Case vbNo
GoTo NoGo
Case Else
GoTo Break
End Select
Case Else
GoTo Break
End Select
Loop While Not c Is Nothing And c.Address <> fa
End If
End With
x = IIf(x + 1 > Sheets.Count, 1, x + 1)
If x = ActiveSheet.Index Then Exit Do
Loop
NoGo:
Sheets(start).Activate
If Flag = False Then Call MsgBox(SSearch & " nicht gefunden", vbExclamation, "")
If MsgBox("Suche wiederholen?", vbInformation + vbYesNo, "") = vbYes Then GoTo GoOn
Break:
End Sub
|