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

Exit Problem

Exit Problem
25.05.2018 06:26:12
Frank
Guten Morgen zusammen,
ich habe in einer UserForm u.a. eine Combobox angelegt. Diese wird beim Initialize angesprochen und gibt Werte einer Liste vor, die in einem Sheet sind.
Zunächst ist aber diese Box leer, weil noch nicht ausgewählt wurde.
Wenn der User nun die Box verlässt ohne eine Auswahl zutreffen, wird er mittels

Private Sub cmbmonat_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If frmsim.cmbmonat = "" Then
MsgBox "Feld darf nicht leer bleiben!", vbDefaultButton1
Cancel = True
Exit Sub
End If

in der Combobox gehalten.
Leider kommt die Msgbox aber auch, wenn der User einfach ohne weitere Eingaben die ganze _
Userform verlassen will. Ich habe auf der Userform z.B. einen Button angelegt, der zurück zum Hauptmenü führt:

'7 Zurück zum Hauptmenü
Private Sub combuhauptmenue_Click()
Unload frmsim
Sheets("REGIE").Select
End Sub

Wie kann ich in diesem Fall die Fehlermeldung verhindern? Hat jemand eine Idee?
Habe schon daran gedacht direkt immer den ersten Wert der Liste anzeigen zu lassen, da weis ich aber nicht wie....
Viele Grüße und schönen Start in der Tag.
Frank

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Exit Problem
25.05.2018 08:14:23
Dennis
Guten Tag,
ich weis nicht ob es die beste Lösung ist, aber ich denke du könntest eine public Variable festlegen welche dir z.B. auf true geht, wenn der zurück zum Hauptmenü gedrückt wird und sonst false ist.
dann machst du eine If-Funktion ins Exit und frägst die variable ab.
Bei true wird dann dein Code nicht ausgeführt.
AW: Exit Problem
25.05.2018 08:27:35
ChrisL
Hi Frank
Ich hatte die gleiche Idee wie Dennis, aber...
1. müsstest du die Eigenschaft TakeFocusOnClick vom Commandbutton auf False stellen
2. funktioniert der Code nur, wenn du über den Button schliesst, nicht aber übers Kreuz rechts oben
Public b As Boolean

Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If ComboBox1 = "" And b = False Then
MsgBox "Feld darf nicht leer bleiben!", vbDefaultButton1
Cancel = True
Exit Sub
End If
End Sub

Private Sub CommandButton1_Click()
b = True
Unload Me
End Sub

M.E. gibt es keine saubere Lösung, weil prinzipiell das Exit-Ereignis ausgeführt wird und dann erst die Folgeaktivität. Bei Exit kann Excel somit noch nicht wissen, ob du das Userform verlassen willst oder nicht.
Ich denke du müsstest dir generell einen anderen Prozess einfallen lassen. Vermutlich drückst du nach vollständiger Eingabe einen Button. Dort prüfst du dann, ob alle Pflichtfelder eingegeben wurden. Meine bevorzugte Variante wäre, den Button erst zu aktivieren (enable) wenn die Pflichteingaben erfolgt sind.
cu
Chris
Anzeige
AW: Exit Problem
25.05.2018 09:06:35
Frank
Erst mal herzlichen Dank an Euch beide. Durch Eure Anregung habe ich eine Lösung gefunden.
Ich setze die Schleife einfach an den Anfang:
Private Sub cmbmonat_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If b = True Then
Exit Sub
End If
If frmsim.cmbmonat = "" Then
MsgBox "Feld darf nicht leer bleiben!", vbDefaultButton1
Cancel = True
Exit Sub
End If
So komme ich immer -auch mit dem Kreuzchen- aus der Nummer raus. Die Eigenschaft TakeFocusOnClick vom Commandbutton muss dann auch nicht geändert werden.
AW: Exit Problem
25.05.2018 09:11:27
Frank
Nachtrag:
Eigenschaft TakeFocusOnClick vom Commandbutton muss doch auf False!
Dann funzt aber alles.
Anzeige
AW: Exit Problem
25.05.2018 08:58:47
Thomas
2 Ideen:
a) entweder eine Default Auswahl, dann wär was belegt
oder, wenn das nicht passt
b) n Dummy der Art "", wie mans aus anderen Formularen kennt. Vielleicht war da das gleiche Problem die Ursache

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige