|  
                                             
	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 
	  
	  
	  
	  
     |