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

VBA - Fehler in Unterprogramm abfangen

VBA - Fehler in Unterprogramm abfangen
11.07.2013 08:47:18
Max
Hallo liebe Community,
ich habe ein kleines VBA - Problem.
Über einen Button lasse ich verschiedene Programm nacheinander ablaufen.
Private Sub Aktualisieren_Click()
Call Copytest
Call TextAendern
Call DatenKopierenIgnorNeu
Call TextAendernIgnorMeld
Call DatenKopierenSperrNeu
Call DiagrammeAktualisieren
Worksheets("Fehleranalysen").Activate
End Sub
Die einzelnen Programme greifen auf verschiedene Daten innerhalb meines Excel-Sheets zu. Es kann dabei passieren, dass innerhalb der Programme Fehler auftreten, vor allem wenn die Datengrundlage zu gering ist (Alles ist mit einem Datenbankabruf verknüpft).
In den einzelnen Programmen kann ich die Fehler bereits mit "On Error goto ..." abfangen. Mit "Exit Sub" kann ich die Unterprogramme dann auch vorzeitig beenden und eine Fehlermeldung ausgeben, aber dann wird ja das Programm Sub Aktualisieren_Click wieder fortgesetzt und das nächste Unterprogramm wird aufgerufen. Auch hier kann es dann wieder zu Fehlern kommen und das heißt, dass es sein kann, dass man nach einer Fehlermeldung noch mehrere weitere Fehlermeldungen wegklicken muss, bevor das Programm beendet wird.
Ich würde es gerne so haben, dass sobald der erste Fehler auftritt sowohl das betreffende Unterprogramm als auch das "Hauptprogramm" beendet werden und am besten dabei noch ausgegeben wird, bei welchem Unterprogramm der Fehler aufgetreten ist.
Wenn ich versuche mit "On Error goto..." im Hauptprogramm Sub Aktualisieren_Click zu arbeiten, hilft das leider nicht. Aber das macht ja auch Sinn, weil die Fehler in den Unterprogrammen auftreten...
Habt ihr vielleicht eine Idee oder einen Lösungsansatz/ - vorschlag?
Mit freundlichen Grüßen
Max

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Fehler in Unterprogramm abfangen
11.07.2013 08:52:28
Klaus
Hi,
mit "end" kannst du ein VBA-Script brutal abbrechen.
sub DivisionDurchNull()
on error goto hell
dim i
i = 1 / 0  'erzeugt einen Fehler
goto heaven:
hell:
msgbox("Fehler in Sub DivisonDurchNull in diesem Modul")
end 'beendet alle VBA-Vorgänge!
heaven:
end sub
Was die Ausgabe Modul / Sub angeht: Das musst du leider händisch in die Fehlerbehandlung des jeweiligen Sub schreiben. Mir ist keine Methode bekannt, den Namen des aktiven Sub / Modul auszulesen.
Grüße,
Klaus M.vdT.

AW: VBA - Fehler in Unterprogramm abfangen
11.07.2013 09:00:16
Max
Hallo Klaus,
vielen Dank für die sehr schnelle Lösung.
Das hilft schonmal sehr. Das jeweilige Abfangen der Fehler in den Unterprogrammen muss ich jetzt sowieso nochmal überarbeiten, da ich nicht sicherstellen kann, in welchem Programm das erste Mal ein Fehler auftritt. Dabei werde ich dann auch mal gucken, ob ich den jeweiligen Programm/ Sub-Namen mit ausgeben kann.
Nochmals Danke.
Mit freundlichen Grüßen
Max

Anzeige
Danke für die Rückmeldung! owT.
11.07.2013 09:01:20
Klaus
.

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige