GNT sans publicité, site mobile, fonctionnalitées exclusives...

Fonction JOUR et Day

Le
Emcy
Salut,

Pourquoi la formule Excel "=JOUR(58)" donne 27 et la
formule VBA "Day(58)" donne 26 ?

JOUR et Day ne font-ils pas la même chose ?
Lire les 13 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Bernard MAZAS
Le #219340
Salut Emcy

"Emcy" 22e3401c38c00$446e3df0$
Salut,

WPourquoi la formule Excel "=JOUR(58)" donne 27 et la
formule VBA "Day(58)" donne 26 ?

JOUR et Day ne font-ils pas la même chose ?


Oui, mais seulement à partir du 1er mars 1900.

Bernard

Frédéric Sigonneau
Le #220088
Bonjour,

Si, ces deux fonctions font la même chose mais pas tout à fait à partir du même
calendrier. Si tu le peux, télécharge le fichier CompilDates sur mon site
(http://perso.wanadoo.fr/frederic.si...atesv4.zip)
et regarde la page 'Numéros de série Xl-VBA'.
La différence entre Jour(58) et Day(58) a la même raison d'être que celle mise
en évidence sur cette page entre les dates obtenues en VBA avec les propriétés
.Value et .Text et la fonction DateValue : Excel, pour d'obscures raisons,
considère toujours l'année 1900 comme bissextile alors que ce n'est pas le cas.
Résultat : un jour de trop (le 29 février) par rapport au calendrier de VBA qui,
lui est correct et considère à juste titre 1900 comme une année ordinaire. A
partir du 1er mars 1900 les deux calendriers concordent de nouveau : jour(61) et
day(61) donnent le même résultat.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Salut,

Pourquoi la formule Excel "=JOUR(58)" donne 27 et la
formule VBA "Day(58)" donne 26 ?

JOUR et Day ne font-ils pas la même chose ?


Bernard MAZAS
Le #220038
"Frédéric Sigonneau" news:

Excel, pour d'obscures raisons,
considère toujours l'année 1900 comme bissextile alors que ce n'est pas le
cas.


Pour une raison parfaitement inavouable : ce bug (29 février 1900) existait
dans Lotus 123 (standard des tableurs dans les années 80). Quand Microsoft a
lancé Excel en 1985, voulant être compatible avec Lotus, il a reproduit
(mais est-ce volontaire ?) cette erreur, qu'on traîne encore aujourd'hui.

Bernard (qui tient ça de LL)

AV
Le #219989
Pourquoi la formule Excel "=JOUR(58)" donne 27 et la
formule VBA "Day(58)" donne 26 ?


Une raison de plus pour faire confiance aux fonctions de feuille de calcul ;-)
MsgBox [Day(58)]

AV

Frédéric Sigonneau
Le #220704
Bonsoir Alain,

Evaluate n'admet que les noms anglais des fonctions, alors, à mon avis, JOUR et
DAY, dans ce cas, sont une seule et même fonction...
Les résultats différents signalés dans la question initiale sont seulement
relatifs à des systèmes de datation différents entre Excel et VBA (quelle que
soit la cause de cette différence, et j'ai souvenir en effet que LL avait avancé
cette explication Lotus, rappelée par Bernard, en qq occasions).

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Pourquoi la formule Excel "=JOUR(58)" donne 27 et la
formule VBA "Day(58)" donne 26 ?


Une raison de plus pour faire confiance aux fonctions de feuille de calcul ;-)
MsgBox [Day(58)]

AV



Publicité
Suivre les réponses
Poster une réponse
Anonyme