Bonjour,
Explication en prenant pour exemple la saisie de la date 311213.
Il y a problème avec la ligne suivante dans la procédure TextBox2.Exit :
TextBox2 = Left(TextBox2, 4) & 20 & Right(TextBox2, 2)
Cette instruction provoque le lancement de TextBox2.Change et l’exécution de
Sheets("journal achats").Range("J7").Value = CDate(TextBox2)
A cet instant, la valeur de TextBox2 est 31122013. Cette valeur est interprétée comme le numéro de série d’une date. Or, la date maximale pour Excel est fixée au 31/12/9999, soit au numéro de série 2958465, d’où l’apparition de l’erreur.
Bien sûr, si tu saisis une date inférieure au 3eme jour d’un mois, le numéro de série reste inférieur au maximum et ça passe. Ce qui explique sûrement que tu n’as pas constaté le problème avec TextBox1.
A+