Bonjour Kolia et bienvenue, bonjour le forum,
L'utilisation de l'événement Change n'est pas, il me semble, approprié dans ce cas. En effet, dès que tu vas taper le premier caractère de la date ça va déclencher le code et la Textbox va prendre la valeur d'une date en fonction du premier caractère tapé (entre le 31/12/1899 pour 1 et 02/01/1900 pour 3). Ensuite, tu vas taper le second digit de ta date qui va se rajouter à la date déjà existante et là, plantage !
Utilise de préférence l'événement AfterUpdate ou Exit...
Private Sub TextBox1_AfterUpdate()
Me.TextBox1.Value = CDate(Me.TextBox1.Value)
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Me.TextBox1.Value = CDate(Me.TextBox1.Value)
End Sub