Format de date VBA [Résolu]

Signaler
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
-
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
-
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

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
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
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
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
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
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
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
Merci pour tes précisions

A+

Jimy