Format de date VBA [Résolu]

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

4 réponses

Meilleure réponse
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
15
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 6036 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
15
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 6036 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_MPi
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
0
Merci
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
Commenter la réponse de jimy neutron
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
0
Merci
Merci pour tes précisions

A+

Jimy
Commenter la réponse de jimy neutron