VBA EXCEL position curseur dans textbox [Résolu/Fermé]

Signaler
-
 grandjean -
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


2 réponses

Messages postés
12235
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
6 janvier 2021
2 558
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 
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