OVH Cloud OVH Cloud

Format de date dans TextBox

8 réponses
Avatar
TOF
Bonjour

Je souhaite formater une textbox en date. J'ais donc mis=20
le code suivant :

Private Sub TextBox9_Change()
TextBox9.Value =3D Format(TextBox9.Value, "jj/mm/aaaa")
End Sub

Mais le probl=E8me c'est quand je saisi dans mon=20
userform ... la texte box affiche jj/mm/aaaa des je=20
commence =E0 renseign=E9 la zone !! Ca donne un truc du genre:
jj/01/aaaa0/10/90 lorsque je rentre 20/10/90 !!
Etrange non ?
J'ai rat=E9 quoi dans mon code ?
Par avance merci.

TOF

8 réponses

Avatar
Jacky
Bonjour TOF

Peut-être que:

TextBox9.Value = Format(TextBox9.Value, "dd/mm/yyyy")

Salutations
JJ

"TOF" a écrit dans le message de
news:128501c4b5d8$9bc02200$
Bonjour

Je souhaite formater une textbox en date. J'ais donc mis
le code suivant :

Private Sub TextBox9_Change()
TextBox9.Value = Format(TextBox9.Value, "jj/mm/aaaa")
End Sub

Mais le problème c'est quand je saisi dans mon
userform ... la texte box affiche jj/mm/aaaa des je
commence à renseigné la zone !! Ca donne un truc du genre:
jj/01/aaaa0/10/90 lorsque je rentre 20/10/90 !!
Etrange non ?
J'ai raté quoi dans mon code ?
Par avance merci.

TOF
Avatar
TOF
Ben nan ça fait un truc dans le même genre !!

-----Message d'origine-----
Bonjour TOF

Peut-être que:

TextBox9.Value = Format(TextBox9.Value, "dd/mm/yyyy")

Salutations
JJ

"TOF" a écrit dans
le message de

news:128501c4b5d8$9bc02200$
Bonjour

Je souhaite formater une textbox en date. J'ais donc mis
le code suivant :

Private Sub TextBox9_Change()
TextBox9.Value = Format(TextBox9.Value, "jj/mm/aaaa")
End Sub

Mais le problème c'est quand je saisi dans mon
userform ... la texte box affiche jj/mm/aaaa des je
commence à renseigné la zone !! Ca donne un truc du
genre:

jj/01/aaaa0/10/90 lorsque je rentre 20/10/90 !!
Etrange non ?
J'ai raté quoi dans mon code ?
Par avance merci.

TOF


.



Avatar
papou
Bonjour
Va faire un tour ici, il y a plusieurs exemples :
http://www.excelabo.net/xl/controles.php
Cordialement
Pascal

"TOF" a écrit dans le message de news:
128501c4b5d8$9bc02200$
Bonjour

Je souhaite formater une textbox en date. J'ais donc mis
le code suivant :

Private Sub TextBox9_Change()
TextBox9.Value = Format(TextBox9.Value, "jj/mm/aaaa")
End Sub

Mais le problème c'est quand je saisi dans mon
userform ... la texte box affiche jj/mm/aaaa des je
commence à renseigné la zone !! Ca donne un truc du genre:
jj/01/aaaa0/10/90 lorsque je rentre 20/10/90 !!
Etrange non ?
J'ai raté quoi dans mon code ?
Par avance merci.

TOF
Avatar
PMO
Bonjour,

Essayez le code suivant

'****************
Option Explicit
'_________________________________
Private Sub TextBox9_AfterUpdate()
Dim C As Control
Set C = TextBox9
If IsDate(C) Then
C = Format(C, "dd/mm/yyyy")
Else
MsgBox "Veuillez saisir une date."
C = ""
End If
End Sub
'_________________________________
Private Sub TextBox10_Enter() 'Changer "TextBox10" par le nom de
'votre contrôle suivant ayant le focus
If TextBox9.Value = "" Then TextBox9.SetFocus
End Sub
'****************

PMO
Patrick Morange


Bonjour

Je souhaite formater une textbox en date. J'ais donc mis
le code suivant :

Private Sub TextBox9_Change()
TextBox9.Value = Format(TextBox9.Value, "jj/mm/aaaa")
End Sub

