cibleo
XLDnaute Impliqué
Bonsoir le forum,
Cliquez sur le bouton "Recherche Montants" pour faire apparaître le formulaire.
Cliquez maintenant sur le bouton "Lancer la recherche" en laissant les 2 textbox vides.
L'événement Frame1.exit se déclenche et me propose une fonction MsgBox dans le cas des 2 textbox vides.
Si oui le focus se place bien sur textbox1.
Si non je décharge le formulaire et là problème :
Unload me rédéclenche Frame1.exit et fait apparaitre une seconde fois la MsgBox.
Je pense plutôt à une erreur de conception.
Comment l'éviter ?
Merci Cibleo
PS : J'utilise Frame1.exit car l'événement Textbox2.exit ne se déclenchait pas à cause du Frame.
Cliquez sur le bouton "Recherche Montants" pour faire apparaître le formulaire.
Cliquez maintenant sur le bouton "Lancer la recherche" en laissant les 2 textbox vides.
L'événement Frame1.exit se déclenche et me propose une fonction MsgBox dans le cas des 2 textbox vides.
VB:
Private Sub Frame1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim c As Control, rep As Byte
For Each c In Frame1.Controls
If TypeOf c Is MSForms.TextBox Then
If c.Name = "TextBox2" Then
If c.Value <> "" Then
If Val(c.Value) <= Val(TextBox1.Value) Then
MsgBox "Vous devez entrer une valeur supérieure dans le 2ème champ !"
c.Value = ""
Cancel = True
End If
Exit Sub
End If
' If TextBox2 = "" And TextBox1 = "" Then
' MsgBox "Vous devez remplir les 2 champs !"
' Cancel = True
' Exit Sub
' End If
If TextBox2 = "" And TextBox1 = "" Then
rep = MsgBox("Voulez-vous remplir les 2 champs ?", vbYesNo + vbQuestion, "Validation")
If rep = vbYes Then Cancel = True: Exit Sub
Unload Me: Exit Sub
End If
MsgBox "Vous devez entrer une valeur dans le 2ème champ !"
Cancel = True 'bloque le curseur dans le textbox
End If
End If
Next c
End Sub
Si oui le focus se place bien sur textbox1.
Si non je décharge le formulaire et là problème :
Unload me rédéclenche Frame1.exit et fait apparaitre une seconde fois la MsgBox.
Je pense plutôt à une erreur de conception.
Comment l'éviter ?
Merci Cibleo
PS : J'utilise Frame1.exit car l'événement Textbox2.exit ne se déclenchait pas à cause du Frame.
Pièces jointes
Dernière édition: