Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Goto in einer UserForm

Forumthread: Goto in einer UserForm

Goto in einer UserForm
01.01.2023 15:54:27
Claus
Hallo,
würde gerne die MsgBox mit Ja/Nein Abfrage gegen eine UserForm Box tauschen um diese individuell gestalten zu können.
Für mich taugt jetzt folgendes Problem auf, der Code meiner MsgBox geht weiter mit dem dem Goto Command.
Dieses lässt sich aus der UserForm nicht ansprechen, ich erwarte keinen fertigen Code o.ä. vielleicht könnt Ihr mir erklären wie ich den Verweis wieder zurück bekomme?
Ich hatte eben schon probiert eine If CommandButton1 = True Abfrage mit einzubauen, leider mit keinem Erfolg.
Code der ursprünglichen MsgBox:

Sub CmdBoxExmpl()
Dim mbResult As Long
mbResult = MsgBox( _
Prompt:="Antwortmail? (JA) Neue Email (Nein)", _
Buttons:=vbYesNo)
If mbResult = vbNo Then
GoTo LineNewMail
Else
Dim mbResult2 As Long
mbResult2 = MsgBox( _
Prompt:="Bitte jetzt E-Mail in Outlook markieren, dann JA drücken. Nein = Abbruch", _
Buttons:=vbYesNo)
If mbResult2 = vbNo Then
Exit Sub
Else
GoTo LineReplyMail
End If
End If
End Sub
Code der UserForm:

Private Sub Label1_Click()
End Sub
Private Sub UserForm_Click()
Option Explicit
Private Sub UserForm_Initialize()
Label2 = "Kunde: " & sKName
End Sub
Private Sub CommandButton1_Click()
GoTo LineReplyMail
End Sub
Private Sub CommandButton2_Click()
GoTo LineNewMail
End Sub
Private Sub CommandButton3_Click()
End Sub
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Goto in einer UserForm
01.01.2023 16:03:40
RPP63
Moin!
Ich sehe keinerlei Sprungmarken im Code.
GoTo sollte man ohnehin nur in einer Fehlerbehandlung einsetzen, ansonsten gibt es bessere Varianten.
Oder handelt es sich bei LineNewMail gar nicht um eine Sprungmarke, sondern um ein Makro?
Dann: LineNewMail
oder: Call LineNewMail
jedenfalls nicht Goto LineNewMail
Gruß Ralf
Anzeige
AW: Goto in einer UserForm
01.01.2023 16:13:16
Claus
Hi Ralf,
danke für deine Antwort.
Ich habe folgende Zeilen als "Sprungmarke" bezeichnet, diese sind sowohl im Modul als auch in der UserForm grade vorhanden (siehe oben) und überspringen dann Zeilen in dem Modul Sub CmdBoxExmpl() die für die jeweilige Auswahl nicht benötigt werden.
GoTo LineReplyMail
GoTo LineNewMail
Anzeige
"vorhanden (siehe oben)"
01.01.2023 17:19:27
RPP63
Nein!
In dem gezeigten Code ist KEINE Sprungmarke vorhanden!
Du willst nur zu etwas springen, was in Deinem Code nicht vorhanden ist …
Nochmal:
In der Regel nutzt man keine Sprungmarken, sondern programmiert "vernünftig"!
Mal ein bewusst dämliches Beispiel:
• Sprungmarke:

Sub Sprung
If Weekday(Date,vbMonday) 
• normal so:

Sub Normal
If Weekday(Date,vbMonday) 

Anzeige
AW: "vorhanden (siehe oben)"
02.01.2023 11:54:44
snb
Noch 'normaler':

Sub Normaler()
MsgBox IIf(Weekday(Date , 2) 

AW: Goto in einer UserForm
01.01.2023 16:12:35
onur

Private Sub CommandButton1_Click()
GoTo LineReplyMail
End Sub
Würde nur funktionieren, wenn sich die Sprungmarke LineReplyMail sich innerhalb von "Private Sub CommandButton1_Click" befinden würde.
Anzeige
AW: Goto in einer UserForm
01.01.2023 16:17:24
Claus
Hi Onur,
danke, das ist mir mittlerweile bewusst.
Deswegen ja die Frage, wie ich wenn ich bspw.. den CommandButton1 klicke, entweder in das Modul komme wo dann mittels if CommandButton1 = True Abfrage die goto Zeile triggern kann, oder halt eine alternative wie ich direkt vom CommandButton1 diese triggern kann.
Wie bereits erwähnt überspringe ich damit Zeilen, die für den jeweiligen Schritt dann nicht benötigt werden.
Anzeige
AW: Goto in einer UserForm
01.01.2023 16:39:10
onur
"Deswegen ja die Frage, wie ich wenn ich bspw.. den CommandButton1 klicke, entweder in das Modul komme wo dann mittels if CommandButton1 = True Abfrage die goto Zeile triggern kann" Hääääh ? Ich glaube, du solltest erstmal das kleine EinmalEins des Programmierens erlernen.
AW: Goto in einer UserForm
02.01.2023 15:43:13
Daniel
"Wie bereits erwähnt überspringe ich damit Zeilen, die für den jeweiligen Schritt dann nicht benötigt werden."
dafür gibt es IF THEN ELSE
oder SELECT CASE
wenn man damit ein bisschen umgehen kann, braucht man eigentlich kein Goto als Sprungmarke mehr.
das haben wir früher am C64 gebraucht, der nur IF THEN (ohne Else) kannte.
Gruß Daniel
Anzeige
AW: Goto in einer UserForm
02.01.2023 10:09:14
volti
Hallo Claus,
mal abweichend von deiner eigentlichen Fragestellung:
Wenn für die Neugestaltung deiner MsgBox nur die Buttonbeschrftung und ggf. ein Bild angepasst werden soll(te), gibt es auch hierfür eine Alternative.
https://www.clever-excel-forum.de/Thread-Msgbox-mit-vier-Button-und-eigenem-Icon
Gruß
Karl-Heinz
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige