Bonjour à toutes et tous.
J'ai un pb avec un userform, qui contient des textbox et des combo.
Sur un des textbox j'ai des contrôles de saisie dont une sub textbox_exit
pour saisie obligatoire (retour par setfocus)
Mais voilà si je clique sur le bouton fermer (Unload Me) le textbox vide,
la sub textbox_exit fait son job et veux faire le setfocus sur le textbox
alors que le userform est fermé !!
erreur 2110 : le focus ne peut-etre déplacé sur le contrôle car celui-ci
est invisible, non activé, ou d'un type n'acceptant pas le focus.
Question : peut-on en cliquant sur ce bouton fermer, annuler les
différentes procédures aux différents objets de ce(s) userform(s) ?? car
là je suis bloqué ne sachant contourner la difficulté.
Merci du coup de pouce.
Cordialement.
Eliot
Bonjour à toutes et tous.
J'ai un pb avec un userform, qui contient des textbox et des combo.
Sur un des textbox j'ai des contrôles de saisie dont une sub textbox_exit
pour saisie obligatoire (retour par setfocus)
Mais voilà si je clique sur le bouton fermer (Unload Me) le textbox vide,
la sub textbox_exit fait son job et veux faire le setfocus sur le textbox
alors que le userform est fermé !!
erreur 2110 : le focus ne peut-etre déplacé sur le contrôle car celui-ci
est invisible, non activé, ou d'un type n'acceptant pas le focus.
Question : peut-on en cliquant sur ce bouton fermer, annuler les
différentes procédures aux différents objets de ce(s) userform(s) ?? car
là je suis bloqué ne sachant contourner la difficulté.
Merci du coup de pouce.
Cordialement.
Eliot
Bonjour à toutes et tous.
J'ai un pb avec un userform, qui contient des textbox et des combo.
Sur un des textbox j'ai des contrôles de saisie dont une sub textbox_exit
pour saisie obligatoire (retour par setfocus)
Mais voilà si je clique sur le bouton fermer (Unload Me) le textbox vide,
la sub textbox_exit fait son job et veux faire le setfocus sur le textbox
alors que le userform est fermé !!
erreur 2110 : le focus ne peut-etre déplacé sur le contrôle car celui-ci
est invisible, non activé, ou d'un type n'acceptant pas le focus.
Question : peut-on en cliquant sur ce bouton fermer, annuler les
différentes procédures aux différents objets de ce(s) userform(s) ?? car
là je suis bloqué ne sachant contourner la difficulté.
Merci du coup de pouce.
Cordialement.
Eliot
Je (me) répond : j'ai placé les instructions de _Exit vers _BeforeUpdate
et
cela marche !!
Mais autre question : comment rendre enabled=true un bouton de commande
seulement si mes trois textbox et mes deux combobox sont renseignés ??
Encore merci
Eliot
"EliotNaiss" a écrit dans le message de news:Bonjour à toutes et tous.
J'ai un pb avec un userform, qui contient des textbox et des combo.
Sur un des textbox j'ai des contrôles de saisie dont une sub
textbox_exit
pour saisie obligatoire (retour par setfocus)
Mais voilà si je clique sur le bouton fermer (Unload Me) le textbox
vide,
la sub textbox_exit fait son job et veux faire le setfocus sur le
textbox
alors que le userform est fermé !!
erreur 2110 : le focus ne peut-etre déplacé sur le contrôle car celui-ci
est invisible, non activé, ou d'un type n'acceptant pas le focus.
Question : peut-on en cliquant sur ce bouton fermer, annuler les
différentes procédures aux différents objets de ce(s) userform(s) ?? car
là je suis bloqué ne sachant contourner la difficulté.
Merci du coup de pouce.
Cordialement.
Eliot
Je (me) répond : j'ai placé les instructions de _Exit vers _BeforeUpdate
et
cela marche !!
Mais autre question : comment rendre enabled=true un bouton de commande
seulement si mes trois textbox et mes deux combobox sont renseignés ??
Encore merci
Eliot
"EliotNaiss" <personne@microsoft.com> a écrit dans le message de news:
uOmf512pFHA.3004@TK2MSFTNGP15.phx.gbl...
Bonjour à toutes et tous.
J'ai un pb avec un userform, qui contient des textbox et des combo.
Sur un des textbox j'ai des contrôles de saisie dont une sub
textbox_exit
pour saisie obligatoire (retour par setfocus)
Mais voilà si je clique sur le bouton fermer (Unload Me) le textbox
vide,
la sub textbox_exit fait son job et veux faire le setfocus sur le
textbox
alors que le userform est fermé !!
erreur 2110 : le focus ne peut-etre déplacé sur le contrôle car celui-ci
est invisible, non activé, ou d'un type n'acceptant pas le focus.
Question : peut-on en cliquant sur ce bouton fermer, annuler les
différentes procédures aux différents objets de ce(s) userform(s) ?? car
là je suis bloqué ne sachant contourner la difficulté.
Merci du coup de pouce.
Cordialement.
Eliot
Je (me) répond : j'ai placé les instructions de _Exit vers _BeforeUpdate
et
cela marche !!
Mais autre question : comment rendre enabled=true un bouton de commande
seulement si mes trois textbox et mes deux combobox sont renseignés ??
Encore merci
Eliot
"EliotNaiss" a écrit dans le message de news:Bonjour à toutes et tous.
J'ai un pb avec un userform, qui contient des textbox et des combo.
Sur un des textbox j'ai des contrôles de saisie dont une sub
textbox_exit
pour saisie obligatoire (retour par setfocus)
Mais voilà si je clique sur le bouton fermer (Unload Me) le textbox
vide,
la sub textbox_exit fait son job et veux faire le setfocus sur le
textbox
alors que le userform est fermé !!
erreur 2110 : le focus ne peut-etre déplacé sur le contrôle car celui-ci
est invisible, non activé, ou d'un type n'acceptant pas le focus.
Question : peut-on en cliquant sur ce bouton fermer, annuler les
différentes procédures aux différents objets de ce(s) userform(s) ?? car
là je suis bloqué ne sachant contourner la difficulté.
Merci du coup de pouce.
Cordialement.
Eliot
Bonjour,
Je profite du post, j'ai essayé de tester la solution de Michel (Annuler
la
saisie avec un contrôle des données sur l'évènement Exit) et je me suis
bien
sûr planté. Où ai-je fauté, svp ?
Salutations
Steph D
Dim MaVar As Boolean
'***************************************************************************
******************************
'Pour ne pas pouvoir fermer le formulaire avec la croix
'***************************************************************************
******************************
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
MsgBox "Vous ne pouvez pas utiliser ce bouton de fermeture
!",
vbOKOnly, "Destroy"
Cancel = True
End If
Reponse = MsgBox("Souhaitez-vous quitter la fenêtre ?", vbYesNo +
vbQuestion, "Destroy")
If Reponse = vbYes Then ' L'utilisateur a choisi Oui.
MaVar = True ' "Oui" ' Effectue une action.
End If
End Sub
'***************************************************************************
******************************
'A l'ouverture du formulaire du formulaire de saisie
'***************************************************************************
******************************
Private Sub UserForm_Activate()
Load MonUserform
End Sub
'***************************************************************************
******************************
'Initialisation du formulaire de saisie
'***************************************************************************
******************************
Private Sub UserForm_Initialize()
tbMonNom = ""
MaVar = False
End Sub
'***************************************************************************
******************************
' contrôle de la saisie : 4 lettres maximum
'***************************************************************************
******************************
Private Sub tbMonNom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If MaVar = True Then Exit Sub
If Len(tbMonNom.Text) <= 4 Then
MsgBox "La taille de votre nom doit être au minimum de 5 lettres",
vbOKOnly, "Destroy"
Cancel = True
End If
End Sub
'***************************************************************************
******************************
'Boutons
'***************************************************************************
******************************
Private Sub booOK_Click()
If tbMonNom = "" Then
MsgBox "Vous devez renseigner votre nom !!!", vbOKOnly,
"Destroy"
tbMonNom.SetFocus
Exit Sub
End If
Me.Hide
End Sub
Private Sub Bou_Annuler_Click()
Unload Me
End Sub
Bonjour,
Je profite du post, j'ai essayé de tester la solution de Michel (Annuler
la
saisie avec un contrôle des données sur l'évènement Exit) et je me suis
bien
sûr planté. Où ai-je fauté, svp ?
Salutations
Steph D
Dim MaVar As Boolean
'***************************************************************************
******************************
'Pour ne pas pouvoir fermer le formulaire avec la croix
'***************************************************************************
******************************
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
MsgBox "Vous ne pouvez pas utiliser ce bouton de fermeture
!",
vbOKOnly, "Destroy"
Cancel = True
End If
Reponse = MsgBox("Souhaitez-vous quitter la fenêtre ?", vbYesNo +
vbQuestion, "Destroy")
If Reponse = vbYes Then ' L'utilisateur a choisi Oui.
MaVar = True ' "Oui" ' Effectue une action.
End If
End Sub
'***************************************************************************
******************************
'A l'ouverture du formulaire du formulaire de saisie
'***************************************************************************
******************************
Private Sub UserForm_Activate()
Load MonUserform
End Sub
'***************************************************************************
******************************
'Initialisation du formulaire de saisie
'***************************************************************************
******************************
Private Sub UserForm_Initialize()
tbMonNom = ""
MaVar = False
End Sub
'***************************************************************************
******************************
' contrôle de la saisie : 4 lettres maximum
'***************************************************************************
******************************
Private Sub tbMonNom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If MaVar = True Then Exit Sub
If Len(tbMonNom.Text) <= 4 Then
MsgBox "La taille de votre nom doit être au minimum de 5 lettres",
vbOKOnly, "Destroy"
Cancel = True
End If
End Sub
'***************************************************************************
******************************
'Boutons
'***************************************************************************
******************************
Private Sub booOK_Click()
If tbMonNom = "" Then
MsgBox "Vous devez renseigner votre nom !!!", vbOKOnly,
"Destroy"
tbMonNom.SetFocus
Exit Sub
End If
Me.Hide
End Sub
Private Sub Bou_Annuler_Click()
Unload Me
End Sub
Bonjour,
Je profite du post, j'ai essayé de tester la solution de Michel (Annuler
la
saisie avec un contrôle des données sur l'évènement Exit) et je me suis
bien
sûr planté. Où ai-je fauté, svp ?
Salutations
Steph D
Dim MaVar As Boolean
'***************************************************************************
******************************
'Pour ne pas pouvoir fermer le formulaire avec la croix
'***************************************************************************
******************************
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
MsgBox "Vous ne pouvez pas utiliser ce bouton de fermeture
!",
vbOKOnly, "Destroy"
Cancel = True
End If
Reponse = MsgBox("Souhaitez-vous quitter la fenêtre ?", vbYesNo +
vbQuestion, "Destroy")
If Reponse = vbYes Then ' L'utilisateur a choisi Oui.
MaVar = True ' "Oui" ' Effectue une action.
End If
End Sub
'***************************************************************************
******************************
'A l'ouverture du formulaire du formulaire de saisie
'***************************************************************************
******************************
Private Sub UserForm_Activate()
Load MonUserform
End Sub
'***************************************************************************
******************************
'Initialisation du formulaire de saisie
'***************************************************************************
******************************
Private Sub UserForm_Initialize()
tbMonNom = ""
MaVar = False
End Sub
'***************************************************************************
******************************
' contrôle de la saisie : 4 lettres maximum
'***************************************************************************
******************************
Private Sub tbMonNom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If MaVar = True Then Exit Sub
If Len(tbMonNom.Text) <= 4 Then
MsgBox "La taille de votre nom doit être au minimum de 5 lettres",
vbOKOnly, "Destroy"
Cancel = True
End If
End Sub
'***************************************************************************
******************************
'Boutons
'***************************************************************************
******************************
Private Sub booOK_Click()
If tbMonNom = "" Then
MsgBox "Vous devez renseigner votre nom !!!", vbOKOnly,
"Destroy"
tbMonNom.SetFocus
Exit Sub
End If
Me.Hide
End Sub
Private Sub Bou_Annuler_Click()
Unload Me
End Sub
Salut,
Essaie comme ceci
Private Sub tbMonNom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If MaVar = True Then Exit Sub
If Len(tbMonNom.Text) <= 4 Then
MsgBox "La taille de votre nom doit être au minimum de 5 lettres",
vbOKOnly, "Destroy"
Cancel = True
End If
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
MaVar = True
Unload Me
Else
MaVar = False
Cancel = True
End If
End Sub
Salut,
Essaie comme ceci
Private Sub tbMonNom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If MaVar = True Then Exit Sub
If Len(tbMonNom.Text) <= 4 Then
MsgBox "La taille de votre nom doit être au minimum de 5 lettres",
vbOKOnly, "Destroy"
Cancel = True
End If
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
MaVar = True
Unload Me
Else
MaVar = False
Cancel = True
End If
End Sub
Salut,
Essaie comme ceci
Private Sub tbMonNom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If MaVar = True Then Exit Sub
If Len(tbMonNom.Text) <= 4 Then
MsgBox "La taille de votre nom doit être au minimum de 5 lettres",
vbOKOnly, "Destroy"
Cancel = True
End If
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
MaVar = True
Unload Me
Else
MaVar = False
Cancel = True
End If
End Sub
"MPi" a écrit dans le message de
news:KjCOe.59967$Salut,
Essaie comme ceci
Private Sub tbMonNom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If MaVar = True Then Exit Sub
If Len(tbMonNom.Text) <= 4 Then
MsgBox "La taille de votre nom doit être au minimum de 5
lettres",
vbOKOnly, "Destroy"
Cancel = True
End If
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
MaVar = True
Unload Me
Else
MaVar = False
Cancel = True
End If
End Sub
Merci, cela marche bien quand je quitte le formulaire avec la croix.
En revanche, si j'essaie d'abandonner la saisie en cliquant sur le bouton
Annuler de mon formulaire (Unload Me), et bien cela boucle sur le message
"La taille de votre nom doit être au minimum de 5 lettres". Ceci que
j'utilise l'évènement Exit ou BeforeUpdate. Comment faire pour ne pas en
tenir compte ? Merci d'avance
Steph D
"MPi" <m_pare@supprimer.videotron.ca> a écrit dans le message de
news:KjCOe.59967$7b7.651213@weber.videotron.net...
Salut,
Essaie comme ceci
Private Sub tbMonNom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If MaVar = True Then Exit Sub
If Len(tbMonNom.Text) <= 4 Then
MsgBox "La taille de votre nom doit être au minimum de 5
lettres",
vbOKOnly, "Destroy"
Cancel = True
End If
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
MaVar = True
Unload Me
Else
MaVar = False
Cancel = True
End If
End Sub
Merci, cela marche bien quand je quitte le formulaire avec la croix.
En revanche, si j'essaie d'abandonner la saisie en cliquant sur le bouton
Annuler de mon formulaire (Unload Me), et bien cela boucle sur le message
"La taille de votre nom doit être au minimum de 5 lettres". Ceci que
j'utilise l'évènement Exit ou BeforeUpdate. Comment faire pour ne pas en
tenir compte ? Merci d'avance
Steph D
"MPi" a écrit dans le message de
news:KjCOe.59967$Salut,
Essaie comme ceci
Private Sub tbMonNom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If MaVar = True Then Exit Sub
If Len(tbMonNom.Text) <= 4 Then
MsgBox "La taille de votre nom doit être au minimum de 5
lettres",
vbOKOnly, "Destroy"
Cancel = True
End If
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
MaVar = True
Unload Me
Else
MaVar = False
Cancel = True
End If
End Sub
Merci, cela marche bien quand je quitte le formulaire avec la croix.
En revanche, si j'essaie d'abandonner la saisie en cliquant sur le bouton
Annuler de mon formulaire (Unload Me), et bien cela boucle sur le message
"La taille de votre nom doit être au minimum de 5 lettres". Ceci que
j'utilise l'évènement Exit ou BeforeUpdate. Comment faire pour ne pas en
tenir compte ? Merci d'avance
Steph D