chef1568
Goto Top

Excel VBA - mehrfache Verwendung "On Error GoTo" - Laufzeitfehler 9 beim 2.ten Durchlauf

Hallo zusammen,

ich habe ein Problem mit der Fehlerbehandlung in Excel.

Funktion Makro:
- Prüfung eines Tabellenblattes ob vorhanden --> Tabellenblattes Löschen
- Prüfung einer Zeile ob vorhanden --> Zeile Löschen

Problem:
Sobald die Fehlerroutine einmal abgearbeitet wurde und ich ein 2.tes Mal den Laufzeitfehler 9 erhalte (Zeile oder Tabellenblatt nicht vorhandnen) wird die Fehlerbehandlung nicht mehr ausgeführt.
Leider weiß ich nicht warum.

Versuch 1:
    For iFzg = 0 To iNewFZG
        If FZG(iFzg, 5) = "TRUE" Then  
            'Lösche Worksheet  
            Fahrzeug = FZG(iFzg, 4)
            On Error GoTo Error1
            Worksheets(Fahrzeug).Delete
            GoTo delRow
Error1:     MsgBox ("Tabellenblatt " & Fahrzeug & " nicht gefunden!"), vbCritical, "Fehler beim Löschen"  
            On Error GoTo 0

delRow:     'Lösche Zeile in Fahrzeugübersicht  
            iRow = Cells.Find(What:=Fahrzeug).row
            On Error GoTo Error2
            Worksheets("Fahrzeugübersicht").Rows(iRow & ":" & iRow).Delete  
            GoTo Ende
Error2:     MsgBox ("Zeilefür Fahrzeug " & Fahrzeug & " nicht mehr vorhanden!"), vbCritical, "Fehler beim Löschen"  
            On Error GoTo 0

Ende:   End If
    Next

Versuch 2:
    For iFzg = 0 To iNewFZG
        If FZG(iFzg, 5) = "TRUE" Then  
            'Lösche Worksheet  
            Fahrzeug = FZG(iFzg, 4)
            On Error GoTo Error1
            Worksheets(Fahrzeug).Delete

            'Lösche Zeile in Fahrzeugübersicht  
delRow:     iRow = Cells.Find(What:=Fahrzeug).row
            On Error GoTo Error2
            Worksheets("Fahrzeugübersicht").Rows(iRow & ":" & iRow).Delete  
            GoTo Ende
           
            'Fehlerbehandlung  
Error1:     MsgBox ("Tabellenblatt " & Fahrzeug & " nicht gefunden!"), vbCritical, "Fehler beim Löschen"  
            On Error GoTo 0
            Err.Clear
            GoTo delRow
            
Error2:     MsgBox ("Zeilefür Fahrzeug " & Fahrzeug & " nicht mehr vorhanden!"), vbCritical, "Fehler beim Löschen"  
            On Error GoTo 0
            Err.Clear
            GoTo Ende

Ende:   End If
    Next

Vielen Dank schonmal für die Unterstützung.
Feder

Content-ID: 277399

Url: https://administrator.de/contentid/277399

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

114757
Lösung 114757 15.07.2015 aktualisiert um 17:52:12 Uhr
Goto Top
Moin,
lass das ganze Goto Gedöhns das ist ja grausam, mach es so:
On Error Resume Next
For iFzg = 0 To iNewFZG
    If FZG(iFzg, 5) = "TRUE" Then  
        Fahrzeug = FZG(iFzg, 4)
        Worksheets(Fahrzeug).Delete
    	If Err.Number <> 0 Then
    	    MsgBox ("Tabellenblatt " & Fahrzeug & " nicht gefunden!"), vbCritical, "Fehler beim Löschen"  
            Err.Clear
        End If
	Set r = Cells.Find(What:=Fahrzeug)
	If Not r Is Nothing Then
            Worksheets("Fahrzeugübersicht").Rows(r.Row & ":" & r.Row).Delete  
        End If
    End If
Next
Gruß jodel32
chef1568
chef1568 15.07.2015 um 17:52:30 Uhr
Goto Top
Danke, funktioniert face-smile
Gruß feder