Problème format date

Résolu
Sdbswiss Messages postés 11 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 12 septembre 2007 - 2 juil. 2007 à 10:37
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 2 juil. 2007 à 15:13
Bonjour à tous,

J'utilise un UserForm pour saisir des données, dont des date qui sont saisie dans des TextBox. Toutes les données vont ensuite s'inscrire dasn une feuille Excel. Jusque là tous vas bien, mais le problème est que les dates se modifient entre la saisie et l'inscription. Elle sont saisie sous le format français (jj/mm/aa) mais sont inscrites sous le format anglais (mm/jj/aa).

J'ai précisé dans le code sous quel format je les voulait (Format (date.value, ""jj/mm/aa"")), mais ca ne fonctionne pas.
J'arrive à obtenir le bon format lorsque j'inverse le jour avec le mois (Format (date.value, ""mm/jj/aa"")), mais c'est plus une bidouille qu'une veritable solution au problème.

Je suppose qu'il faudrait changer le format du TextBox, mais je ne sait pas comment faire.

Si quelcun avait une idée la-dessus je suis preneur,
Merci d'avance,

Swiss la petite souris de labo perdue dans les dates.
Qui fait l'ange, fait la bête!

6 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 juil. 2007 à 10:44
hou, que c'est moche....

l'utilisateur saisie sa date, dans son propre format (selon les parametres régionnaux).

concernant la fonction Format$, elle ne doit etre utilisée QUE pour formatter en vue de l'affichage de données...

par la suite, stockes ca dans une variable de type Date, ou bien telle que saisie (la fonction CDate saura s'y retrouver)

pour la transmettre à Excel, transmets bien une date, (passes par CDate si besoin)

exemple :
oSheel.Range("A1").Value = CDate(Text1.Text)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 juil. 2007 à 11:15
Bonjour,

Se méfier malgré tout des subtilités de VB

Private Sub Command1_Click()
  toto = CDate("01/13/2000")
  titi = CDate("13/01/2000")
  If toto = titi Then MsgBox "oui"
End Sub
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 juil. 2007 à 11:57
bonjour l'ami,

oui, ca c'est normal.... 01/13/2000 le mois '13' n'existant pas, il se dit que tu as saisi mm/dd/yyyy
les deux dates sont donc equivalentes

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 juil. 2007 à 12:38
Salut RenField,
Je sais bien (même réaction qu'avec Isdate)...
Mais du coup : il faut parfaitement contrôler la saisie si l'on veut éviter des désagréments.... et pas seulement avec Isdate !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
2 juil. 2007 à 14:44
L'utilisation d'un contrôle MonthView ou Date And Time Picker pourrait éviter d'entrer des dates non valides.

MPi
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 juil. 2007 à 15:13
comment faire ?

je veux dire, l'user tape la date dans le format de son poste (normallement) après, si sa date est valide...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Rejoignez-nous