[Catégorie modifiée VB6 -> VBAé] récupérer la valeur de la date du textbox d'un

cs_bienfp Messages postés 2 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 15 mai 2011 - 6 mai 2011 à 21:13
cs_bienfp Messages postés 2 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 15 mai 2011 - 15 mai 2011 à 20:29
Bonjour à tous...

Je créé une macro qui lance "UserForm1".
Sur ce UserForm1 j'ai un "TextBox1" où je rentre une date (j'ai déjà le code qui me donne le format... voir plus bas).

maintenant je ne trouve nul part la solution pour récupérer la valeur de cette variable... pour du texte standard pas de sousci... mais là ???

code de formatage de la date :
Private Sub TextBox1_Change()
TextBox1.MaxLength = 10 'nb caractères maxi autorisé dans le textbox
PierreDate = Len(TextBox1)
If PierreDate 2 Or PierreDate 5 Then TextBox1 = TextBox1 & "/"
End Sub

ma variable est créé dans ma marco mère tel que : Public PierreDate As Byte.
mais lorsque je demande : ActiveSheet.Range("A3").Value = PierreDate, j'obtiens une date BIDON

Merci d'avance pour votre aide

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 mai 2011 à 11:00
Salut

Oui, parce que PierreDate ne correspond pas au contenu de ta TextBox mais au nombre de caractère que ta TextBox contient.
C'est TextBox1.Text qu'il faut lire

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_bienfp Messages postés 2 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 15 mai 2011
15 mai 2011 à 20:29
bonjour bonjour,

Merci pour ta réponse rapide.
Sans me donner la solution elle m'a aidé à comprendre.

En fait comme tout le monde dans les autres forum la date est renvoyée façon américaine mm/dd/yyyy. donc pour palier à ça j'ai tout simplement extrait les deux premier caractères puis les 4ème et 5ème caractères, tous dans des variable puis remis dans l'ordre que je voulais...
cela ne parait pas forcément le plus direct mais j'ai rien eu d'autre qui fonctionnait.

voici ce que cela donne :

[i]Private Sub TextBox1_Change()
'nb caractères maxi autorisé dans le textbox
TextBox1.MaxLength = 8
'compte le nombre de caractères
GenericDate1 = Len(TextBox1)
'insère les /
If GenericDate1 2 Or GenericDate1 5 Then TextBox1 = TextBox1 & "/"
'nouvelle date enregistrée
GenericDate = TextBox1.Value
'remet la date dans l'ordre jj/mm/aa
GenericDate = Mid(GenericDate, 4, 2) & "/" & Mid(GenericDate, 1, 2) _
& "/" & Mid(GenericDate, 7, 2)
End Sub/i

j'espère que cela sera utile à d'autres.
0
Rejoignez-nous