OVH Cloud OVH Cloud

format date textbox

5 réponses
Avatar
Nico Iannizzi
Bonjour,

J'ai un formulaire avec des textbox dans lesquels j'encode
des dates dans le format jj/mm/aaaa.

Quand je valide l'enregistrement, les valeurs sont=20
pass=E9es dans les cellules d'feuille (par une proc=E9dure=20
VBA). L'affichage dans les textbox et dans les cellules=20
ne change pas.

Les cellules en question sont au format date: jj/mm/aaaa.

Mais quand je clique sur mon bouton "Enregistrement=20
suivant" et que je reviens avec mon=20
bouton "Enregistrement pr=E9c=E9dent", je constate que les=20
formats dates ont chang=E9 en mm/jj/aaaa (format date=20
am=E9ricain) au niveau du formulaire et de la feuille.

Ma question: Comment forcer Excel de maintenir le format =20
jj/mm/aaaa?


Merci d'avance =E0 toutes et =E0 tous pour vos pr=E9cieuses=20
suggestions.


Nico Iannizzi

5 réponses

Avatar
Frédéric Sigonneau
Bonjour,

Si tu remplis tes TextBox à partir des cellules de la feuille de calcul, utilise
leur propriété Text :

TextBox1.Value=Range("A1").Text

Si ça ne fonctionne pas, essaye d'utiliser la fonction Format pour obtenir ta
date au bon format sous forme de texte :

TextBox1.Value=Format(Range("A1").Value2,"dd/mm/yyyy")

FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour,

J'ai un formulaire avec des textbox dans lesquels j'encode
des dates dans le format jj/mm/aaaa.

Quand je valide l'enregistrement, les valeurs sont
passées dans les cellules d'feuille (par une procédure
VBA). L'affichage dans les textbox et dans les cellules
ne change pas.

Les cellules en question sont au format date: jj/mm/aaaa.

Mais quand je clique sur mon bouton "Enregistrement
suivant" et que je reviens avec mon
bouton "Enregistrement précédent", je constate que les
formats dates ont changé en mm/jj/aaaa (format date
américain) au niveau du formulaire et de la feuille.

Ma question: Comment forcer Excel de maintenir le format
jj/mm/aaaa?


Merci d'avance à toutes et à tous pour vos précieuses
suggestions.


Nico Iannizzi


Avatar
Nico Iannizzi
Frédéric,

Merci de ta réponse.

J'ai essayé les deux possibilités, mais le problème
persiste.
Je simplifié mon problème; J'ai un USF avec un textbox1
et un bouton Enregistrer.

Quand je lance mon formulaire, la date est correctement
affiché dans le textbox1, mais quand je réinscris la même
date par exemple, la cellule A1 se met au format
mm/dd/yyyy.

Initialement ma date en A1 est par exemple: 10/09/1999.
Après clic sur Enregistrer elle devient 10/09/1999.

Voici mon code:

Private Sub Enregistrer_Click()
Range("A1").Value = Format(TextBox1.Value, "dd/mm/yyyy")
End Sub

Private Sub UserForm_Initialize()
TextBox1.Value = Range("A1").Text
End Sub

Comment je pourrais pallier à ce problème?

Merci d'avance

Nico Iannizzi


-----Message d'origine-----
Bonjour,

Si tu remplis tes TextBox à partir des cellules de la
feuille de calcul, utilise

leur propriété Text :

TextBox1.Value=Range("A1").Text

Si ça ne fonctionne pas, essaye d'utiliser la fonction
Format pour obtenir ta

date au bon format sous forme de texte :

TextBox1.Value=Format(Range("A1").Value2,"dd/mm/yyyy")

FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour,

J'ai un formulaire avec des textbox dans lesquels
j'encode


des dates dans le format jj/mm/aaaa.

Quand je valide l'enregistrement, les valeurs sont
passées dans les cellules d'feuille (par une procédure
VBA). L'affichage dans les textbox et dans les
cellules


ne change pas.

Les cellules en question sont au format date:
jj/mm/aaaa.



Mais quand je clique sur mon bouton "Enregistrement
suivant" et que je reviens avec mon
bouton "Enregistrement précédent", je constate que les
formats dates ont changé en mm/jj/aaaa (format date
américain) au niveau du formulaire et de la feuille.

Ma question: Comment forcer Excel de maintenir le
format


jj/mm/aaaa?


Merci d'avance à toutes et à tous pour vos précieuses
suggestions.


Nico Iannizzi
.





Avatar
Nico Iannizzi
Frédéric,

Bizarre, mais il me semble que le code suivant marche,
mais je ne pige pas l'arrière-fond de tout ça.

Que quelqu'un(e) puisse m'illuminer!



Private Sub Enregistrer_Click()
Range("A1").Value = Format(TextBox1.Text, "mm/dd/yyyy")
End Sub

Private Sub UserForm_Initialize()
TextBox1.Value = Format(Range("A1").Text, "dd/mm/yyyy")
End Sub


Salutations

Nico Iannizzi


-----Message d'origine-----
Bonjour,

Si tu remplis tes TextBox à partir des cellules de la
feuille de calcul, utilise

leur propriété Text :

TextBox1.Value=Range("A1").Text

Si ça ne fonctionne pas, essaye d'utiliser la fonction
Format pour obtenir ta

date au bon format sous forme de texte :

TextBox1.Value=Format(Range("A1").Value2,"dd/mm/yyyy")

FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour,

J'ai un formulaire avec des textbox dans lesquels
j'encode


