Herbers Excel-Forum - das Archiv
Zwei MsgBoxen nacheinander
Informationen und Beispiele zu den hier genannten Dialog-Elementen:

|
Betrifft: Zwei MsgBoxen nacheinander
von: Wolfgang Friese
Geschrieben am: 24.11.2003 14:14:11
Tach zusammen,
ich habe eine UserForm mit vielen Textfeldern erstellt. In das Textfeld "txtAdresse" soll auf jeden Fall ein Wert eingegeben werden. Dieses Problem habe ich mit Hilfe des Forums lösen können. Wenn nun kein Wert in das Textfeld eingegeben wird erscheint die Meldung:
Meldung = MsgBox("Erstes Zeichen ein Buchstabe", vbRetryCancel + vbExclamation, Meldungsfenster)
und der Anwender kann wählen ob er einen neuen Versuch starten will oder nicht. Bei vbRetry läuft alles wunschgemäß.
Wenn der Anwender vbCancel wählt wird die Sub cmdEnd_Click() aufgerufen. Hier kann nochmal gewählt werden zwischen Beenden und weitermachen. Wenn nun auf die Frage Beenden mit nein geantwortet wird soll der Focus wieder auf das Feld
"txtAdresse" gesetzt werden und der Cursor dort blinken.
Hier mein Problem: Der Cursor blinkt im folgenden Feld "txtPLZ" und nicht im Feld "txtAdresse"
Wer weiß da Rat?
'Prüfen ob das Feld Adressen eine Eingabe hat, Zwangseingabe
Private Sub txtAdresse_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Meldung
If Me.txtAdresse.Text = "" Or IsNumeric(txtAdresse) = True Then
Meldung = MsgBox("Erstes Zeichen ein Buchstabe", vbRetryCancel + vbExclamation, Meldungsfenster)
If Meldung = vbRetry Then
Me.txtAdresse = ""
Me.txtAdresse.SetFocus
Cancel = True
End If
End If
If Meldung = vbCancel Then Call cmdEnd_Click
End If
End Sub
Private Sub cmdEnd_Click()
Dim EndMeldung
EndMeldung = MsgBox("Wollen Sie die Eingabe beenden?", vbYesNo + vbQuestion)
If EndMeldung = vbYes Then End 'Beendet das Makro richtig
If EndMeldung = vbNo Then 'Funktioniert nicht, wenn vorher die MSGBOX
Me.txtAdresse = "" ' Wiederholen Abbrechen aufgerufen wurde
Me.txtAdresse.SetFocus
Cancel = True
End If
End Sub
Vielen Dank im Voraus
Wolfgang
Betrifft: Setfocus?
von: Michael Scheffler
Geschrieben am: 24.11.2003 14:43:15