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

doppelte MsgBox vermeiden - wie?

doppelte MsgBox vermeiden - wie?
Wolfgang
Hallo,
der untenstehende Code soll vermeiden, dass eine Checkbox aktiviert werden kann, wenn die Textbox33 noch leer ist. Bei aktuellem Code funktioniert das zwar auch, allerdings erscheint die MsgBox immer zweimal. Wie kann ich das vermeiden, so dass die MsgBox. nur einmal erscheint. Habe schon zig Dinge versucht, ohne Erfolg. Danke schon jetzt für die Rückmeldungen.
Gruß - Wolfgang
Private Sub CheckBox4_Change()
If TextBox33.Value = "" Then
MsgBox "Es wurden keine sonstigen Kosten eingegeben, die in die Berechnung einbezogen werden kö _
nnten!", vbInformation
CheckBox4.Value = False
End If
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: doppelte MsgBox vermeiden - wie?
16.11.2009 21:16:21
Hajo_Zi
Halo Wolfgang,
wo ist die Tabelle oder UserForm.

AW: doppelte MsgBox vermeiden - wie?
16.11.2009 21:21:07
Wolfgang
Hallo Hajo,
die Textbox und auch die CheckBox befinden sich auf einem UF, so dass sich auch der Code im UF befindet. Danke für die Rückmeldung.
Gruß - Wolfgang
AW: doppelte MsgBox vermeiden - wie?
16.11.2009 21:26:48
Hajo_Zi
Hallo Wolfgang,
ungetestet.
Option Explicit
Private Sub CheckBox4_Change()
If CheckBox4.Tag = "" Then
CheckBox4.tag = 1
If TextBox33.Value = "" Then
MsgBox "Es wurden keine sonstigen Kosten eingegeben, die in die Berechnung  _
einbezogen werden " _
& "könnten!", vbInformation
CheckBox4.Value = False
End If
CheckBox4.tag = ""
End If
End Sub

Gruß Hajo
Anzeige
Danke Hajo, klappt wunderbar!
16.11.2009 22:06:00
Wolfgang
Hallo Hajo,
sorry, dass ich mich jetzt erst wieder melde, hatte noch ein längeres Telefonat. Konnte soeben Deinen Code einbauen.- Er läuft wunderbar und bringt auch nur noch einmal die MsgBox. Hab recht herzlichen Dank dafür!!
Gruß - Wolfgang
AW: doppelte MsgBox vermeiden - wie?
16.11.2009 21:34:04
hary
Nabend Wolfgang
koenntest Du auch so loesen. Prueft wenn Du mit der Maus an die Checkbox kommst. Wenn Txtb. leer wird der Focus draufgesetzt.

Private Sub CheckBox4_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As  _
Single, ByVal Y As Single)
If TextBox33.Value = "" Then
MsgBox "Es wurden keine sonstigen Kosten eingegeben, die in die Berechnung einbezogen werden kö _
nnten!", vbInformation
TextBox33.SetFocus
End If
End Sub

Gruss hary
Anzeige
MsgBox in UF nur einmal anzeigen
16.11.2009 21:55:53
NoNet
Hallo Wolfgang,
die MsgBox erscheint zweimal, da innerhalb des Makros die CheckBox wieder "zurückgesetzt" wird, was ebenfalls einer "Änderung" entspricht und daher das Ereignis "CheckBox4_Change()" erneut ausgelöst wird.
Ausserhalb eines UserForms würde man die Ereignissteuerung temporär mit folgenden Zeilen deaktivieren :
Application.EnableEvents=FALSE
Checkbox4.Value=FALSE
Application.EnableEvents=TRUE

Da die Ereignisse in UserForms jedoch nicht deaktiviert werden können, funktioniert dies hier nicht, d.h. die Zeile CheckBox4.Value=FALSE ruft das gleiche Makro noch einmal auf.
Daher muss man sich hier mit einer "Hilfsvariablen" (hier : bolChk4) behelfen, die innerhalb dieses Makros prüft, ob die MsgBox erneut angezeigt werden soll :
Dim bolChk4 As Boolean
Private Sub CheckBox4_Change()
bolChk4 = Not bolChk4
If TextBox33.Value = "" And bolChk4Then
MsgBox "Es wurden keine sonstigen Kosten eingegeben, " & _
"die in die Berechnung einbezogen werden könnten! ", vbInformation
CheckBox4.Value = False
End If
End Sub
Gruß, NoNet
Anzeige
AW: MsgBox in UF nur einmal anzeigen
16.11.2009 22:19:27
Wolfgang
Hallo NoNet,
Danke für Deine Rückmeldung. Ich wollte soeben Deinen Code auch einbauen/testen. Es erscheint Syntaxfehler und der Auszug: If TextBox33.Value = "" And bolChk4Then wird in rot angezeigt. Was könnte ich da evtl. noch verändern?
Danke und Gruß
Wolfgang
Leerzeichen zwischen "bolChk4" und "Then"
16.11.2009 22:24:18
NoNet
Hallo Wolfgang,
irgendwie ist da ein Leerzeichen "hopps"gegangen ;-) - so ist es richtig :
If TextBox33.Value = "" And bolChk4 Then

Gruß, NoNet
AW: doppelte MsgBox vermeiden - wie?
16.11.2009 22:20:28
Gerd
Guten Abend,
auch noch meinen Kram dazu.
Private Sub CheckBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 = "" Then CheckBox1 = False: MsgBox "TB leer": Cancel = True
End Sub

Private Sub TextBox1_Change()
If TextBox1 = "" Then CheckBox1 = False
End Sub
Gruß Gerd
Anzeige
Dank Allen!!!
16.11.2009 22:36:52
Wolfgang
Hallo Hajo, Hary, NoNet und Gerd,
ich habe, so bin ich ganz ehrlich, noch die Hinweise von Gerd aufgegriffen, die auch wunderbar funktionieren und für mich als Laie schnell nachvollziehbarer sind. Bei Deinem Code, Hajo, mußte ich in der Folge feststellen, dass die MsgBox immer nur einmal kam, wenn ich danach wieder die CheckBox anhake und die Textbox ist noch weiterhin leer, erscheint dann keine weitere Meldung mehr. Ich danke Euch allen somit recht herzlich für eure erneute Geduld mit mir und für die Ausarbeitungen.
Gruß und eine angenehme Nachtruhe.
Wolfgang

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige