Mein ErrorMakro: Klappt irgendwie nicht
Holger,
so, ich habe nun ein kleines Makro zur Fehlerbehandlung geschrieben, das ich an dieser Stelle eigentlich allen zeigen wollte. Sorry also für den zweiten Thread zum ähnlichen Thema.
Leider funktioniert es nicht so wie gewünscht. Als Erstes, der Prozedurname wird als globale Variable gehalten, da es anscheinend keine Methode gibt, den Names des aktuell laufenden zu ermitteln.
Ok, hier der Code. Die Idee ist folgende: Ganz gleich in welcher Prozedur, wenn ein Fehler auftritt, soll der User die Möglichkeit haben, den Code fortzusetzen. Daher das Resume Next unter Hell:.
Alles klappt soweit, nur läuft er nach erfolgreicher Fehlerbehandlung wieder in selbiges Makro, produziert dadurch wieder einen fehler, da Resume Next ohne Error usw.
Was mache ich falsch: Der Stop: Befehl hat auch nicht funktioniert.
Public strProzedurName As String
Sub test()
Dim intTest As Integer
strProzedurName = "test"
On Error GoTo Hell
intTest = 2 / 0
MsgBox "Bin wieder da"
MsgBox "Bin nochmal da"
Hell:
Call ThisIsHell(err)
Resume Next
End Sub
Sub ThisIsHell(err As Object)
Dim strMessage As String, strTitel As String
strTitel = ThisWorkbook.Name & ": Fehlerschutzsystem"
strMessage = "Es ist ein Fehler aufgetreten um " & Time() & vbNewLine & vbNewLine & _
"Prozedur: " & strProzedurName & vbNewLine & _
"Nummer: " & err.Number & vbNewLine & _
"Beschreibung: " & err.Description & vbNewLine & vbNewLine & _
"Sie können versuchen, das Programm mit Yes fortzusetzen. Möchten Sie das _
tun?"
If MsgBox(strMessage, vbExclamation + vbYesNo, strTitel) = vbYes Then
Else
End
End If
Exit Sub
End Sub
P.S. der If und Else Zweig sind noch leer, da es momentan ja eh nicht klappt.