TextBox avec date qui se modifie (année raccourcie)
Résolu/Fermé
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
-
20 oct. 2015 à 11:44
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 - 20 oct. 2015 à 14:38
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 - 20 oct. 2015 à 14:38
A voir également:
- TextBox avec date qui se modifie (année raccourcie)
- Whatsapp date incorrecte ✓ - Forum Mobile
- Vba textbox date format dd/mm/yyyy - Forum VB / VBA
- Gertrude a préparé la liste des affaires à prendre pour l'excursion. juliette a modifié cette liste en utilisant le mode suivi des modifications proposé par le traitement de texte. - Guide
- 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 Photo numérique
3 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
20 oct. 2015 à 11:58
20 oct. 2015 à 11:58
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
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
20 oct. 2015 à 12:13
20 oct. 2015 à 12:13
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
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
20 oct. 2015 à 14:16
20 oct. 2015 à 14:16
Vous avez raison. Mais ça ne marche malheureusement toujours pas...
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
20 oct. 2015 à 13:18
20 oct. 2015 à 13:18
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
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
Modifié par Kuartz le 20/10/2015 à 14:26
Modifié par Kuartz le 20/10/2015 à 14:26
Bonjour,
J'ai testé mais c'est bizarre, je rentre 10/10/15 (donc 101015, les slashs marchent bien) et lorsque je change de case dans mon formulaire donc "After_Update", la case devient vide.
Edit : Erreur sur mon code, la solution de Pikaju est parfaite. Merci infiniment !
J'ai testé mais c'est bizarre, je rentre 10/10/15 (donc 101015, les slashs marchent bien) et lorsque je change de case dans mon formulaire donc "After_Update", la case devient vide.
Edit : Erreur sur mon code, la solution de Pikaju est parfaite. Merci infiniment !
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
Modifié par Kuartz le 20/10/2015 à 14:39
Modifié par Kuartz le 20/10/2015 à 14:39
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.
20 oct. 2015 à 12:03
20 oct. 2015 à 12:09
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.