Bonsoir,
Je me permets d'ouvrir un nouveau post sur cette question, car malgré les
conseils judicieux de MPI (qui m'ont permis de mieux gérer le QueryClose),
je ne m'en sors toujours pas pour la gestion du bouton Annuler.
J'aimerais pouvoir annuler la saisie, commencée dans un textbox, en
cliquant
simplement sur le bouton Annuler. Avec ce bout de code, Excel ne me le
permet pas.
Merci d'avance et promis je ne vous embêterai plus ce soir. Bonne fin de
soirée ou début de journée
Steph D
Sub Lance()
Load fmLeMien
fmLeMien.Show
End Sub
Private Sub UserForm_Activate()
txtMonNom.Text = ""
End Sub
Private Sub txtMonNom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(txtMonNom.Text) = 0 Then Exit Sub
If Len(txtMonNom.Text) <= 4 Then
MsgBox "Saisie 5 caractères minimum"
Cancel = True
End If
End Sub
Private Sub cmdOK_Click()
If txtMonNom = "" Then
MsgBox "Saisie obligatoire"
txtMonNom.SetFocus
Exit Sub
End If
Unload Me
End Sub
Private Sub cmdAnnuler_Click()
Unload Me
End Sub
Bonsoir,
Je me permets d'ouvrir un nouveau post sur cette question, car malgré les
conseils judicieux de MPI (qui m'ont permis de mieux gérer le QueryClose),
je ne m'en sors toujours pas pour la gestion du bouton Annuler.
J'aimerais pouvoir annuler la saisie, commencée dans un textbox, en
cliquant
simplement sur le bouton Annuler. Avec ce bout de code, Excel ne me le
permet pas.
Merci d'avance et promis je ne vous embêterai plus ce soir. Bonne fin de
soirée ou début de journée
Steph D
Sub Lance()
Load fmLeMien
fmLeMien.Show
End Sub
Private Sub UserForm_Activate()
txtMonNom.Text = ""
End Sub
Private Sub txtMonNom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(txtMonNom.Text) = 0 Then Exit Sub
If Len(txtMonNom.Text) <= 4 Then
MsgBox "Saisie 5 caractères minimum"
Cancel = True
End If
End Sub
Private Sub cmdOK_Click()
If txtMonNom = "" Then
MsgBox "Saisie obligatoire"
txtMonNom.SetFocus
Exit Sub
End If
Unload Me
End Sub
Private Sub cmdAnnuler_Click()
Unload Me
End Sub
Bonsoir,
Je me permets d'ouvrir un nouveau post sur cette question, car malgré les
conseils judicieux de MPI (qui m'ont permis de mieux gérer le QueryClose),
je ne m'en sors toujours pas pour la gestion du bouton Annuler.
J'aimerais pouvoir annuler la saisie, commencée dans un textbox, en
cliquant
simplement sur le bouton Annuler. Avec ce bout de code, Excel ne me le
permet pas.
Merci d'avance et promis je ne vous embêterai plus ce soir. Bonne fin de
soirée ou début de journée
Steph D
Sub Lance()
Load fmLeMien
fmLeMien.Show
End Sub
Private Sub UserForm_Activate()
txtMonNom.Text = ""
End Sub
Private Sub txtMonNom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(txtMonNom.Text) = 0 Then Exit Sub
If Len(txtMonNom.Text) <= 4 Then
MsgBox "Saisie 5 caractères minimum"
Cancel = True
End If
End Sub
Private Sub cmdOK_Click()
If txtMonNom = "" Then
MsgBox "Saisie obligatoire"
txtMonNom.SetFocus
Exit Sub
End If
Unload Me
End Sub
Private Sub cmdAnnuler_Click()
Unload Me
End Sub
Me semblait que je t'avais proposé Me.Repaint ... justement pour le
phénomène que tu as observé. ...si tu préfères DoEvents ... je
n'ai pas de problème avec ça !
Me semblait que je t'avais proposé Me.Repaint ... justement pour le
phénomène que tu as observé. ...si tu préfères DoEvents ... je
n'ai pas de problème avec ça !
Me semblait que je t'avais proposé Me.Repaint ... justement pour le
phénomène que tu as observé. ...si tu préfères DoEvents ... je
n'ai pas de problème avec ça !
Bonjour Michel,
Je crois que je vais abandonner l'idée de tester sur l'évènement Exit. Je
commence à en avoir mal au cerveau.
Par rapport à tout ce que tu m'as montré (le code ci-dessous si j'ai bien
compris), j'ai refait quelques tests :
- Si je quitte le formulaire par la Croix quel que soit ma saisie, c'est
parfait.
- Si j'ai bien au moins 5 caractères dans le textbox, et que je quitte le
formulaire par le bouton Annuler, c'est parfait. Le QueryClose gère la
sortie.
- Si j'ai moins de 5 caractères dans le textbox, et que je quitte le
formulaire par le bouton Annuler, ce n'est pas bon, je boucle sur
l'évènement Exit et le message "Saisie 5 caractères minimum".
- Si j'ai bien au moins 5 caractères dans le textbox, et que je valide le
formulaire par le bouton OK, mes données sont bien stockées mais le
Queryclose s'enclenche. Un peu gênant.
"Je me mords trop la queue" et je crois que je vais revenir à la procédure
toute simple de validation sur le bouton OK uniquement.
Merci encore pour ton aide et ta patience. Bonne journée
Steph D.
'--------------------------------------------------------------------
Dim Terminer As Boolean
'--------------------------------------------------------------------
Sub Lance()
Load UserForm1
UserForm1.Show
End Sub
'--------------------------------------------------------------------
Private Sub UserForm_Activate()
txtMonNom.Text = ""
End Sub
'--------------------------------------------------------------------
Private Sub txtMonNom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(txtMonNom.Text) = 0 Then Exit Sub
If Terminer = True Then Exit Sub
If Len(txtMonNom.Text) <= 4 Then
MsgBox "Saisie 5 caractères minimum"
Cancel = True
End If
End Sub
'--------------------------------------------------------------------
Private Sub cmdOK_Click()
If txtMonNom = "" Then
MsgBox "Saisie obligatoire"
txtMonNom.SetFocus
Exit Sub
End If
'ici procédure de stockage de données
Unload Me
End Sub
'--------------------------------------------------------------------
Private Sub cmdAnnuler_Click()
Terminer = True
Unload Me
End Sub
'--------------------------------------------------------------------
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Dim Rep As Integer
Rep = MsgBox("Voulez-vous vraiment quitter ?", vbYesNo)
If Rep = vbYes Then
Terminer = True
Unload Me
Else
Terminer = False
Cancel = True
End If
End Sub
Bonjour Michel,
Je crois que je vais abandonner l'idée de tester sur l'évènement Exit. Je
commence à en avoir mal au cerveau.
Par rapport à tout ce que tu m'as montré (le code ci-dessous si j'ai bien
compris), j'ai refait quelques tests :
- Si je quitte le formulaire par la Croix quel que soit ma saisie, c'est
parfait.
- Si j'ai bien au moins 5 caractères dans le textbox, et que je quitte le
formulaire par le bouton Annuler, c'est parfait. Le QueryClose gère la
sortie.
- Si j'ai moins de 5 caractères dans le textbox, et que je quitte le
formulaire par le bouton Annuler, ce n'est pas bon, je boucle sur
l'évènement Exit et le message "Saisie 5 caractères minimum".
- Si j'ai bien au moins 5 caractères dans le textbox, et que je valide le
formulaire par le bouton OK, mes données sont bien stockées mais le
Queryclose s'enclenche. Un peu gênant.
"Je me mords trop la queue" et je crois que je vais revenir à la procédure
toute simple de validation sur le bouton OK uniquement.
Merci encore pour ton aide et ta patience. Bonne journée
Steph D.
'--------------------------------------------------------------------
Dim Terminer As Boolean
'--------------------------------------------------------------------
Sub Lance()
Load UserForm1
UserForm1.Show
End Sub
'--------------------------------------------------------------------
Private Sub UserForm_Activate()
txtMonNom.Text = ""
End Sub
'--------------------------------------------------------------------
Private Sub txtMonNom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(txtMonNom.Text) = 0 Then Exit Sub
If Terminer = True Then Exit Sub
If Len(txtMonNom.Text) <= 4 Then
MsgBox "Saisie 5 caractères minimum"
Cancel = True
End If
End Sub
'--------------------------------------------------------------------
Private Sub cmdOK_Click()
If txtMonNom = "" Then
MsgBox "Saisie obligatoire"
txtMonNom.SetFocus
Exit Sub
End If
'ici procédure de stockage de données
Unload Me
End Sub
'--------------------------------------------------------------------
Private Sub cmdAnnuler_Click()
Terminer = True
Unload Me
End Sub
'--------------------------------------------------------------------
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Dim Rep As Integer
Rep = MsgBox("Voulez-vous vraiment quitter ?", vbYesNo)
If Rep = vbYes Then
Terminer = True
Unload Me
Else
Terminer = False
Cancel = True
End If
End Sub
Bonjour Michel,
Je crois que je vais abandonner l'idée de tester sur l'évènement Exit. Je
commence à en avoir mal au cerveau.
Par rapport à tout ce que tu m'as montré (le code ci-dessous si j'ai bien
compris), j'ai refait quelques tests :
- Si je quitte le formulaire par la Croix quel que soit ma saisie, c'est
parfait.
- Si j'ai bien au moins 5 caractères dans le textbox, et que je quitte le
formulaire par le bouton Annuler, c'est parfait. Le QueryClose gère la
sortie.
- Si j'ai moins de 5 caractères dans le textbox, et que je quitte le
formulaire par le bouton Annuler, ce n'est pas bon, je boucle sur
l'évènement Exit et le message "Saisie 5 caractères minimum".
- Si j'ai bien au moins 5 caractères dans le textbox, et que je valide le
formulaire par le bouton OK, mes données sont bien stockées mais le
Queryclose s'enclenche. Un peu gênant.
"Je me mords trop la queue" et je crois que je vais revenir à la procédure
toute simple de validation sur le bouton OK uniquement.
Merci encore pour ton aide et ta patience. Bonne journée
Steph D.
'--------------------------------------------------------------------
Dim Terminer As Boolean
'--------------------------------------------------------------------
Sub Lance()
Load UserForm1
UserForm1.Show
End Sub
'--------------------------------------------------------------------
Private Sub UserForm_Activate()
txtMonNom.Text = ""
End Sub
'--------------------------------------------------------------------
Private Sub txtMonNom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(txtMonNom.Text) = 0 Then Exit Sub
If Terminer = True Then Exit Sub
If Len(txtMonNom.Text) <= 4 Then
MsgBox "Saisie 5 caractères minimum"
Cancel = True
End If
End Sub
'--------------------------------------------------------------------
Private Sub cmdOK_Click()
If txtMonNom = "" Then
MsgBox "Saisie obligatoire"
txtMonNom.SetFocus
Exit Sub
End If
'ici procédure de stockage de données
Unload Me
End Sub
'--------------------------------------------------------------------
Private Sub cmdAnnuler_Click()
Terminer = True
Unload Me
End Sub
'--------------------------------------------------------------------
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Dim Rep As Integer
Rep = MsgBox("Voulez-vous vraiment quitter ?", vbYesNo)
If Rep = vbYes Then
Terminer = True
Unload Me
Else
Terminer = False
Cancel = True
End If
End Sub