Mais le problème c'est quand je saisi dans mon
userform ... la texte box affiche jj/mm/aaaa des je
commence à renseigné la zone !! Ca donne un truc du genre:
jj/01/aaaa0/10/90 lorsque je rentre 20/10/90 !!
Etrange non ?
J'ai raté quoi dans mon code ?
Par avance merci.

TOF



Avatar
TOF
Ben oui, mais le problème c'est que c'est là que j'ai
pris les codes que j'ai utilisé !!!
Et donc ça me fait un plan genre 4eme dimension !!
Sniff !

-----Message d'origine-----
Bonjour
Va faire un tour ici, il y a plusieurs exemples :
http://www.excelabo.net/xl/controles.php
Cordialement
Pascal

"TOF" a écrit dans
le message de news:

128501c4b5d8$9bc02200$
Bonjour

Je souhaite formater une textbox en date. J'ais donc mis
le code suivant :

Private Sub TextBox9_Change()
TextBox9.Value = Format(TextBox9.Value, "jj/mm/aaaa")
End Sub

Mais le problème c'est quand je saisi dans mon
userform ... la texte box affiche jj/mm/aaaa des je
commence à renseigné la zone !! Ca donne un truc du
genre:

jj/01/aaaa0/10/90 lorsque je rentre 20/10/90 !!
Etrange non ?
J'ai raté quoi dans mon code ?
Par avance merci.

TOF


.



Avatar
papou
Re
Comment est saisie ta date ?
Sinon, la suggestion de PMO me semble judicieuse (utilisation de l'évènement
AfterUpDate)
Cordialement
Pascal

"TOF" a écrit dans le message de news:
137201c4b5ec$a8e70c00$
Ben oui, mais le problème c'est que c'est là que j'ai
pris les codes que j'ai utilisé !!!
Et donc ça me fait un plan genre 4eme dimension !!
Sniff !

-----Message d'origine-----
Bonjour
Va faire un tour ici, il y a plusieurs exemples :
http://www.excelabo.net/xl/controles.php
Cordialement
Pascal

"TOF" a écrit dans
le message de news:

128501c4b5d8$9bc02200$
Bonjour

Je souhaite formater une textbox en date. J'ais donc mis
le code suivant :

Private Sub TextBox9_Change()
TextBox9.Value = Format(TextBox9.Value, "jj/mm/aaaa")
End Sub

Mais le problème c'est quand je saisi dans mon
userform ... la texte box affiche jj/mm/aaaa des je
commence à renseigné la zone !! Ca donne un truc du
genre:

jj/01/aaaa0/10/90 lorsque je rentre 20/10/90 !!
Etrange non ?
J'ai raté quoi dans mon code ?
Par avance merci.

TOF


.



Avatar
isabelle
bonjour Tof,

voici une adaptation de la Fonction Téléphone de Denis Michon,

Private Sub TextBox1_Change()
TextBox1 = LaDate(TextBox1)
End Sub

'pour récupérer la valeur date
Sheets("Feuil1").Range("A1") = CDate(TextBox1)

Function LaDate(Tbox As MSForms.TextBox)
Dim Nb As Integer, R As String, G As String
Dim T As String, arr(), A As Integer
arr = Array("/", "/", " ")
T = Tbox
For Each elt In arr
T = Replace(T, elt, "")
Next
Nb = Len(T)
If Nb > 8 Then
Tbox = Left(Tbox, Len(Tbox) - 1)
LaDate = Tbox
Exit Function
End If
For A = 1 To Nb
If IsNumeric(Mid(T, A, 1)) = True Then
R = R & Mid(T, A, 1)
End If
Next
If Nb >= 2 And Nb <= 5 Then
G = Left(R, 2) & "/" & Right(R, Len(R) - 2)
ElseIf Nb > 5 And Nb <= 10 Then
G = Left(R, 2) & "/" & Mid(R, 3, 2) & "/" & Right(R, Len(R) - 4)
Else
G = R
End If
LaDate = G
End Function

isabelle


Ben oui, mais le problème c'est que c'est là que j'ai
pris les codes que j'ai utilisé !!!
Et donc ça me fait un plan genre 4eme dimension !!
Sniff !

