VBA EXCEL position curseur dans textbox

Résolu/Fermé
grandjean - 28 nov. 2011 à 14:24
 grandjean - 29 nov. 2011 à 10:24
Bonjour à tous,

Dans un textbox de UF, j'effectue un contrôle de la saisie. Si la saisie ne correspond pas au format souhaité, j'efface le contenu de la textbox et affiche un message d'erreur.
Je voudrais repositionner le curseur dans la textbox pour une nouvelle saisie. J'ai essayé plein de formules, notamment Me.nom.setfocus. Sans succès. Le curseur se positionne toujours dans la textbox suivante. C'est pourtant certainement tout bête !

Voici la macro utilisée pour ce contrôle

Private Sub Jour_Exit(ByVal Cancel As MSForms.ReturnBoolean)

'vérifie le format de la date
If Jour <> Format(Jour, "dd/mm/yy") Then
Jour.Value = ""
Me.Jour.SetFocus

MsgBox "Le format de saisie est incorrect", vbExclamation

Else
End If


End Sub

Merci par avance de votre aide. Je suis sous Excel 2002
Jean


A voir également:

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
29 nov. 2011 à 08:55
Bonjour,
Lorsque tu utilises l'événement Exit du contrôle Textbox, tu as un boolean passé en argument : Cancel. (ByVal Cancel As MSForms.ReturnBoolean)
Ce cancel te permet de sortir du textbox ou non.
Pour ne pas sortir du textbox en cas d'erreur, il faut que ce Boolean soit à true.
Soit, dans ton cas :

Private Sub Jour_Exit(ByVal Cancel As MSForms.ReturnBoolean) 
'vérifie le format de la date 
If Jour <> Format(Jour, "dd/mm/yy") Then 
    Jour.Value = "" 
    MsgBox "Le format de saisie est incorrect", vbExclamation 
    Cancel = True 
End If 
End Sub 
0
Bonjour,

Je savais bien que cela devait être simple !
Merci beaucoup pour ta réponse et, surtout, pour ton explication qui me permet de comprendre le pourquoi du comment.
Cela fonctionne parfaitement.

Bonne journée
Jean
0