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

Msgbox wird 2 mal angezeigt.

Msgbox wird 2 mal angezeigt.
04.07.2019 00:09:36
Sören
Hallo Leute,
ich habe folgendes Problem. Wenn Textbox1 und Textbox2 leer sind, soll beim Eingeben von Daten in Textbox3 die Meldung kommen, dass man erst eine der beiden Textboxen ausfüllen muss. Ich habe dies wie folgt gelöst (Code unten), aber bekomme beim eingeben von Daten in Textbox3 die Msgbox 2 mal hintereinder angezeigt. Also es kommt die Fehlermedlung und ich schließe diese. Anschließend erfolgt die gleiche Msgbox mit der Meldung erneut. Ich habe die vermutung das es daran liegt, weil er ja 2 mal prüft. Kann man dies aber umgehen, sodass die Msgbox nur einmal angezigt wird?
If Textbox1.Value = "" And Textbox2.Value = "" Then
MsgBox "Bitte tragen Sie für Textbox1 oder Textbox2 einen Wert ein!"
Textbox3 = ""
Exit Sub
End If
Gruß Sören

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Msgbox wird 2 mal angezeigt.
04.07.2019 05:49:14
Hajo_Zi
Halo Sören.
ich bekomme in meiner Datei die Msgbox nur einmal.
zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue und ich baue keine Datei nach.
Vielleicht sollte die Datei verlinkt werden?
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
AW: Msgbox wird 2 mal angezeigt.
04.07.2019 05:58:14
Werner
Hallo Sören,
die entscheidende Info behälst du leider für dich.
In welchem Event deiner Textbox3 hast du den Code?
Gruß Werner
AW: Msgbox wird 2 mal angezeigt.
04.07.2019 09:00:53
Sören
Hallo Werner,
da hast du natürlich recht. War in dem Augenblick für mich total logisch. Hier der ganze Code für die Textbox3:
Private Sub Textbox3_Change()
'TextBox 1 oder 2 (einer der beiden muss ausgefüllt werden)
If Textbox1.Value = "" And Textbox2.Value = "" Then
MsgBox "Bitte tragen Sie für Textbox1 oder Textbox2 einen Wert ein!"
Textbox3 = ""
Exit Sub
End If
If Textbox1 = "" Then
With Textbox3
If Val(.Value) > 100 Then
MsgBox "Es sind max. 3 zahlen möglich!", vbExclamation
.Value = ""
.SetFocus
End If
End With
End If
If Textbox2 = "" Then
With Textbox3
If Val(.Value) > 2 Then
MsgBox "Es sind max. 2 zahlen möglich!", vbExclamation
.Value = ""
.SetFocus
End If
End With
End If
End Sub

Die Unteren beiden Codes funktionieren wunderbar. Bloß das Problem vorher mit der doppelten Msgbox bekomme ich nicht gelöst.
Gruß Sören
Anzeige
AW: Msgbox wird 2 mal angezeigt.
04.07.2019 09:17:52
Werner
Hallo Sören,
durch das Leeren der Textbox3
Private Sub Textbox3_Change()
'TextBox 1 oder 2 (einer der beiden muss ausgefüllt werden)
If Textbox1.Value = "" And Textbox2.Value = "" Then
MsgBox "Bitte tragen Sie für Textbox1 oder Textbox2 einen Wert ein!"
'### hier leerst du Textbox3
Textbox3 = ""
Exit Sub
End If

wird das Change Event der Textbox erneut ausgelöst, weshalb die Messagebox auch wieder angezeigt wird.
Entweder du entfernst das Leeren der Textbox aus dem Code, oder (das würde ich machen) du verwendest für die Prüfung nicht das Change Event von Textbox3 sondern das Exit Event. Das greift, wenn du die Textbox verlässt. Im Code des Exit Events kannst du dann ja die Textbox3 leeren und den Focus wieder auf die Textbox3 setzen.
Gruß Werner
Anzeige
AW: Msgbox wird 2 mal angezeigt.
04.07.2019 09:44:07
Sören
Hallo Werner,
guter Punkt. Jetzt ist aber das Problem, dass wenn ich eine Zahl eingebe, die Msgbox aus der dem Change gezogen wird. 'Es dürfen nicht mehr als zwei werte stehen' und danach folgt die MSgbox, dass man was in TextBox 1 oder 2 eintragen muss. Dann wird gelöscht. Hier der aktuelle Code:
Private Sub Textbox3_Exit()
'TextBox 1 oder 2 (einer der beiden muss ausgefüllt werden)
If Textbox1.Value = "" And Textbox2.Value = "" Then
MsgBox "Bitte tragen Sie für Textbox1 oder Textbox2 einen Wert ein!"
Textbox3 = ""
Exit Sub
End If

Private Sub Textbox3_Change()
If Textbox1 = "" Then
With Textbox3
If Val(.Value) > 100 Then
MsgBox "Es sind max. 3 zahlen möglich!", vbExclamation
.Value = ""
.SetFocus
End If
End With
End If
If Textbox2 = "" Then
With Textbox3
If Val(.Value) > 2 Then
MsgBox "Es sind max. 2 zahlen möglich!", vbExclamation
.Value = ""
.SetFocus
End If
End With
End If
End Sub
Also eig geht's mir darum, dass man ja erst eine Zahl eintragen darf, wenn in TextBox 1 oder Textbox2 ein wert enthalten ist. Vielleicht bin ich das Problem auch falsch angegangen.
Gruß Sören
Anzeige
AW: Msgbox wird 2 mal angezeigt.
04.07.2019 10:02:42
Werner
Hallo Sören,
setzt doch einfach beim Start deiner Userform die Textbox3 auf Visible = False, dann wird sie nicht angezeigt.
Und nur wenn Textbox1 und Textbox2 Werte enthalten, dann setzt du die Textbox 3 auf Visible = True.
Private Sub TextBox1_Change()
Me.TextBox3.Visible = Me.TextBox1  "" And Me.TextBox2  ""
End Sub
Private Sub TextBox2_Change()
Me.TextBox3.Visible = Me.TextBox1  "" And Me.TextBox2  ""
End Sub
Private Sub UserForm_Initialize()
Me.TextBox3.Visible = False
End Sub
Gruß Werner
AW: Msgbox wird 2 mal angezeigt.
04.07.2019 10:32:44
Sören
Hallo Werner,
Danke für den Vorschlag. Da ich aber eine sehr große Userform habe mit sehr vielen TextBoxen sieht das komisch aus, wenn da ein Feld weg ist. Da müsste ich dann alles am Anfang ausblenden.
Deswegen habe ich mich mit basteln für folgende Lösung entschieden.
Private Sub Textbox3_Exit()
'TextBox 1 oder 2 (einer der beiden muss ausgefüllt werden)
If Textbox1.Value = "" And Textbox2.Value = "" Then
Textbox3 = ""
Exit Sub
End If
End Sub
Die Msgbox habe ich entfernt. Damit kann der Benutzer in die TextBox3 nichts eintragen. Erst wenn Textbox1 oder 2 Werte beinhalten, lässt der Code einen Eintrag zu. Ist zwar nicht ganz so schön, Aber eig. sollte der benutzer ja mit Textbox1 oder 2 beginnen.
Also nochmal Danke dir Werner, dass mir Versucht hast zu helfen.
Gruß Sören
Anzeige
andere Antwort im falschen Zweig
04.07.2019 05:59:15
Werner
Hallo Sören,
die entscheidende Info behälst du leider für dich.
In welchem Event deiner Textbox3 hast du den Code?
Gruß Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige