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

Userform Textbox Exit problem

Userform Textbox Exit problem
25.11.2021 12:53:01
Mladen
Hallo Zusammen,
habe zwar das Forum durchsucht, finde jedoch keine wirklich passende, bzw. funktionierende Lösung für mein Problem und hoffe auf Eure Hilfe?
Zum Problem:
Ich habe eine Userform mit diversen Text- u. Kombiboxen und Alles funktioniert soweit fehlerfrei.
Wenn eine Textbox jedoch unbefüllt verlassen wird, wird im Exit Event per vbYesNo abgefragt, ob die Eingabe übersprungen werden soll.
Wird mit "JA" bestätigt, werden die nächsten zwei Eingabeboxen disabled, übersprungen und Box 4 fokussiert.
Das Ganze funktioniert zwar, meine Abfrage (MsgBox) erscheint jedoch immer zweimal hintereinander, wenn man "JA" klickt, bzw. Eingabetaste drückt.
Button "NEIN" funktioniert dagegen fehlerfrei.
Name der UserForm = "Auftrag"
Zur Erklärung, die Textfelder in der UserForm wurden wie folgt benannt, um die Übersicht nicht zu verlieren:
(Grund: bei Abschluss werden unzählige Abfragen durchgeführt, inkl. Datenbankeinträgen, Verzeichnisserstellung im Netzwerk, etc.)
TextBox1 = A_Name, TextBox2 = A_Vorname, TextBox3 = A_Abt
TextBox4 = B_Name, TextBox5 = B_Vorname, TextBox6 = B_Abt
.....
(UserForm läuft mit Option Explicit)
Mein aktueller Code für TextBox "A_Name" (TextBox1):
==========================================

Private Sub A_Name_AfterUpdate()
'Anfangsbuchstaben groß, auch bei Doppelnamen
Dim Name1, Name2 as String
With Auftrag
If A_Name Like "*" & " " & "*" Then
Name1 = Split(Me!A_Name, " ") (0)
Name2 = Split(Me!A_Name, " ") (1)
A_Name = UCase(Left(Name1, 1)) & LCase(Mid(Name1, 2)) & " " & UCase(Left(Name2, 1)) & LCase(Mid(Name2, 2))
Else
A_Name = UCase(Left(A_Name, 1)) & LCase(Mid(A_Name, 2))
End If
End with
End Sub
------------------------------------------

Private Sub A_Name_Change()
'Keine numerische Eingabe
With Auftrag
If IsNumeric(A_Name) Then
MsgBox "Nur Texteingabe zulässig!" & vbNewLine & "Bitte korrigieren Sie Ihre Eingabe.", vbOkOnly, "HINWEIS!"
A_Name = ""
A_Name.SetFocus
End If
End With
End Sub
---------------------------------------------------------------------------------------------

Private Sub A_Name_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Funktionen bei Verlassen der Textbox
With Auftrag
'1. Wenn Eingabe korrekt
If Len(A_Name.Text) >= 2 And Not IsNumeric(A_Name) Then
A_Vorname.SetFocus
Exit Sub
End If
'2. Wenn keine Eingabe erfolgt
If A_Name = "" Then
If MsgBox("Möchten Sie die Eingabe überspringen?", vbYesNo) = vbYes Then
A_Vorname.Enabled = False
A_Abt.Enabled = False
B_Name.SetFocus
Else
Cancel = True
End If
End If
End With
End Sub
--------------------------------------------------------------------------------------------------------
Wäre um Eure professionelle Unterstützung wirklich froh, denn zweimal Bestätigen ist "bescheiden" und ich komm im Moment nicht drauf?
Vielen Dank im Voraus!

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

Betreff
Datum
Anwender
Anzeige
AW: Userform Textbox Exit problem
25.11.2021 13:01:34
Stefan
Hallo Mladen,
ich würde das über eine Variable ausschließen. Die beim bestätigen auf True gesetzt wird. Und die Abfrage nur ausgeführt wird, wenn diese Variable False ist.

