Se connecter avec
S'enregistrer | Connectez-vous

Problème de date: Inversion jour et mois dans cellule de résultat

Dernière réponse : dans Programmation

Bonjour,

J'ai le problème suivant sur Excel:

J'ai à la base 3 colonnes, une correspondant au jour, une deuxième au mois et une troisième à l'année.
Je souhaite regrouper ces 3 colonnes dans une quatrième afin qu'elle contienne la date complete du type JJ/MM/AAAA.

J'utilise la ligne de macro suivante:
Range("J" & i).Value = Range("B" & i) & "/" & Range("H" & i) & "/" & Range("I" & i)

Problème: Pour certaines cellules, le jour et le mois sont inversés... Au lieu d'avoir JJ/MM/AAAA je vois MM/JJ/AAAA.

Pourtant toutes les cellules de la colonnes finale sont au même format de date: *14/03/2001, et en français...

Pour faire un test, j'ai inclus le résultat de la concatenation des 3 cellules dans une variable, puis je l'affiche via Msgbox, il n'y a pas d'erreur d'inversion à ce niveau.
Donc le problème apparaitrait au moment de l'insertion des données dans les cellules finales...

Pouvez vous m'aider? J'ai tourné le problème dans tous les sens et je ne vois plus trop d'ou ça peut venir... Ca me semble plus très logique... Quelqu'un a une idée?

(J'utilise Office 2007)
Lassé par la pub ? Créez un compte
Expert Programmation

Salut,

Et si plutôt que de tenter de justifier pourquoi Excel s'emmêle la traduction, je te proposais de te renseigner sur la fonction DateSerial() ?

(Ceci constitue une solution probable, pas une réponse à ta question, j'entends bien ;)  )
Expert Programmation

C'est une autre solution, mais ce n'est toujours pas la réponse à " pourquoi Excel s'emmêle-t-il ? ".

As-tu regardé la fonction DateSerial() ?

-----------

Par ailleurs, la construction des adresses avec des chaînes de caractères, si elle est très parlante, n'est pas très efficace. Considère qu'il vaut mieux, surtout quand la performance est en jeu, utiliser Cells() plutôt que Range() :
  1. Cells(i, 10).Value = DateSerial(Cells(i, 9).Value, Cells(i, 8).Value, Cells(i, 2).Value)
Lassé par la pub ? Créez un compte