des dates dans le format jj/mm/aaaa.

Quand je valide l'enregistrement, les valeurs sont
passées dans les cellules d'feuille (par une procédure
VBA). L'affichage dans les textbox et dans les
cellules


ne change pas.

Les cellules en question sont au format date:
jj/mm/aaaa.



Mais quand je clique sur mon bouton "Enregistrement
suivant" et que je reviens avec mon
bouton "Enregistrement précédent", je constate que les
formats dates ont changé en mm/jj/aaaa (format date
américain) au niveau du formulaire et de la feuille.

Ma question: Comment forcer Excel de maintenir le
format


jj/mm/aaaa?


Merci d'avance à toutes et à tous pour vos précieuses
suggestions.


Nico Iannizzi
.





Avatar
michdenis
Bonjour Nico,

Simonaque! Nico, oublie la propriété "ControlSource" des contrôles textbox ... Tu es le boss, alors choisis le moment désiré
pour passer la valeur de ton textbox vers une cellule ou l'inverse la valeur d'une cellule vers un textbox. dans une
procédure ....


Ceci étant dit, à moins que tes cellules devant recevoir le contenu des textbox soient au format "TEXTE", tu dois
obligatoirement formater la cellule au format désiré avant de lui affecter une valeur date. Quand en vba, tu passes le
contenu d'une variable ou d'un textbox à une cellule, seul SON CONTENU (OUBLIE LE FORMAT QU'AVAIT LE TEXTBOX OU LA VARIABLE)
est passé à la cellule. La fonction "Format" appartient aux éléments (variables ou textbox...) au VBA, pour formater une
cellule, tu dois le faire de cette façon :

'Tu vérifies d'abord si le contenu de ton textbox contient bien une date ...

'---------------------------
If IsDate(UserForm1.TextBox1) Then
With Worksheets("Feuil1")
'Défini le format que tu désires pour la cellule ...
.Range("A1").NumberFormat = "dd/mm/yy"
.Range("A1").Value = CDate(UserForm1.TextBox1)
End With
End If
'---------------------------


Salutations!



"Nico Iannizzi" a écrit dans le message de news:429401c47f9f$e9e3e210$
Bonjour,

J'ai un formulaire avec des textbox dans lesquels j'encode
des dates dans le format jj/mm/aaaa.

Quand je valide l'enregistrement, les valeurs sont
passées dans les cellules d'feuille (par une procédure
VBA). L'affichage dans les textbox et dans les cellules
ne change pas.

Les cellules en question sont au format date: jj/mm/aaaa.

Mais quand je clique sur mon bouton "Enregistrement
suivant" et que je reviens avec mon
bouton "Enregistrement précédent", je constate que les
formats dates ont changé en mm/jj/aaaa (format date
américain) au niveau du formulaire et de la feuille.

Ma question: Comment forcer Excel de maintenir le format
jj/mm/aaaa?


Merci d'avance à toutes et à tous pour vos précieuses
suggestions.


Nico Iannizzi
Avatar
Nico Iannizzi
Bonjour michdenis,

Merci pour ta réponse, elle me permet de voir plus claire
et de mettre au poinr mon code.

Vous êtes tous des pro!

Maintenant je peux faire dodo tranquille ;-)

Nico


-----Message d'origine-----
Bonjour Nico,

Simonaque! Nico, oublie la propriété "ControlSource" des
contrôles textbox ... Tu es le boss, alors choisis le

moment désiré
pour passer la valeur de ton textbox vers une cellule ou
l'inverse la valeur d'une cellule vers un textbox. dans une

procédure ....


Ceci étant dit, à moins que tes cellules devant recevoir
le contenu des textbox soient au format "TEXTE", tu dois

obligatoirement formater la cellule au format désiré
avant de lui affecter une valeur date. Quand en vba, tu

passes le
contenu d'une variable ou d'un textbox à une cellule,
seul SON CONTENU (OUBLIE LE FORMAT QU'AVAIT LE TEXTBOX OU

LA VARIABLE)
est passé à la cellule. La fonction "Format" appartient
aux éléments (variables ou textbox...) au VBA, pour

formater une
cellule, tu dois le faire de cette façon :

'Tu vérifies d'abord si le contenu de ton textbox
contient bien une date ...


'---------------------------
If IsDate(UserForm1.TextBox1) Then
With Worksheets("Feuil1")
'Défini le format que tu désires pour la
cellule ...

.Range("A1").NumberFormat = "dd/mm/yy"
.Range("A1").Value = CDate(UserForm1.TextBox1)
End With
End If
'---------------------------


Salutations!



"Nico Iannizzi" a écrit dans le
message de news:429401c47f9f$e9e3e210$

Bonjour,

J'ai un formulaire avec des textbox dans lesquels j'encode
des dates dans le format jj/mm/aaaa.

Quand je valide l'enregistrement, les valeurs sont
passées dans les cellules d'feuille (par une procédure
VBA). L'affichage dans les textbox et dans les cellules
ne change pas.

Les cellules en question sont au format date: jj/mm/aaaa.

Mais quand je clique sur mon bouton "Enregistrement
suivant" et que je reviens avec mon
bouton "Enregistrement précédent", je constate que les
formats dates ont changé en mm/jj/aaaa (format date
américain) au niveau du formulaire et de la feuille.

Ma question: Comment forcer Excel de maintenir le format
jj/mm/aaaa?


Merci d'avance à toutes et à tous pour vos précieuses
suggestions.


Nico Iannizzi


.