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-Key: 277399

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

Printed on: April 20, 2024 at 14:04 o'clock

Mitglied: 114757
Solution 114757 Jul 15, 2015 updated at 15:52:12 (UTC)
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
Member: chef1568
chef1568 Jul 15, 2015 at 15:52:30 (UTC)
Goto Top
Danke, funktioniert face-smile
Gruß feder