Excel - VBA - Format date incorrect
Résolu
Bonjour,
Le format de ma date change sans raison, alors que le procédé est le même. J'ai fait un test en enlevant la fonction Format et ça fonctionne, mais j'aimerai juste comprendre pourquoi le format n'est pas le bon dans le premier cas.
1 . Avec la fonction Format
Mes résultats sont les suivant : (dans l'ordre)
30/01/2017
31/01/2017
02/01/2017
02/02/2017
02/03/2017
Les mois et les jours sont inversés dans les trois dernières date.
2. Sans la fonction Format
Mes résultats sont les suivant : (dans l'ordre)
30/01/2017
31/01/2017
01/02/2017
02/02/2017
03/02/2017
Pourriez-vous m'éclairer s'il vous plait?
Merci !
Le format de ma date change sans raison, alors que le procédé est le même. J'ai fait un test en enlevant la fonction Format et ça fonctionne, mais j'aimerai juste comprendre pourquoi le format n'est pas le bon dans le premier cas.
1 . Avec la fonction Format
Range("D19").Value = Format(Date - Weekday(Date, vbMonday) + 1, "dd/mm/yyyy")
Range("F19").Value = Format(Date + 2 - Weekday(Date, vbMonday), "dd/mm/yyyy")
Range("H19").Value = Format(Date + 3 - Weekday(Date, vbMonday), "dd/mm/yyyy")
Range("J19").Value = Format(Date + 4 - Weekday(Date, vbMonday), "dd/mm/yyyy")
Range("L19").Value = Format(Date + 5 - Weekday(Date, vbMonday), "dd/mm/yyyy")
Mes résultats sont les suivant : (dans l'ordre)
30/01/2017
31/01/2017
02/01/2017
02/02/2017
02/03/2017
Les mois et les jours sont inversés dans les trois dernières date.
2. Sans la fonction Format
Range("D19").Value = Date - Weekday(Date, vbMonday) + 1
Range("F19").Value = Date + 2 - Weekday(Date, vbMonday)
Range("H19").Value = Date + 3 - Weekday(Date, vbMonday)
Range("J19").Value = Date + 4 - Weekday(Date, vbMonday)
Range("L19").Value = Date + 5 - Weekday(Date, vbMonday)
Mes résultats sont les suivant : (dans l'ordre)
30/01/2017
31/01/2017
01/02/2017
02/02/2017
03/02/2017
Pourriez-vous m'éclairer s'il vous plait?
Merci !
2 réponses
-
Bonsoir,
Il ne faut pas oublier que la date est en fait un nombre (nombre de jours depuis le 1er janvier 1900 ou 1904 si l'option a été cochée)
Quand tu utilises la fonction format, tu ne donnes pas à la valeur de ta cellule, un nombre mais une chaine de caractères qu'Excel s'efforce de convertir en date car ta cellule est au format date. Excel se perd dans cette conversion entre le format anglo-saxon et le format de l'union européenne.