Noch nie was von strukturierter Prtogrammierung gehört?
Den Code kann doch keiner lesen, ohne Kopfschmerzen zu bekommen.
Wieso rufst du MsgBox 3 mal auf ?
Mit
Ausgangsblatt = ActiveSheet.Name
wird die Variable "Ausgangsblatt" mit dem Namen des aktuellen Blattes gesetzt.
Bei Cancel willst du mit:
Sheets(Ausgangsblatt). Select auf das aktuelle Blatt springen??
Da du aber zwischenzeitlich kein anderes Blatt aufgerufen hast, ist Ausganmgsblatt sowieso schon gewählt.
Hast du den Schrott eigentlich selbst "programmiert" ?
Hier - dsmit du mal deinen Code lesen kannst:
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
|