Je rencontre un problème dans un userform :
Lorsqu'un utilisateur entre une donnée dans un textbox et appuie sur Entrée,
la donnée est vérifiée et si elle n'est pas valide, il doit en re-rentrer
une nouvelle et appuyer à nouveau sur Entrée. Ainsi de suite jusqu'à ce
qu'une donnée valide soit entrée.
J'ai donc mis ce code :
Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
'Détection de l'appui sur la touche ENTER ou TAB
If KeyCode = 13 Or KeyCode = 9 Then
'Si un emplacement a été entré, le retrouve
If UserForm2.TextBox2.Value <> "" Then
Call Recherche_Emplacement(Flag)
If Flag = 1 Then
'Si l'emplacement est inconnu, on y retourne
UserForm2.Label2.Value = "Veuillez entrer une donnée valide."
UserForm2.TextBox2.Value = ""
UserForm2.TextBox2.SetFocus
End If
End If
End If
End Sub
Tout marche bien sauf que si Flag est à 1 (donnée non valide), le focus va
sur le textbox1 et ne reste pas sur le textbox2... en fait, après le
UserForm2.TextBox2.SetFocus (qui fonctionne bien), il continue la procédure
jusqu'à "End Sub" et ensuite le focus va sur le textbox1.
Or moi je veux que tant que la donnée n'est pas valide on reste sur le
textbox2.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JB
Bonjour,
Evenement BeforeUpdate?
Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) If ..... Then MsgBox "Erreur" Cancel = True End If End Sub
JB http://boisgontierjacques.free.fr
On 13 nov, 12:43, "Thierry Euzenot" <thierry.euzenot*arobase*gmail.com> wrote:
Bonjour à toutes et tous,
Je rencontre un problème dans un userform : Lorsqu'un utilisateur entre une donnée dans un textbox et appuie sur En trée, la donnée est vérifiée et si elle n'est pas valide, il doit en re-r entrer une nouvelle et appuyer à nouveau sur Entrée. Ainsi de suite jusqu' à ce qu'une donnée valide soit entrée.
J'ai donc mis ce code : Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'Détection de l'appui sur la touche ENTER ou TAB If KeyCode = 13 Or KeyCode = 9 Then 'Si un emplacement a été entré, le retrouve If UserForm2.TextBox2.Value <> "" Then Call Recherche_Emplacement(Flag) If Flag = 1 Then 'Si l'emplacement est inconnu, on y retourne UserForm2.Label2.Value = "Veuillez entrer une donnée vali de." UserForm2.TextBox2.Value = "" UserForm2.TextBox2.SetFocus End If End If End If End Sub
Tout marche bien sauf que si Flag est à 1 (donnée non valide), le foc us va sur le textbox1 et ne reste pas sur le textbox2... en fait, après le UserForm2.TextBox2.SetFocus (qui fonctionne bien), il continue la procé dure jusqu'à "End Sub" et ensuite le focus va sur le textbox1. Or moi je veux que tant que la donnée n'est pas valide on reste sur le textbox2.
Please help !
Thierry
Bonjour,
Evenement BeforeUpdate?
Private Sub TextBox2_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If ..... Then
MsgBox "Erreur"
Cancel = True
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 13 nov, 12:43, "Thierry Euzenot"
<thierry.euzenot*arobase*gmail.com> wrote:
Bonjour à toutes et tous,
Je rencontre un problème dans un userform :
Lorsqu'un utilisateur entre une donnée dans un textbox et appuie sur En trée,
la donnée est vérifiée et si elle n'est pas valide, il doit en re-r entrer
une nouvelle et appuyer à nouveau sur Entrée. Ainsi de suite jusqu' à ce
qu'une donnée valide soit entrée.
J'ai donc mis ce code :
Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
'Détection de l'appui sur la touche ENTER ou TAB
If KeyCode = 13 Or KeyCode = 9 Then
'Si un emplacement a été entré, le retrouve
If UserForm2.TextBox2.Value <> "" Then
Call Recherche_Emplacement(Flag)
If Flag = 1 Then
'Si l'emplacement est inconnu, on y retourne
UserForm2.Label2.Value = "Veuillez entrer une donnée vali de."
UserForm2.TextBox2.Value = ""
UserForm2.TextBox2.SetFocus
End If
End If
End If
End Sub
Tout marche bien sauf que si Flag est à 1 (donnée non valide), le foc us va
sur le textbox1 et ne reste pas sur le textbox2... en fait, après le
UserForm2.TextBox2.SetFocus (qui fonctionne bien), il continue la procé dure
jusqu'à "End Sub" et ensuite le focus va sur le textbox1.
Or moi je veux que tant que la donnée n'est pas valide on reste sur le
textbox2.
Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) If ..... Then MsgBox "Erreur" Cancel = True End If End Sub
JB http://boisgontierjacques.free.fr
On 13 nov, 12:43, "Thierry Euzenot" <thierry.euzenot*arobase*gmail.com> wrote:
Bonjour à toutes et tous,
Je rencontre un problème dans un userform : Lorsqu'un utilisateur entre une donnée dans un textbox et appuie sur En trée, la donnée est vérifiée et si elle n'est pas valide, il doit en re-r entrer une nouvelle et appuyer à nouveau sur Entrée. Ainsi de suite jusqu' à ce qu'une donnée valide soit entrée.
J'ai donc mis ce code : Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'Détection de l'appui sur la touche ENTER ou TAB If KeyCode = 13 Or KeyCode = 9 Then 'Si un emplacement a été entré, le retrouve If UserForm2.TextBox2.Value <> "" Then Call Recherche_Emplacement(Flag) If Flag = 1 Then 'Si l'emplacement est inconnu, on y retourne UserForm2.Label2.Value = "Veuillez entrer une donnée vali de." UserForm2.TextBox2.Value = "" UserForm2.TextBox2.SetFocus End If End If End If End Sub
Tout marche bien sauf que si Flag est à 1 (donnée non valide), le foc us va sur le textbox1 et ne reste pas sur le textbox2... en fait, après le UserForm2.TextBox2.SetFocus (qui fonctionne bien), il continue la procé dure jusqu'à "End Sub" et ensuite le focus va sur le textbox1. Or moi je veux que tant que la donnée n'est pas valide on reste sur le textbox2.
Please help !
Thierry
Thierry Euzenot
Précisions supplémentaires.
Dans mon userform j'ai aussi ces procédures ci : Private Sub TextBox1_Enter() UserForm2.TextBox1.BackColor = &HFFFFC0 End Sub Private Sub TextBox2_Enter() UserForm2.TextBox2.BackColor = &HFFFFC0 End Sub Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) UserForm2.TextBox1.BackColor = &H80000005 End Sub Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean) UserForm2.TextBox2.BackColor = &H80000005 End Sub
Le déroulement exact des opérations lorsque une donnée non valide est entrée, après passage du "End sub", le programme va dans le Private Sub TextBox2_Exit, excécute l'instruction puis va dans le Private Sub TextBox1_Enter(). Ce qui me fait dire que c'est bien le textbox1 qui prend le focus.
"Thierry Euzenot" <thierry.euzenot*arobase*gmail.com> a écrit dans le message de news:
Bonjour à toutes et tous,
Je rencontre un problème dans un userform : Lorsqu'un utilisateur entre une donnée dans un textbox et appuie sur Entrée, la donnée est vérifiée et si elle n'est pas valide, il doit en re-rentrer une nouvelle et appuyer à nouveau sur Entrée. Ainsi de suite jusqu'à ce qu'une donnée valide soit entrée.
J'ai donc mis ce code : Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'Détection de l'appui sur la touche ENTER ou TAB If KeyCode = 13 Or KeyCode = 9 Then 'Si un emplacement a été entré, le retrouve If UserForm2.TextBox2.Value <> "" Then Call Recherche_Emplacement(Flag) If Flag = 1 Then 'Si l'emplacement est inconnu, on y retourne UserForm2.Label2.Value = "Veuillez entrer une donnée valide." UserForm2.TextBox2.Value = "" UserForm2.TextBox2.SetFocus End If End If End If End Sub
Tout marche bien sauf que si Flag est à 1 (donnée non valide), le focus va sur le textbox1 et ne reste pas sur le textbox2... en fait, après le UserForm2.TextBox2.SetFocus (qui fonctionne bien), il continue la procédure jusqu'à "End Sub" et ensuite le focus va sur le textbox1. Or moi je veux que tant que la donnée n'est pas valide on reste sur le textbox2.
Please help !
Thierry
Précisions supplémentaires.
Dans mon userform j'ai aussi ces procédures ci :
Private Sub TextBox1_Enter()
UserForm2.TextBox1.BackColor = &HFFFFC0
End Sub
Private Sub TextBox2_Enter()
UserForm2.TextBox2.BackColor = &HFFFFC0
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
UserForm2.TextBox1.BackColor = &H80000005
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
UserForm2.TextBox2.BackColor = &H80000005
End Sub
Le déroulement exact des opérations lorsque une donnée non valide est
entrée, après passage du "End sub", le programme va dans le Private Sub
TextBox2_Exit, excécute l'instruction puis va dans le Private Sub
TextBox1_Enter(). Ce qui me fait dire que c'est bien le textbox1 qui prend
le focus.
"Thierry Euzenot" <thierry.euzenot*arobase*gmail.com> a écrit dans le
message de news: eAUL7peJIHA.1020@TK2MSFTNGP05.phx.gbl...
Bonjour à toutes et tous,
Je rencontre un problème dans un userform :
Lorsqu'un utilisateur entre une donnée dans un textbox et appuie sur
Entrée, la donnée est vérifiée et si elle n'est pas valide, il doit en
re-rentrer une nouvelle et appuyer à nouveau sur Entrée. Ainsi de suite
jusqu'à ce qu'une donnée valide soit entrée.
J'ai donc mis ce code :
Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
'Détection de l'appui sur la touche ENTER ou TAB
If KeyCode = 13 Or KeyCode = 9 Then
'Si un emplacement a été entré, le retrouve
If UserForm2.TextBox2.Value <> "" Then
Call Recherche_Emplacement(Flag)
If Flag = 1 Then
'Si l'emplacement est inconnu, on y retourne
UserForm2.Label2.Value = "Veuillez entrer une donnée valide."
UserForm2.TextBox2.Value = ""
UserForm2.TextBox2.SetFocus
End If
End If
End If
End Sub
Tout marche bien sauf que si Flag est à 1 (donnée non valide), le focus va
sur le textbox1 et ne reste pas sur le textbox2... en fait, après le
UserForm2.TextBox2.SetFocus (qui fonctionne bien), il continue la
procédure jusqu'à "End Sub" et ensuite le focus va sur le textbox1.
Or moi je veux que tant que la donnée n'est pas valide on reste sur le
textbox2.
Dans mon userform j'ai aussi ces procédures ci : Private Sub TextBox1_Enter() UserForm2.TextBox1.BackColor = &HFFFFC0 End Sub Private Sub TextBox2_Enter() UserForm2.TextBox2.BackColor = &HFFFFC0 End Sub Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) UserForm2.TextBox1.BackColor = &H80000005 End Sub Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean) UserForm2.TextBox2.BackColor = &H80000005 End Sub
Le déroulement exact des opérations lorsque une donnée non valide est entrée, après passage du "End sub", le programme va dans le Private Sub TextBox2_Exit, excécute l'instruction puis va dans le Private Sub TextBox1_Enter(). Ce qui me fait dire que c'est bien le textbox1 qui prend le focus.
"Thierry Euzenot" <thierry.euzenot*arobase*gmail.com> a écrit dans le message de news:
Bonjour à toutes et tous,
Je rencontre un problème dans un userform : Lorsqu'un utilisateur entre une donnée dans un textbox et appuie sur Entrée, la donnée est vérifiée et si elle n'est pas valide, il doit en re-rentrer une nouvelle et appuyer à nouveau sur Entrée. Ainsi de suite jusqu'à ce qu'une donnée valide soit entrée.
J'ai donc mis ce code : Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'Détection de l'appui sur la touche ENTER ou TAB If KeyCode = 13 Or KeyCode = 9 Then 'Si un emplacement a été entré, le retrouve If UserForm2.TextBox2.Value <> "" Then Call Recherche_Emplacement(Flag) If Flag = 1 Then 'Si l'emplacement est inconnu, on y retourne UserForm2.Label2.Value = "Veuillez entrer une donnée valide." UserForm2.TextBox2.Value = "" UserForm2.TextBox2.SetFocus End If End If End If End Sub
Tout marche bien sauf que si Flag est à 1 (donnée non valide), le focus va sur le textbox1 et ne reste pas sur le textbox2... en fait, après le UserForm2.TextBox2.SetFocus (qui fonctionne bien), il continue la procédure jusqu'à "End Sub" et ensuite le focus va sur le textbox1. Or moi je veux que tant que la donnée n'est pas valide on reste sur le textbox2.
Please help !
Thierry
Jacques93
Bonjour Thierry Euzenot,
Pourquoi ne pas faire le contrôle dans l'événement Exit du TextBox ?
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean) If TextBox2.Text <> ValeurOK Then Cancel = True End If End Sub
Bonjour à toutes et tous,
Je rencontre un problème dans un userform : Lorsqu'un utilisateur entre une donnée dans un textbox et appuie sur Entrée, la donnée est vérifiée et si elle n'est pas valide, il doit en re-rentrer une nouvelle et appuyer à nouveau sur Entrée. Ainsi de suite jusqu'à ce qu'une donnée valide soit entrée.
J'ai donc mis ce code : Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'Détection de l'appui sur la touche ENTER ou TAB If KeyCode = 13 Or KeyCode = 9 Then 'Si un emplacement a été entré, le retrouve If UserForm2.TextBox2.Value <> "" Then Call Recherche_Emplacement(Flag) If Flag = 1 Then 'Si l'emplacement est inconnu, on y retourne UserForm2.Label2.Value = "Veuillez entrer une donnée valide." UserForm2.TextBox2.Value = "" UserForm2.TextBox2.SetFocus End If End If End If End Sub
Tout marche bien sauf que si Flag est à 1 (donnée non valide), le focus va sur le textbox1 et ne reste pas sur le textbox2... en fait, après le UserForm2.TextBox2.SetFocus (qui fonctionne bien), il continue la procédure jusqu'à "End Sub" et ensuite le focus va sur le textbox1. Or moi je veux que tant que la donnée n'est pas valide on reste sur le textbox2.
Please help !
Thierry
-- Cordialement,
Jacques.
Bonjour Thierry Euzenot,
Pourquoi ne pas faire le contrôle dans l'événement Exit du TextBox ?
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox2.Text <> ValeurOK Then
Cancel = True
End If
End Sub
Bonjour à toutes et tous,
Je rencontre un problème dans un userform :
Lorsqu'un utilisateur entre une donnée dans un textbox et appuie sur Entrée,
la donnée est vérifiée et si elle n'est pas valide, il doit en re-rentrer
une nouvelle et appuyer à nouveau sur Entrée. Ainsi de suite jusqu'à ce
qu'une donnée valide soit entrée.
J'ai donc mis ce code :
Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
'Détection de l'appui sur la touche ENTER ou TAB
If KeyCode = 13 Or KeyCode = 9 Then
'Si un emplacement a été entré, le retrouve
If UserForm2.TextBox2.Value <> "" Then
Call Recherche_Emplacement(Flag)
If Flag = 1 Then
'Si l'emplacement est inconnu, on y retourne
UserForm2.Label2.Value = "Veuillez entrer une donnée valide."
UserForm2.TextBox2.Value = ""
UserForm2.TextBox2.SetFocus
End If
End If
End If
End Sub
Tout marche bien sauf que si Flag est à 1 (donnée non valide), le focus va
sur le textbox1 et ne reste pas sur le textbox2... en fait, après le
UserForm2.TextBox2.SetFocus (qui fonctionne bien), il continue la procédure
jusqu'à "End Sub" et ensuite le focus va sur le textbox1.
Or moi je veux que tant que la donnée n'est pas valide on reste sur le
textbox2.
Pourquoi ne pas faire le contrôle dans l'événement Exit du TextBox ?
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean) If TextBox2.Text <> ValeurOK Then Cancel = True End If End Sub
Bonjour à toutes et tous,
Je rencontre un problème dans un userform : Lorsqu'un utilisateur entre une donnée dans un textbox et appuie sur Entrée, la donnée est vérifiée et si elle n'est pas valide, il doit en re-rentrer une nouvelle et appuyer à nouveau sur Entrée. Ainsi de suite jusqu'à ce qu'une donnée valide soit entrée.
J'ai donc mis ce code : Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'Détection de l'appui sur la touche ENTER ou TAB If KeyCode = 13 Or KeyCode = 9 Then 'Si un emplacement a été entré, le retrouve If UserForm2.TextBox2.Value <> "" Then Call Recherche_Emplacement(Flag) If Flag = 1 Then 'Si l'emplacement est inconnu, on y retourne UserForm2.Label2.Value = "Veuillez entrer une donnée valide." UserForm2.TextBox2.Value = "" UserForm2.TextBox2.SetFocus End If End If End If End Sub
Tout marche bien sauf que si Flag est à 1 (donnée non valide), le focus va sur le textbox1 et ne reste pas sur le textbox2... en fait, après le UserForm2.TextBox2.SetFocus (qui fonctionne bien), il continue la procédure jusqu'à "End Sub" et ensuite le focus va sur le textbox1. Or moi je veux que tant que la donnée n'est pas valide on reste sur le textbox2.
Please help !
Thierry
-- Cordialement,
Jacques.
Thierry Euzenot
Super, ça marche !!
Merci beaucoup ! Thierry
"JB" a écrit dans le message de news:
Bonjour,
Evenement BeforeUpdate?
Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) If ..... Then MsgBox "Erreur" Cancel = True End If End Sub
JB http://boisgontierjacques.free.fr
On 13 nov, 12:43, "Thierry Euzenot" <thierry.euzenot*arobase*gmail.com> wrote:
Bonjour à toutes et tous,
Je rencontre un problème dans un userform : Lorsqu'un utilisateur entre une donnée dans un textbox et appuie sur Entrée, la donnée est vérifiée et si elle n'est pas valide, il doit en re-rentrer une nouvelle et appuyer à nouveau sur Entrée. Ainsi de suite jusqu'à ce qu'une donnée valide soit entrée.
J'ai donc mis ce code : Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'Détection de l'appui sur la touche ENTER ou TAB If KeyCode = 13 Or KeyCode = 9 Then 'Si un emplacement a été entré, le retrouve If UserForm2.TextBox2.Value <> "" Then Call Recherche_Emplacement(Flag) If Flag = 1 Then 'Si l'emplacement est inconnu, on y retourne UserForm2.Label2.Value = "Veuillez entrer une donnée valide." UserForm2.TextBox2.Value = "" UserForm2.TextBox2.SetFocus End If End If End If End Sub
Tout marche bien sauf que si Flag est à 1 (donnée non valide), le focus va sur le textbox1 et ne reste pas sur le textbox2... en fait, après le UserForm2.TextBox2.SetFocus (qui fonctionne bien), il continue la procédure jusqu'à "End Sub" et ensuite le focus va sur le textbox1. Or moi je veux que tant que la donnée n'est pas valide on reste sur le textbox2.
Please help !
Thierry
Super, ça marche !!
Merci beaucoup !
Thierry
"JB" <boisgontier@hotmail.com> a écrit dans le message de news:
1194954767.625703.9430@d55g2000hsg.googlegroups.com...
Bonjour,
Evenement BeforeUpdate?
Private Sub TextBox2_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If ..... Then
MsgBox "Erreur"
Cancel = True
End If
End Sub
JB
http://boisgontierjacques.free.fr
On 13 nov, 12:43, "Thierry Euzenot"
<thierry.euzenot*arobase*gmail.com> wrote:
Bonjour à toutes et tous,
Je rencontre un problème dans un userform :
Lorsqu'un utilisateur entre une donnée dans un textbox et appuie sur
Entrée,
la donnée est vérifiée et si elle n'est pas valide, il doit en re-rentrer
une nouvelle et appuyer à nouveau sur Entrée. Ainsi de suite jusqu'à ce
qu'une donnée valide soit entrée.
J'ai donc mis ce code :
Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
'Détection de l'appui sur la touche ENTER ou TAB
If KeyCode = 13 Or KeyCode = 9 Then
'Si un emplacement a été entré, le retrouve
If UserForm2.TextBox2.Value <> "" Then
Call Recherche_Emplacement(Flag)
If Flag = 1 Then
'Si l'emplacement est inconnu, on y retourne
UserForm2.Label2.Value = "Veuillez entrer une donnée valide."
UserForm2.TextBox2.Value = ""
UserForm2.TextBox2.SetFocus
End If
End If
End If
End Sub
Tout marche bien sauf que si Flag est à 1 (donnée non valide), le focus va
sur le textbox1 et ne reste pas sur le textbox2... en fait, après le
UserForm2.TextBox2.SetFocus (qui fonctionne bien), il continue la
procédure
jusqu'à "End Sub" et ensuite le focus va sur le textbox1.
Or moi je veux que tant que la donnée n'est pas valide on reste sur le
textbox2.
Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) If ..... Then MsgBox "Erreur" Cancel = True End If End Sub
JB http://boisgontierjacques.free.fr
On 13 nov, 12:43, "Thierry Euzenot" <thierry.euzenot*arobase*gmail.com> wrote:
Bonjour à toutes et tous,
Je rencontre un problème dans un userform : Lorsqu'un utilisateur entre une donnée dans un textbox et appuie sur Entrée, la donnée est vérifiée et si elle n'est pas valide, il doit en re-rentrer une nouvelle et appuyer à nouveau sur Entrée. Ainsi de suite jusqu'à ce qu'une donnée valide soit entrée.
J'ai donc mis ce code : Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'Détection de l'appui sur la touche ENTER ou TAB If KeyCode = 13 Or KeyCode = 9 Then 'Si un emplacement a été entré, le retrouve If UserForm2.TextBox2.Value <> "" Then Call Recherche_Emplacement(Flag) If Flag = 1 Then 'Si l'emplacement est inconnu, on y retourne UserForm2.Label2.Value = "Veuillez entrer une donnée valide." UserForm2.TextBox2.Value = "" UserForm2.TextBox2.SetFocus End If End If End If End Sub
Tout marche bien sauf que si Flag est à 1 (donnée non valide), le focus va sur le textbox1 et ne reste pas sur le textbox2... en fait, après le UserForm2.TextBox2.SetFocus (qui fonctionne bien), il continue la procédure jusqu'à "End Sub" et ensuite le focus va sur le textbox1. Or moi je veux que tant que la donnée n'est pas valide on reste sur le textbox2.