Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1164to1168
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

Was bedeutet On Error Resume Next

Was bedeutet On Error Resume Next
Holger
Hallo,
oft lese ich diesen Code. Was bedeutet er?
Mein Problem. In meinen Makros gibt es kaum eine Fehlerbehandlung.
Manchmal passieren unvorhersehbare Dinge, dann steigt er mit einem Laufzeitfehler aus. Nicht schön für den User.
Wie kann man das vermeiden?

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Was bedeutet On Error Resume Next
30.06.2010 19:42:57
Beverly
Hi Holger,
das bedeutet, dass bei einem auftretenden Fehler die nächste Codezeile ausgeführt wird (ohne Fehlermeldung). Man sollte aber nach Möglichkeit On Error Resume Next nicht zur Fehlerbehandlung einsetzen, wenn es andere Möglichkeiten dafür gibt.
Man kann es natürlich verwenden, wenn man auf diesem Weg gezielt etwas bestimmtes erreichen will. Auf jeden Fall ist es aber mit großer Vorsicht zu genießen und man sollte auch nach dem Code-Teil, wo ein gezielter Fehler "übersprungen" wird, dies mit On Error Goto 0 zurücksetzen. Andernfalls kann es passieren, dass der Code Dinge tut, die man gar nicht geplant hat. Und bei einer Fehlersuche - also wenn ein Code irgend etwas anderes als gewünscht macht - sollte man die Zeile On Error Resume Next auf jeden Fall auskommentieren, sonst findet man den Fehler nicht, da er ja sozusagen ignoriert wird.
Da aber niemand deinen Code kennt, kann man das in deinem konkreten Fall auch schlecht sagen, was da am zweckmäßigsten ist.


Anzeige
AW: Was bedeutet On Error Resume Next
30.06.2010 20:08:27
Holger
Hi Karin,
Danke für die Antwort.
Dann bringt kich On Error resume next nicht weiter.
Bislang habe ich zwei Fehlerquellen entdeckt, eine davon ungeklärt:
1. Unter bestimmten (ungeklärten Umständen, vielleicht wenn eine andere Excel Datei geöffnet wird), funktioniert die Tabellenblattzuweisung nicht (SET wks = Blabla)
2. Wenn eine Datendatei nicht verfügbar ist, weil sie jemand z.B vergessen hat zu kopieren.
AW: Was bedeutet On Error Resume Next
30.06.2010 20:36:58
Beverly
Hi Holger,
zu 1. der Fehler tritt dann auf, wenn die betreffende Tabelle nicht vorhanden ist - hier kann man mit On Error gezielt einen Fehler abfangen indem man die Tabelle auf die Variable schreibt und dann den Inhalt der Variablen prüft. Die Variable ist Nothing, wenn die Tabelle nicht xistiert:
    On Error Resume Next
Set wks = Worksheets("Tabelle3")
On Error GoTo 0
If wks Is Nothing Then MsgBox "Tabelle existiert nicht"

Nach dem Then natürlich den Code, der im betreffenden Fall - Tabelle nicht vorhanden - ausgeführt werden soll. Man kann es logischer Weise auch umgedreht machen in dem man stattdessen das Vorhandensein auswertet:
    If Not wks Is Nothing Then MsgBox "Tabelle existiert"

Das konkrete WIE hängt ganz von den Bedingungen ab, was man weiterverarbeiten will.
zu 2. wenn es sich um eine Datei handelt die geöffnet werden soll, dann könnte man zuerst prüfen, ob sie in dem Verzeichnis vorhanden ist. Schau dir dazu mal in der VBA-Hilfe die Funktion Dir() an.


Anzeige
AW: Was bedeutet On Error Resume Next
30.06.2010 20:37:51
Beverly
Hi Holger,
zu 1. der Fehler tritt dann auf, wenn die betreffende Tabelle nicht vorhanden ist - hier kann _ man mit On Error gezielt einen Fehler abfangen indem man die Tabelle auf die Variable schreibt und dann den Inhalt der Variablen prüft. Die Variable ist Nothing, wenn die Tabelle nicht xistiert:

On Error Resume Next
Set wks = Worksheets("Tabelle3")
On Error GoTo 0
If wks Is Nothing Then MsgBox "Tabelle existiert nicht"

Nach dem Then natürlich den Code, der im betreffenden Fall - Tabelle nicht vorhanden - ausgeführt werden soll. Man kann es logischer Weise auch umgedreht machen in dem man stattdessen das Vorhandensein auswertet:
    If Not wks Is Nothing Then MsgBox "Tabelle existiert"

Das konkrete WIE hängt ganz von den Bedingungen ab, was man weiterverarbeiten will.
zu 2. wenn es sich um eine Datei handelt die geöffnet werden soll, dann könnte man zuerst prüfen, ob sie in dem Verzeichnis vorhanden ist. Schau dir dazu mal in der VBA-Hilfe die Dir-Funktion an.


Anzeige
AW: Was bedeutet On Error Resume Next
30.06.2010 20:43:22
Daniel
HI
man kann schon "On Error Resume Next" einsetzen, aber man sollte dann schon genau wissen, was man tut.
einfach nur pauschal oben ins Makro schreiben führt nur seltsamen Ergebnissen, deren Ursache keine findet, weil das Makro an der Fehlerstelle nicht stoppt.
hier mal ein Beispiel für einen sinnvollen Einsatzt.
am Beispiel deines ersten Falls, der User hat die falsche Datei geöffnet und das Blatt "blabla" existiert nicht:
On Error Resume Next
Set wks = blabla
On Error Goto 0
If wks is Nothing then
Msgbox "Falsche Datei, das Blatt "blabla" ist nicht vorhanden."
Else
'hier folgt dann der weitere Code
End if
Beachte, das "On Error Resume Next" gilt nur für den Befehl, bei dem der Fehler passiern darf.
danach wird die Option sofort deaktiviert und es erfolgt eine Prüfung, ob die Aktion erfolgreich war oder ob ein Fehler passiert ist.
Gruß, Daniel
Anzeige
AW: Was bedeutet On Error Resume Next
30.06.2010 19:44:30
Nepumuk
Hallo,
indem du möglichst alle Möglichkeiten berücksichtigst. Erst bei völlig unvorhersehbaren Ereignissen (z.B. der Chef geht persönlich an den Rechner) soll der Errorhandler das abfangen. Dieser sollte aber nicht einfach weitermachen, denn das bewirkt On Error Resume Next, sondern eine 1. Aussagekräftige Meldung ausgeben. 2. Ein Protokoll erstellen mit Datum, Uhrzeit, Benutzername, Computername, Fehlernummer, Fehlerbeschreibung sowie Zeile und Prozedur in welcher der Fehler auftrat. Außerdem sollte er merken wenn er in eine Endlosschleife gerät und in diesem Fall das ganze Programm zwangsweise beenden.
Wenn du jetzt wissen willst wie du das machen kannst, dann schau hier in das Forenarchiv. Es genannten Punkte wurde alle schon vielfach behandelt.
Gruß
Nepumuk
Anzeige

76 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige