VBA Format date anglaise ou problème de transposition ?

Bonjour,

Cette fois-ci c’est moi qui aie besoin d’aide.

Je donne un coup de main à un membre du forum et je bloque sur le format de date.

L’objet de la demande est de lister les tournées de commerciaux et d’y affecter un côut. Voir feuille facturation.

Feuille planning, j’affecte à la variable d la liste des dates de H2 à NG2.

J’affecte à la variable c la liste des commerciaux de A4 à A75

J’affecte les codes tournées fixes à la variable tf de B4 à G75

J’imbrique trois boucles afin d’extraire les codes des tournées fixes et cela sur 52 semaines.

Remarque, le premier jour de la variable d est le 04/01/2021. La macro pas à pas montre bien l’affectation de la date du 04/01/2021 dans le tableau s ()

Sauf que quand je le transpose dans la feuille facturation mon tableau s, le 04/01/2021 devient 01/04/2021.

Est-ce un problème de transposition ou est-ce un problème de format de date. Imaginez que j’ai fait des tests. Je suis allé jusqu’à mettre un format mm/dd/yyyy aux dates et là ça fonctionne. Ca fonctionne pour le 04/01/2021 mais je pense que ça génère des erreurs de format sur d’autres dates.

Si l’un d’entre vous a déjà été confronté à ce type de problème, je suis intéressé d’avoir la solution.

Amicalement

13v5-ddetp88.xlsm (437.83 Ko)

Bonjour,

oui, c'est toujours galère, ils pourraient s'attacher à résoudre ce pb plutôt que d'ajouter toujours plus de cosmétique marketing...

Si je dois écrire des dates vba sur une feuille, maintenant je ne lui passe que des entiers, le n° de série est toujours correct :

s(2, k) = CLng(d(1, i)) ' .............................date

eric

Bonsoir,

essaie ceci

edit, salut eriiic

d = shp.Range(shp.Cells(2, "H"), shp.Cells(2, DerC)).Value2 ' .......matrice dates

ainsi tu charges le contenu de ton range sans conversion. donc un nombre de jours depuis le 0/1/1900. Qui te donnera une date correcte quand tu la formatteras.

Bonjour,

Je vois que vous bossez tard!

Si j'étais assez souple, je me donnerai des coups de pied dans le ventre. Citation de mon grand-père, paix à son âme.

A la lecture de la réponse de h2so4 je me suis projeté plusieurs années en arrière car j'avais solutionné ce problème avec value2.

J'ai la mémoire qui flanche!

Eric tu es true bon, je n'avais pas imaginé que la fonction CLng pouvait marcher dans cette situation car j'avais repris le calendrier en prenant soin du format des nombres entiers avant de les transformer en dates personnalisées. Ca fonctionne très bien, car je viens de tester. Mais je ne comprends pas pourquoi. Si tu as une réponse à mon incompréhension je serai ravi de te lire.

En tout cas merci à vous deux.

Amicalement

Bonjour,

tu ne passes plus à excel une date mais un nombre : le n° de série de la date, soit 43944 au lieu de 23/04/2020 (ce que fait Value2 en sens inverse).

C'est le format sur la feuille qui fait l'affichage en date.

eric

Ok, Merci!

Je le grave pour la prochaine fois!

Rechercher des sujets similaires à "vba format date anglaise probleme transposition"