Resume next....wohin positionieren

Betrifft: Resume next....wohin positionieren
von: STeve
Geschrieben am: 08.10.2020 13:59:45
Hi liebe Helfer/Könner/Gönner..…...bitte um wieder mal um eure Hilfe.
In einem Modul start () werden 4 Module (Test 1 bis 4) abgearbeitet wo immer ein Laufzeitfehler Nr. 11 eingearbeitet ist.
Habe einen Errorhandler gebaut.
Es soll nur den Fehler auslesen und jeden Fehler auf ein dafür eigens erstelltes Blatt "Fehlerauslese" schreiben.
Danach soll es im betreffenden Modul den Code fortsetzen und n i c h t zum nächsten Modul springen.
Anbei die Datei
https://www.herber.de/bbs/user/140733.xlsm
Besten Dank für eure Lösungen
glg STeve

Betrifft: AW: Resume next....wohin positionieren
von: Daniel
Geschrieben am: 08.10.2020 14:43:56
hi
da musst du für jedes der TestX-Makros ein eigenes Error-Handling programmieren.
das On Error Resume Next gilt nur im selben Marko, aber nicht in den aufgerufenen Sub-Prozeduren.
wobei ich es bevorzuge, auf Errorhändlings zu verzichten und mögliche Fehlerursachen vorab zu prüfen.
dh wenn eine Division durchgeführt wird, dann erfolgt vor die Division die Sicherheitsabfrage: if DIVISOR = 0
Sofern man die Möglichen Fehlerursachen vorab bestimmen kann, ist das in der Regel der bessere Weg.
Errorhändlings macht man eher dann, um sich gegen nicht vorhergesehene oder nicht abprüfbare Fehler abzusichern.
Gruß Daniel

Betrifft: AW: Resume next....wohin positionieren
von: STeve
Geschrieben am: 08.10.2020 14:59:12
Hallo Daniel......
danke für deine Antwort. Leider ist sie nicht erfreuend. :-(
….dann werde ich mich mal daran machen für
jedes Makro ein Handling zu entwickeln.
..bis jetzt konnte ich darauf verzichtet - jetzt wird es aber notwendig. Fehlerursachen vorher bestimmbar - leider negativ.
gegen nicht vorhergesehene oder nicht abprüfbare Fehler abzusichern- genau das wäre mein Gedanke.
dir noch einen schönen Tag und mfg
STeve

Betrifft: AW: Resume next....wohin positionieren
von: Frank Svoboda
Geschrieben am: 08.10.2020 15:17:08
Hallo STeve,
die Fehlerbehandlung von VBA ist schon iregendwie tückisch. Ich versuche es immer so einfach wie möglich zu halten. Das Problem in Deinem Script ist, dass der Fehler in den Subs
textX ausgelöst wird und nicht in
start. Ob und wie es in VBA möglich ist, dass der Fehler nach
start »hochblubbert«, weiß ich nicht.
(Aber vielleicht weiß es sonst jemand – ich lerne gern dazu.)
Ein Lösung ist,
On Error in den Subs
textX zu setzen und in jedem der zugehörigen ErrorHandler ein Sub aufzurufen, das den Fehler in die Tabelle einträgt, und danach das
Resume Next auszuführen.
Sub start()
test1
test2
test3
test4
End Sub
Private Sub FehlerSchreiben()
Dim aktBlatt As String
Dim WsTabelle As Worksheet
Dim BoVorhanden As Boolean
aktBlatt = ActiveSheet.Name
For Each WsTabelle In Sheets
If WsTabelle.Name = "Fehlerauslese" Then
BoVorhanden = True
End If
Next WsTabelle
If BoVorhanden = False Then
Sheets.Add.Name = "Fehlerauslese"
End If
ActiveWorkbook.Worksheets(aktBlatt).Activate
With ActiveWorkbook.Worksheets("Fehlerauslese")
Z = 2
Do While ActiveWorkbook.Worksheets("Fehlerauslese").Cells(Z, 2) <> ""
Z = Z + 1
Loop
.Cells(Z, 1) = "auf dem Tabellenblatt: " & aktBlatt
.Cells(Z, 2) = "Fehler Nr.: " & CStr(Err.Number)
.Cells(Z, 3) = Err.Description
.Cells(Z, 4) = "in Zeile : " & CStr(Erl)
.Cells(Z, 5) = Err.Source
' .Cells(Z, 6) = Err.Raise
With .Range("A:D")
.Columns.EntireColumn.AutoFit
End With
End With
End Sub
Private Sub test1()
ActiveWorkbook.Worksheets("Auswertung 1").Activate
On Error GoTo errorhandler
Debug.Print 1 / 0
MsgBox "OK_Fehler im Modul Test 1 _Auswertung 1 ausgelesen"
Exit Sub
errorhandler:
FehlerSchreiben
Resume Next
End Sub
' und genauso für die weiteren 3 test-Subs
Viele Grüße
Frank

Betrifft: Danke - so flutscht es
von: STeve
Geschrieben am: 09.10.2020 07:16:13
Guten Morgen lieber Frank.
DANKE für deine Mühen/Hilfe/Tipp....so
funzt es in meinem Sinne.
Dir noch einen schönen Tag und glg
STeve

Betrifft: AW: Danke - so flutscht es
von: Daniel
Geschrieben am: 09.10.2020 08:16:18
Ist das nicht genau das, was ich dir bereits gesagt habe?
Gruß Daniel

Betrifft: Herzlichen Dank....
von: STeve
Geschrieben am: 09.10.2020 09:58:36
Hallo lieber Daniel......Ein herzliches
DANKE natürlich auch an dich.
Wie du ja richtig festgestellt hast ist es auch
deine Antwort/Lösung/Tipp.
Wünsch dir noch einen schönen Tag und ein schönes WE und hoffe weiterhin auf deinen immer hilfreichen Einsatz in diesem tollen Forum.
glg STeve