Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1064to1068
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

Ersatz für Befehl End

Ersatz für Befehl End
31.03.2009 10:21:40
Roland
Hallo VBA Profis
Folgende Ausgangslage:
Beim öffnen des Workbooks setze ich diverse Variabeln zB. xSave = True um das Speichern zu verhindern, einen String der mir sagt ob ein Tabellenblatt vorhanden ist oder nicht usw.
Ich habe Sub's bei denen ich andere Sub's also Untersub's aufrufe. In den Untersub's befindet sich zB. eine Abfrage. Nach dieser Abfrage wird dem Benutzer eine Meldung ausgegeben und die ganze Routine wird gestoppt. Dies habe ich mit dem Befehl End in der Untersub gemacht.
Das ganze funktioniert auch einwandfrei.
Nun zu meinem Problem:
Durch den Befehl End werden aber auch die Variabeln zurückgesetzt, die ich beim öffnen des Workbooks gesetzt habe.
Frage:
Muss ich nun in jeder Untersub anstelle von End einen Public String setzen und diesen in der Hauptsub abfragen, oder gibt es da irgend eine elegantere bessere Lösung?
Besten Dank für eure Hilfe
Gruss Roland

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ersatz für Befehl End
31.03.2009 10:33:58
UweD
Hallo
hast du mal Exit Sub (in den Unterverzeichnissen) versucht?
Gruß UweD
AW: Ersatz für Befehl End
31.03.2009 10:44:44
Roland
Hallo UweD
Ich habe End Sub und Exit Sub in den Unterverzeichnissen ausprobiert, immer mit dem gleichen Ergebnis, dass die Untersub beendet wird, nicht aber die Hauptsub.
Gibt es noch andere Lösungsansätze?
Besten Dank
AW: Ersatz für Befehl End
31.03.2009 10:58:11
Roland
Sorry, dass ich den Eintrag doppelt mache, aber ich war mir nicht sicher ob ich den Hacken "Frage noch offen" gesetzt hatte.
Hallo UweD
Ich habe End Sub und Exit Sub in den Unterverzeichnissen ausprobiert, immer mit dem gleichen Ergebnis, dass die Untersub beendet wird, nicht aber die Hauptsub.
Gibt es noch andere Lösungsansätze?
Besten Dank
Anzeige
AW: Ersatz für Befehl End
31.03.2009 11:24:10
Luschi
Hallo Roland,
wenn das Hauptprogramm mitkriegen soll, daß das Unterprogramm vorzeitig verlassen wurde, dann sollte man statt Sub's lieber Function's benutzen. Die können einen Rückgabewert liefern.
Hier ein Beispiel dazu:

Option Explicit
Sub Hauptprogramm()
Dim ok As Boolean
MsgBox "Jetzt wird das Unterprogramm aufgerufen!"
ok = Unterprogramm()
If Not ok Then
MsgBox "Schade, schade, schade...", 16
Exit Sub
End If
MsgBox "Wie schön, daß Sie nicht vor Schwierigkeiten zurückschrecken!", 46
End Sub
Function Unterprogramm() As Boolean
Dim jaNein As Long, ok As Boolean
jaNein = MsgBox("Wollen Sie weiterarbeiten?", vbYesNo + vbQuestion, "F r a g e...")
ok = IIf(jaNein = vbYes, True, False)
Unterprogramm = ok
End Function

Gruß von Luschi
aus klein-Paris

Anzeige
AW: Ersatz für Befehl End
31.03.2009 14:46:36
Roland
Hallo Luschi
besten Dank für Deine Erklärung und das Code-Beispiel. Die Abläufe mit den Function's sind mir bekannt, da ich die Ganze Datei 2 Sprachig führe und alle Textausdrücke mit einer Function abfange.
Bei den Untersub's handelt es sich um relativ komplexe Code's mit denen ich XML auslese die aber von verschiedenen Seiten her kommen können.
Bei meinem Code-Aufbau habe ich den Fehler gemacht, dass ich einzelen Sub's, die eigenständig funktionieren, in Hauptsub's zusammengeführt habe, was zu obgenanntem Problem geführt hat.
Ich habe alle End-Befehle nun durch zusammenführen der Untersub's oder durch eine Abfrage im Hauptsub ersetzt.
Funktioniert nun alles einwandfrei.
Trotz allem nochmals Besten Dank für Deine Bemühungen
Gruss Roland
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige