Excel - VBA - Format date incorrect

[Résolu/Fermé]
Signaler
-
Messages postés
57
Date d'inscription
dimanche 15 juillet 2012
Statut
Membre
Dernière intervention
2 mars 2017
-
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

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 !
A voir également:

2 réponses

Messages postés
17119
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 octobre 2021
908
Si tu veux specifier la valeur et le format, je suggère plutôt:
Range("D19").Value = Date - Weekday(Date, vbMonday) + 1
Range("D19").NumberFormat = "dd/mm/yyyy"

comme expliqué par thev , la fonction format n'a pas pour but de préciser le format utilisé pour afficher la cellule.
1
Merci

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

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
57
Date d'inscription
dimanche 15 juillet 2012
Statut
Membre
Dernière intervention
2 mars 2017
1
Bonjour Yg,

Merci pour la solution et pour cette précision. Le sujet est donc résolu grâce à vos interventions!
Messages postés
1769
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
15 juin 2020
642
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.

 
Messages postés
57
Date d'inscription
dimanche 15 juillet 2012
Statut
Membre
Dernière intervention
2 mars 2017
1
Bonjour Thev,

Merci beaucoup pour ta réponse complète, c'est tout compris pour moi :)