TextBox avec date qui se modifie (année raccourcie)
Résolu
Kuartz
Messages postés
852
Date d'inscription
Statut
Membre
Dernière intervention
-
Kuartz Messages postés 852 Date d'inscription Statut Membre Dernière intervention -
Kuartz Messages postés 852 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- TextBox avec date qui se modifie (année raccourcie)
- 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 Samsung
- Cherche le nom d'un modèle d'appareil photo ✓ - Forum Photo numérique
- Raccourcie clavier - Guide
- Chanteur blond annee 80 - Forum Musique / Radio / Clip
- Whatsapp date incorrecte ✓ - Forum Mobile
3 réponses
Bonjour,
essaie ceci:
essaie ceci:
Option Explicit Dim num As Boolean Dim caract As String Dim Valeur As Byte Private Sub TextBox1_Change() If num = True Then '1er caractère 'ancien TextBox1.MaxLength = 10 'nb caracteres maxi dans textbox Valeur = Len(TextBox1) If Valeur = 2 Or Valeur = 5 Then TextBox1 = TextBox1 & "/" Else 'nouveau TextBox1.MaxLength = 9 'nb caracteres maxi dans textbox Valeur = Len(TextBox1) If Valeur = 2 Or Valeur = 6 Then TextBox1 = TextBox1 & "-" End If End Sub Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) caract = Left(TextBox1.Value, 1) If IsNumeric(caract) Then num = True Else num = False ' End If End Sub
Bonjour
Dans votre premier code, êtes-vous sûr de n'avoir rien oublié, en particulier dans la ligne suivante?
a voir
Cdlt
Dans votre premier code, êtes-vous sûr de n'avoir rien oublié, en particulier dans la ligne suivante?
If Valeur = 8 Then Me.TextBox_DATE_CHARGEMENT = GAUCHE_DATE & "20" & DROITE_DATE
If Valeur = 8 Then Me.TextBox_DATE_CHARGEMENT = GAUCHE_DATE_CHARGEMENT & "20" & DROITE_DATE_CHARGEMENT
a voir
Cdlt
Bonjur,
Une possibilité en trois événements :
Une possibilité en trois événements :
'transforme le contenu du textbox au format souhaité Private Sub TextBox1_AfterUpdate() If Len(TextBox1) < 10 Then TextBox1 = Format(TextBox1, "dd/mm/yyyy") End Sub 'ajoute les "/" de la date au fur et à mesure de la saisie Private Sub TextBox1_Change() Dim Valeur As Byte Valeur = Len(TextBox1) If Valeur = 2 Or Valeur = 5 Then TextBox1 = TextBox1 & "/" End Sub 'vérifie si la saisie est une date Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) If Not IsDate(TextBox1) Then Cancel = True: TextBox1 = "" End Sub
Au passage, je me disais que l'utilisateur lambda pouvait dans sa course au remplissage écrire quand-même 10/10/2015 au lieu de 10102015, ce qui génère 2 fois "/".
Une petite astuce que j'ai trouvé serait la suivante (si cela peut servir un jour) :
Cordialement.
Une petite astuce que j'ai trouvé serait la suivante (si cela peut servir un jour) :
If valeur = 4 And Right(TextBox1, 1) = "/" Then TextBox1 = Left(TextBox1, Len(TextBox1) - 1) If valeur = 7 And Right(TextBox1, 1) = "/" Then TextBox1 = Left(TextBox1, Len(TextBox1) - 1)
Cordialement.
Mon ancien code pour les "/" marche parfaitement. Je n'ai donc pas besoin d'y toucher.
Le problème est vraiment cette histoire de 01/01/15 que je voudrais qui se transforme en 01/01/2015.
Cordialement.