-----Message d'origine-----
Bonjour
Va faire un tour ici, il y a plusieurs exemples :
http://www.excelabo.net/xl/controles.php
Cordialement
Pascal

"TOF" a écrit dans
le message de news:

128501c4b5d8$9bc02200$
Bonjour

Je souhaite formater une textbox en date. J'ais donc mis
le code suivant :

Private Sub TextBox9_Change()
TextBox9.Value = Format(TextBox9.Value, "jj/mm/aaaa")
End Sub

Mais le problème c'est quand je saisi dans mon
userform ... la texte box affiche jj/mm/aaaa des je
commence à renseigné la zone !! Ca donne un truc du
genre:

jj/01/aaaa0/10/90 lorsque je rentre 20/10/90 !!
Etrange non ?
J'ai raté quoi dans mon code ?
Par avance merci.

TOF


.





Avatar
isabelle
si tu désire le format ISO, remplace la fonction par celle-ci,

Function LaDateISO(Tbox As MSForms.TextBox)
'Format aaaa/mm/jj
Dim Nb As Integer, R As String, G As String
Dim T As String, arr(), A As Integer

arr = Array("/", "/", " ")
T = Tbox
For Each elt In arr
T = Replace(T, elt, "")
Next

Nb = Len(T)
If Nb > 8 Then
Tbox = Left(Tbox, Len(Tbox) - 1)
LaDateISO = Tbox
Exit Function
End If
For A = 1 To Nb
If IsNumeric(Mid(T, A, 1)) = True Then
R = R & Mid(T, A, 1)
End If
Next
If Nb >= 4 And Nb <= 6 Then
G = Left(R, 4) & "/" & Right(R, Len(R) - 4)
ElseIf Nb > 6 And Nb <= 8 Then
G = Left(R, 4) & "/" & Mid(R, 5, 2) & "/" & Right(R, Len(R) - 6)
Else
G = R
End If
LaDateISO = G
End Function

isabelle


bonjour Tof,

voici une adaptation de la Fonction Téléphone de Denis Michon,

Private Sub TextBox1_Change()
TextBox1 = LaDate(TextBox1)
End Sub

'pour récupérer la valeur date
Sheets("Feuil1").Range("A1") = CDate(TextBox1)

Function LaDate(Tbox As MSForms.TextBox)
Dim Nb As Integer, R As String, G As String
Dim T As String, arr(), A As Integer
arr = Array("/", "/", " ")
T = Tbox
For Each elt In arr
T = Replace(T, elt, "")
Next
Nb = Len(T)
If Nb > 8 Then
Tbox = Left(Tbox, Len(Tbox) - 1)
LaDate = Tbox
Exit Function
End If
For A = 1 To Nb
If IsNumeric(Mid(T, A, 1)) = True Then
R = R & Mid(T, A, 1)
End If
Next
If Nb >= 2 And Nb <= 5 Then
G = Left(R, 2) & "/" & Right(R, Len(R) - 2)
ElseIf Nb > 5 And Nb <= 10 Then
G = Left(R, 2) & "/" & Mid(R, 3, 2) & "/" & Right(R, Len(R) - 4)
Else
G = R
End If
LaDate = G
End Function

isabelle


Ben oui, mais le problème c'est que c'est là que j'ai
pris les codes que j'ai utilisé !!!
Et donc ça me fait un plan genre 4eme dimension !!
Sniff !

-----Message d'origine-----
Bonjour
Va faire un tour ici, il y a plusieurs exemples :
http://www.excelabo.net/xl/controles.php
Cordialement
Pascal

"TOF" a écrit dans
le message de news:

128501c4b5d8$9bc02200$
Bonjour

Je souhaite formater une textbox en date. J'ais donc mis
le code suivant :

Private Sub TextBox9_Change()
TextBox9.Value = Format(TextBox9.Value, "jj/mm/aaaa")
End Sub

Mais le problème c'est quand je saisi dans mon
userform ... la texte box affiche jj/mm/aaaa des je
commence à renseigné la zone !! Ca donne un truc du
genre:

jj/01/aaaa0/10/90 lorsque je rentre 20/10/90 !!
Etrange non ?
J'ai raté quoi dans mon code ?
Par avance merci.

TOF


.