Option Explicit
Dim VerlassenBestätigt As Boolean
Private Sub A_Name_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Funktionen bei Verlassen der Textbox
With Auftrag
'1. Wenn Eingabe korrekt
If Len(A_Name.Text) >= 2 And Not IsNumeric(A_Name) Then
A_Vorname.SetFocus
Exit Sub
End If
'2. Wenn keine Eingabe erfolgt
If A_Name = "" And VerlassenBestätigt = False Then
If MsgBox("Möchten Sie die Eingabe überspringen?", vbYesNo) = vbYes Then
A_Vorname.Enabled = False
A_Abt.Enabled = False
B_Name.SetFocus
VerlassenBestätigt = True
Else
Cancel = True
End If
End If
End With
End Sub
//Code ist ungetestet
Gruß
Stefan
Anzeige
AW: Userform Textbox Exit problem
25.11.2021 13:14:54
Mladen
Hallo Stefan,
Vielen Dank für die Eingebung und sogleich getestet..
Leider negativ, die Abfrage erscheint dennoch 2x.
*confused*
Gruß, Mladen
AW: Userform Textbox Exit problem
25.11.2021 13:22:14
Stefan
Kannst du eine Bsp-Mappe hochladen, in welcher das Problem auftaucht?
Gruß
Stefan
AW: Userform Textbox Exit problem
25.11.2021 13:26:36
Mladen
Hi Stefan,
Leider Nein, da Diese sensible Geschäftsdaten, Passwörter u. Netzwerkdaten enthält.
Ich versuche eine "Beispielmappe" zu erstellen, mit ähnlicher UserForm u. Inhalt.
Kann aber etwas dauern...
:-/
Gruß, Mladen
AW: Userform Textbox Exit problem
25.11.2021 13:39:49
Stefan
Hallo again,
ich hab es gefunden, sorry war ein denkfehler.

Private Sub A_Name_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Funktionen bei Verlassen der Textbox
With Auftrag
'1. Wenn Eingabe korrekt
If Len(A_Name.Text) >= 2 And Not IsNumeric(A_Name) Then
A_Vorname.SetFocus
Exit Sub
End If
'2. Wenn keine Eingabe erfolgt
If A_Name = "" And VerlassenBestätigt = False Then
If MsgBox("Möchten Sie die Eingabe überspringen?", vbYesNo) = vbYes Then
VerlassenBestätigt = True
A_Vorname.Enabled = False
A_Abt.Enabled = False
B_Name.SetFocus
Else
Cancel = True
End If
End If
End With
End Sub
Zur Erklärung:
Mit

B_Name.SetFocus
wird die Textbox erneut der Befehl zum verlassen gegeben und dadurch wird das Makro erneut gestartet.
Die Variable muss natürlich zuvor auf True gesetzt werden.
Gruß
Stefan
Anzeige
AW: Userform Textbox Exit problem
25.11.2021 13:48:07
Mladen
Hi Stefan,
Oberklasse - das war die Lösung!
Irgendwie hab ich das auch übersehen, dass die Reihenfolge passen muss..
Naja, nach ca. 6 Monaten Programmierung, geht der Fokus irgendwann "flöten"..
:-[
Jedenfalls funktioniert die Abfrage nun Top!
Vielen, vielen Dank für die Unterstützung und Deine Zeit.
LG aus dem kalten Allgäu :-(
Mladen
Danke für die Rückmeldung....
25.11.2021 13:55:16
Stefan
.... und weiterhin viel Erfolg :)
Ich Grüß mal aus dem gleichen Gebiet zurück ;)
Gruß
Stefan
AW: Danke für die Rückmeldung....
25.11.2021 13:58:03
Mladen
Dankeschön.
Woher kommst denn?
AW: Danke für die Rückmeldung....
25.11.2021 15:12:49
Stefan
OAL Bereich :)
AW: Danke für die Rückmeldung....
25.11.2021 15:25:53
Mladen
Ok, ist ein "weitreichender Begriff".
War bis Anfang des Jahre auch noch OAL, bin jetzt aus privaten Gründen "ins Unterland gezogen".
Wenn´s nicht genauer sein muss, dann Danke nochmals und schönen Abend.
Gruß, Mladen
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige