[Catégorie modifiée VB6 -> VBAé] récupérer la valeur de la date du textbox d'un
cs_bienfp
Messages postés2Date d'inscriptionlundi 6 juillet 2009StatutMembreDernière intervention15 mai 2011
-
6 mai 2011 à 21:13
cs_bienfp
Messages postés2Date d'inscriptionlundi 6 juillet 2009StatutMembreDernière intervention15 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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
cs_bienfp
Messages postés2Date d'inscriptionlundi 6 juillet 2009StatutMembreDernière intervention15 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