Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1200to1204
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mein ErrorMakro: Klappt irgendwie nicht

Mein ErrorMakro: Klappt irgendwie nicht
Holger,
Hallo,
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.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Mein ErrorMakro: Klappt irgendwie nicht
28.02.2011 13:30:50
Rudi
Hallo,
vor Hell: muss ein Exit Sub.
Außerdem solltest du bei 'Ja' in der Fehlerbehandlung Err löschen.
Btw.: Err ist ein VBA-Objekt und wird bestückt (mit Eigenschaften versehen) wenn ein Fehler auftritt. Das darfst du nicht als eigene Variable benutzen und brauchst du nicht extra an die Fehlerbehandlung zu übergeben.
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"
Exit Sub
Hell:
Call ThisIsHell
Resume Next
End Sub
Sub ThisIsHell()
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
err.Clear
Else
End
End If
End Sub
Gruß
Rudi
Anzeige
AW: Mein ErrorMakro: Klappt irgendwie nicht
28.02.2011 14:14:53
Holger,
Hi Rudi,
Danke für deine Anpassungen, nun läuft es wie gewünscht.
Nur jetzt muss ich daran denken, in jeder Prozedur, in der ich die Fehlerbehandlung einbaue, am Ende derselbigen das Exit Sub einzubauen, richtig?
Hast du noch eine Idee, wie man von allen Prozeduren diejenige rausfinden kann, welche gerade aktiv ist, also läuft? Weil dann könnte ich durch die VBE Components schleifen und hätte so den namen der Fehlerprozdur.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige