Date avec "/" dans une TextBox
Kuartz
Messages postés
852
Date d'inscription
Statut
Membre
Dernière intervention
-
gbinforme Messages postés 14946 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 14946 Date d'inscription Statut Contributeur Dernière intervention -
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 :
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 :
Une idée?
Le fichier test : https://www.cjoint.com/c/EJvpQRBZIHf
Il suffit d'appuyer sur "+" pour voir apparaître le UserForm. Tapez une date et essayez d'effacer en cours de saisie.
Merci d'avance.
Cordialement.
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?
Le fichier test : https://www.cjoint.com/c/EJvpQRBZIHf
Il suffit d'appuyer sur "+" pour voir apparaître le UserForm. Tapez une date et essayez d'effacer en cours de saisie.
Merci d'avance.
Cordialement.
A voir également:
- Date avec "/" dans une TextBox
- Airpods 3 date de sortie - Guide
- Jm date désabonnement - Forum Gmail
- Cette photo n’a pas été prise cette année. trouvez la date, l'heure et avec quel modèle d'appareil photo elle a été prise. ✓ - Forum Graphisme
- Modifier une date sur un document - Forum PDF
- Publipostage date inversée - Forum Word