VBA EXCEL position curseur dans textbox

Résolu
grandjean -  
 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

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  2. grandjean
     
    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