Bonjour à toutes et tous,
Dans mon tableau "Cpta_Test" la colonne Date est au format personnalisé jj/mm/aa.
Dans mon formulaire, j'ai un TextBox nommé "TextBox_Date".
Le code associé est le suivant :
Ce code marche bien et lors de la validation du formulaire, la date saisie (par exemple 01/08/2023 ou 01/08/23) est inscrite au bon endroit (cellule de destination).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Private Sub TextBox_Date_AfterUpdate() ' AfterUpdate = Valide la saisie dès qu'elle est terminée 'La cellule de destination Date (Exxxxx de la feuille active) obtient la valeur de la zone de texte nommée "TextBox_Date" ' Pour écrire à la colonne nommée "Date" et à la ligne qui suit la dernière du tableau nommé "Cpta_Test" Dim t As ListObject ' t = Le tableau concerné Dim cn As Integer ' cn = La colonne concernée Set t = Range("Cpta_Test").ListObject ' Cpta_Test = tableau pour écriture With t cn = .ListColumns("Date").Index ' Nom de la colonne concernée .ListRows.Add ' Ajoute une nouvelle ligne à la fin du tableau With .DataBodyRange .Cells(.Rows.Count, cn).Value = TextBox_Date.Value ' Identification de la cellule concernée et insertion valeur saisie End With End With Set t = Nothing ' **** Evite de saisir le / dans le TextBox_Date ************* Dim Valeur As Byte TextBox_Date.MaxLength = 10 'nb caractères maxi autorisé dans le textbox Valeur = Len(TextBox_Date) If Valeur = 2 Or Valeur = 5 Then TextBox_Date = TextBox_Date & "/" ' *************************************************************************** End Sub
Le formatage de la cellule de destination est toujours au format personnalisé jj/mm/aa.
Mais l'affichage reste sur 10 caractères soit 01/08/2023
Cette valeur n'est pas reconnue comme une date.
Si je mets 8 caractères ligne 19, ma saisie devient 01/08/23, l'affichage est bien sur 8 caractères soit 01/08/23.
Mais j'ai le petit triangle vert en haut à gauche de la cellule qui apparait pour me signaler une erreur : "Date du texte avec une année à 2 chiffres".
Pour corriger, il m'est proposé entre autre "Convertir XX en 20XX"
Comment puis sortir de cette situation ?
En d'autre termes, comment dire que la date saisie en texte est une date.
Merci pour votre aide,
Philippe
Partager