PDA

Vollständige Version anzeigen : Cancel-Button in UserForm


Schmali
26.02.2008, 10:47
Hallo liebe MOF-Kollegen,

ich hab zwar die SuFu genutzt, jedoch nichts passendes gefunden, bzw. nach was falschem gesucht.

Während der Codeausführung wird ein UserForm aufgerufen, in dem Ergänzungen stehen. Dieses UserForm enthält einen Cancel-Button.

Jetzt möchte ich erreichen, das wenn der Cancel-Button gedrückt wird, nicht nur mittels "Unload Me" das UserForm geschlossen wird, sondern auch der Code, von dem aus das UserForm aufgerufen wurde auch abgebrochen wird, bzw. übersprungen wird oder ich enstprechend eine andere Prozedur aufrufen kann.

Irgendwie krieg ich das nicht hin.

Hier ein Code-Fetzen dazu:


Sub Test()
UserForm1.Show
*** Hier sollte bei Klick auf Cancel-Button alles nachfolgende übersprungen werden!!! ***
ActiveSheet.PrintOut
End Sub()
Sub UserForm_Initialize()
TextBox1.Visible = True
End Sub
Sub Cancel_Button()
Unload Me *** Was muss ich hier schreiben??? ***
End Sub


Der Code ist nur mal so getippt, bitte nicht auf Schönheit achten ;)

Mit geht es nur darum, ob ich dem "Unload Me" noch so ne Art "Return-Befehl" mitgeben kann, der die restliche Code-Ausführung im Modul "Test" verhindert bzw. überspringt oder ne andere Prozedur aufruft.

Ich danke schonmal im voraus für Eure Hilfe.

Greetz

Schmali

EarlFred
26.02.2008, 10:57
Hi schmali,

"auch nur mal so schnell dahergetippt" Schreib doch beim Canceln irgendwas in eine globale Variable (Public ... as Boolean z. B.), die Du dann abfragst im Code und bei True = Exit Sub....

EarlFred

Berti_S
26.02.2008, 11:01
Das klappt doch nur sinnvoll bei Code in Schleifenform.

Ansonsten müsste doch quasi nach jeder zweiten Codezeile nach der Variablen Ausschau gehalten werden - oder sehe ich da etwas falsch ?

Berti

EarlFred
26.02.2008, 11:17
@Bert
So wie ich das Prolem verstanden habe, braucht er nur an einer Stelle eine If-Abfrage, ob der Button "Cancel" gedrückt wurde und wenn ja, solll der Code abgebrochen werden. Dafür muss er dann nur noch einmal die Variable prüfen.

Ich weiß halt nicht, ob es neben "Cancel" auch "OK" gibt - dann wäre es möglich, den auszuführenden Code hinter diesen Button zu legen und ihn bei Cancel halt nicht auszuführen.

Grüße
EarlFred

EarlFred

Schmali
26.02.2008, 17:37
Hoi,

danke für die kleine Diskussion.

EarlFred hat es richtig erkannt. Ich brauche es nur an einer Stelle. Eine Schleife ist hier nicht nötig (trotzdem Danke für den Einwand Berti).

Es geht letztlich darum, das ein UF geöffnet wird um Daten zu prüfen. Wenn diese OK sind, dann geht der UF-aufrufende Code weiter und bringt letztlich eine Druckerauswahl. Wenn jedoch auf Abbruch geklickt wird, soll eben dieses Druckmenu nicht mehr kommen und der komplette restliche Code abgebrochen werden (was noch ein bisschen was ist).

Auf die Idee mit der globalen Variable bin ich nicht gekommen, war die ganze Zeit bei dem Gedanken, dem "Unload Me" was mit auf dem Weg geben zu können :stupid: . Schönen Dank für den Hinweis. Ich bin mir sicher, das ich es darüber gebacken bekomme.

Greetz & Merci

Schmali

jinx
26.02.2008, 17:42
<font size="2" face="Century Gothic">Moin, Schmali

End
;)</font>

Schmali
26.02.2008, 20:14
Hoi jinx,

LOOOOOOOOL

oder so :D

Merci

Greetz

Schmali