Bonjour,
Débutant en VBA, j'ai voulu mettre en forme de manière la plus simple possible pour l'utilisateur une TextBox qui contient une date.
Voici mon code :
Private Sub TextBox_DATE_CHARGEMENT_Change()
Dim valeur As Byte
Me.TextBox_DATE_CHARGEMENT.BackColor = &H80000005
valeur = Len(Me.TextBox_DATE_CHARGEMENT)
If valeur = 2 Or valeur = 5 Then Me.TextBox_DATE_CHARGEMENT = Me.TextBox_DATE_CHARGEMENT & "/"
If valeur = 4 And Right(Me.TextBox_DATE_CHARGEMENT, 1) = "/" Then Me.TextBox_DATE_CHARGEMENT = Left(Me.TextBox_DATE_CHARGEMENT, Len(Me.TextBox_DATE_CHARGEMENT) - 1)
If valeur = 7 And Right(Me.TextBox_DATE_CHARGEMENT, 1) = "/" Then Me.TextBox_DATE_CHARGEMENT = Left(Me.TextBox_DATE_CHARGEMENT, Len(Me.TextBox_DATE_CHARGEMENT) - 1)
End Sub
Private Sub TextBox_DATE_CHARGEMENT_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Len(Me.TextBox_DATE_CHARGEMENT) < 10 Then Me.TextBox_DATE_CHARGEMENT = Format(TextBox_DATE_CHARGEMENT, "dd/mm/yyyy")
End Sub
Ce code me permet dans un premier temps d'éviter à avoir à taper les "/" dans la TextBox, il permet ensuite d'éviter que si l'utilisateur tape quand même les "/", d'avoir 2 "/" à chaque fois. Et le dernier code permet enfin que la date se transforme si l'utilisateur tape par exemple : "12/12/15" en "12/12/2015".
Problème : Supposons que dans ma TextBox je tape une date et je me trompe, je veux effacer avec la touche "Del". Et bien ça m'est impossible dès que j'arrive au caractère "/". Et pour cause, ceci m'en empêche :
If valeur = 2 Or valeur = 5 Then Me.TextBox_DATE_CHARGEMENT = Me.TextBox_DATE_CHARGEMENT & "/"
Une idée?
Merci d'avance.
Cordialement.