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

Bei Fehler sollen alle Makros anhalten

Bei Fehler sollen alle Makros anhalten
22.07.2019 11:13:49
Dreher85
Hallo zusammen,
ich steh gerade etwas auf dem Schlauch. Ich hab gedacht ich mach was gutes und habe mein Programm wie folgt aufgebaut.
- Userform wird gestartet
- Nach der Eingabe folgt ein Button zum Anlegen
Nun kommen eine Reihe von Unterprogramme
- Abfrage richtig ausgefüllt
- Übertrag in Formular
- Übertrag in Datenbank
Wenn etwas bei der Abfrage schief läuft, spring ich mit Exit sub aus dem Makro, logischerweise macht er dann direkt mit dem nächsten Makro weiter.
Es sollte jedoch so laufen das er komplett aufhört und wieder von vorne anfängt, bzw. die Userform mit getätigter Eingabe soll noch offen bleiben. Wie kann ich das am besten umsetzen? Brauch ich eine Art Boolean abfrage, die prüft ob das Makro bis zum Ende durchgelaufen ist und dann erst das nächste startet?
Vorab vielen Dank.
Gruß
Florian

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bei Fehler sollen alle Makros anhalten
22.07.2019 11:19:42
Daniel
Hi
verwendest du On Error Resume Next oder On Error Goto-Sprünge?
wenn ja, lösche diese oder kommentiere sie zumindest mal aus.
setze weiterhin in "Extras - Optionen - Allgemein" die Option "Unterbrechen bei Fehler - in Klassenmdoul"
Gruß Daniel
AW: Bei Fehler sollen alle Makros anhalten
22.07.2019 11:46:12
Dreher85
Hi,
weder noch. Ich frag den Inhalt wie folgt ab
if txtName "" then
Übertrag
else
msgbox"Bitte Tragen Sie Ihren Namen ein!",vbcritical,"Fehler"
exit sub
end if
AW: Bei Fehler sollen alle Makros anhalten
22.07.2019 11:32:09
ChrisL
Hi
Theoretisch so...
Sub t()
If t1 Then Exit Sub
If t2 Then Exit Sub
If t3 Then Exit Sub
End Sub

Function t1() As Boolean
On Error GoTo errorhandler
MsgBox "1"
Exit Function
errorhandler:
MsgBox "Fehler"
t1 = True
End Function

Function t2() As Boolean
On Error GoTo errorhandler
MsgBox "2"
Dim i As Integer: i = "x" ' Fehler provozieren
Exit Function
errorhandler:
MsgBox "Fehler"
t2 = True
End Function

Function t3() As Boolean
On Error GoTo errorhandler
MsgBox "3"
Exit Function
errorhandler:
MsgBox "Fehler"
t3 = True
End Function

Allerdings handelt es sich m.E. um ein ungewöhnliches Vorgehen. Wenn mehrere Prozeduren von einander abhängig sind, dann kann man ja gleich eine einzige Prozedur schreiben.
cu
Chris
Anzeige
schau Dir dazu mal mal: END an ...
22.07.2019 11:33:17
Matthias
Hallo
Lies dazu bitte auch die VBA-Hilfe durch.
Gruß Matthias
AW: schau Dir dazu mal mal: END an ...
22.07.2019 11:48:22
Dreher85
Hi Matthias,
ich möchte ja das die Userform aufbleibt. Wenn ich mit End arbeite wird diese auch zurück gesetzt.
Gruß
Florian
AW: schau Dir dazu mal mal: END an ...
22.07.2019 11:48:24
Dreher85
Hi Matthias,
ich möchte ja das die Userform aufbleibt. Wenn ich mit End arbeite wird diese auch zurück gesetzt.
Gruß
Florian
AW: Bei Fehler sollen alle Makros anhalten
22.07.2019 12:20:45
Daniel
Ok, verstanden, dann so
1. schreibe die Sub Abfrage nicht als Sub, sondern als Function.
Function ist in VBA das gleiche wie eine Sub, nur dass du die Möglichkeit hat, noch einen Rückgabewert zu erstellen.
Gib der Function Abfrage daher der Rückgabewert TRUE wenn sie erfolgreich war und FALSE, wenn in ihr ein Fehler aufgetreten ist.
2. schreibe den Aufruf von Abfrage dann als IF-Bedingung:
sieht im Code dann in etwa so aus (mal so prinzipell basierend auf deinen Angaben):
Hauptmakro
If Abfrage = True Then
CAll Übertrag_In_Formular
CAll Übertrag_In_DatenBank
Else
Msgbox "Fehler bei Abfrage"
End
und in Abfrage:
Function Abfrage() as boolean
if txtName "" then
Übertrag
Abfrage = True
else
msgbox"Bitte Tragen Sie Ihren Namen ein!",vbcritical,"Fehler"
Abfrage = False
exit sub
end if
Gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige