Format de date VBA

Résolu
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 - 10 juin 2008 à 09:30
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 - 10 juin 2008 à 16:16
Bonjour à tous,

Pas trtès connaisseur en VBA, je vous expose mon petit problème.

- MyDate est un string égal à la valeur d'un calendrier MSCAL soit 10/06/08 (10 juin 2008)
- Soit un cellule au format date "mardi 10 juin 2008".

Et bien si je donne la valeur de MyDate à cette cellule, je me retrouve avec le 06/10/08 soit le "mercredi 06 octobre 2008".
Je me rends bien compte qu'il s'agit d'un PB de format europeen et américain, mais je ne connais pas l'astuce pour résoudre le PB simplement.

Merci de vos réponses

Jimy

4 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
10 juin 2008 à 13:15
Tu pourrais travailler avec la valeur Long de la date (CLng(MyDate)) et le formatage des cellules (NumberFormat)
ou encore utiliser la foncton Format(MyDate, "mm/dd/yyyy")
ou encore jouer avec les fonctions Day, Month et Year
ou encore utiliser la valeur retournée par le calendrier, mais en Date, pas en String

Personnellement, je trouve que travailler avec la valeur numérique Long d'une date est plus simple...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
10 juin 2008 à 15:19
Excel se charge lui-même d'inscrire la date dans le format qu'il juge acceptable.
Si tu entres 31/06/08, il comprendra que 31 est le jour
Si tu entres 06/31/08, il comprendra aussi que 31 est le jour

Mais si tu entres 10/06/08, il ne peut faire la différence entre le 06 et le 08, donc il prendra le format "standard" au niveau programmation, soit mm/jj/aa

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
3
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 1
10 juin 2008 à 13:41
Bonjour MPI, et merci

En dimensionnant "MyDate as Date", il n'y plus de confusion entre le format européen et anglo-saxon, (jj/mm/aaaa <-> mm/jj/aaaa),et donc ça marche très bien, mai je ne comprends pas trop pourquoi!

Si MyDate as String, sur un point d'arrêt, MyDate=10/06/08, idem si MyDate as Date.

L'inversion des JJ et MM se fait à l'écriture de la cellule cible, alors que seule la déclaration de MyDate change.

Aurais-tu une idée?

Jimy
0
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 1
10 juin 2008 à 16:16
Merci pour tes précisions

A+

Jimy
0
Rejoignez-nous