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

Wenn Fehler, dann....

Wenn Fehler, dann....
20.10.2021 07:52:13
Martin
Guuuuuten Morgen =)
ich habe eine simple Funktion.
Jetzt würde ich gerne, dass bei einem Fehler statt dem Debugger eine andere Operation (z.B. MsgBox oder Eintrag in die Zelle) ausgeführt wird, sonst wie gehbat.
Dankeschön schonmal :)
p.s. die Kommentare sind für mich, damit ich es später besser nachvollziehen kann ;)
Dim Zeit1, Zeit2 As Date
For i = 33 To 36
Zeit1 = Cells(i, 4).Value
Zeit2 = Cells(i, 5).Value
'DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
MsgBox DateDiff("n", Zeit1, Zeit2) 'n=Minuten, h=Stunden,s=Sekunden, d=Tage
Next i

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn Fehler, dann....
20.10.2021 08:00:43
Oberschlumpf
Hi Martin,
versuch es so...

Dim Zeit1, Zeit2 As Date
On Error GoTo Fehler
For i = 33 To 36
Zeit1 = Cells(i, 4).Value
Zeit2 = Cells(i, 5).Value
'DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
MsgBox DateDiff("n", Zeit1, Zeit2) 'n=Minuten, h=Stunden,s=Sekunden, d=Tage
Next i
Fehler:
If Err.Number > 0 Then
MsgBox "Es ist ein Fehler aufgetreten"
End If
...Hilfts?
Ciao
Thorsten
btw...Zeit1 musst du auch als Date deklarieren
AW: Wenn Fehler, dann....
20.10.2021 09:54:11
Martin
Hallo Thorsten,
ja vielen Dank!
Habe es noch leicht angepasst. Den On Error in die Forschleife gezogen, da es die Errornummer sonst nicht zurücksetzt?!
Ebenso den Sprungmarker Fehler am Ende der Forschleife.
Ist das On Error immer aktiv sobald es einmal durchschritten wurde?
Weil der Fehler passiert ja beim Füllen von Zeit1 und 2.
Dankeschön.
Anzeige
AW: Wenn Fehler, dann....
20.10.2021 10:17:29
Oberschlumpf
Hi Martin,
versuch es noch mal mit meinem Code (etwas von mir verändert):

Dim Zeit1, Zeit2 As Date
On Error GoTo Fehler
For i = 33 To 36
Zeit1 = Cells(i, 4).Value
Zeit2 = Cells(i, 5).Value
'DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
MsgBox DateDiff("n", Zeit1, Zeit2) 'n=Minuten, h=Stunden,s=Sekunden, d=Tage
Next i
Fehler:
If Err.Number > 0 Then
MsgBox "Es ist ein Fehler aufgetreten"
End If
On Error GoTo 0 'das letzte Zeichen ist eine Null, es ist nicht ein O wie Otto!
Ja, wenn On Error Goto irgdwas, dann ist On Error immer EINgeschaltet
Daher hilft es nix, wenn du On Error... innerhalb von For... einfügst.
Aber das konntest du noch nicht wissen.
Mein Fehler war, dass ich vergessen hatte, unterhalb von Fehler: On Error... mit On Error GoTo 0 wieder AUSzuschalten
Jetzt sollte alles auch mit meinem Code funktionieren.
Hilfts?
Ciao
Thorsten
Anzeige
AW: Wenn Fehler, dann....
20.10.2021 10:44:17
Martin
Seltsamerweise reicht es aus On Error GoTo Fehler in die Forschleife zu packen, um nicht if Err.Number > 0 bei weiteren Durchgängen auszulösen.
Alternativ habe ich in der Ifschleife noch Err.Number = 0 gesetzt.
Blöd so oder gut?
Bin irgendwie etwas skeptisch noch mehr On Errors reinzupacken, da ich jeden Durchgang der Forschleife erneut auf den Fehler schauen möchte.

Dim Zeit1, Zeit2 As Date
For i = 33 To 36
On Error GoTo Fehler
Zeit1 = Cells(i, 4).Value
Zeit2 = Cells(i, 5).Value
'DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
MsgBox DateDiff("n", Zeit1, Zeit2) 'n=Minuten, h=Stunden,s=Sekunden, d=Tage
Fehler:
If Err.Number > 0 Then
MsgBox "Es ist ein Fehler aufgetreten bei " & i
Err.Number = 0
End If
Next i

Anzeige
AW: Wenn Fehler, dann....
20.10.2021 11:23:29
Oberschlumpf
hi, melde mich heut abend wieder - muss jetzt zur Arbeit
AW: Wenn Fehler, dann....
20.10.2021 11:25:39
Oberschlumpf
du könntest mir per upload eine kleine Bsp-datei mit deinem code zeigen. dann könnte ich dir den code einbauen...
einige bsp-daten sollten auch enthalten sein - halt alles so in der datei von dir, dass diese auch zu deiner frage passt
AW: Wenn Fehler, dann....
20.10.2021 14:03:41
Martin
Hi Thorsten,
klappt ja beides bzw. alles drei ;)
Vielen lieben Dank jedenfalls für dein Angebot, brauche ich vielleicht eher mal wenn ich echt nicht mehr weiter weiß.
Ich war vor allem neugierig, ob die beiden Lösungen schlecht programmiert sind, a) nicht dass es mir später auf die Füße fällt b) ich was lernen kann.
Dir noch einen guten Tag auf Arbeit und nochmal Danke!
Grüße Martin
Anzeige
AW: Wenn Fehler, dann....
20.10.2021 17:39:27
Oberschlumpf
Hi Martin
ja, deine Version ist "schlecht" programmiert.
Es reicht völlig, den Befehl On Error Goto... nur 1x auszuführen.
So lange das ganze Makro nicht beendet ist. und so lange mit On Error GoTo 0 die Fehlerverfolgung nicht wieder de-aktiviert wird, ist sie aktiv.
Deswg ist es also überflüssig, den On Error...-Befehl in deine For/Next-Schleife einzubinden.
Ja, ich weiß - das - funktioniert auch...aber trotzdem ist es unsauber programmiert.
Ciao
Thorsten

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige