Fonction fin.mois peut être incorrecte si la date est en février

Traductions disponibles Traductions disponibles
Numéro d'article: 179545 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Agrandir tout | Réduire tout

Symptômes

Si vous utilisez la fonction fin.mois pour retourner le dernier jour du mois, la fonction peut retourner le premier jour du mois suivant à la place.

Par exemple, la fonction fin.mois peut retourner incorrectement les 3/1/2100 (mars 1, 2100) au lieu de 2/28/2100 (28 février. 2100).

Cause

Ce problème se produit lorsque la date renvoyée par la fin.mois fonction répondent aux conditions suivantes :
  • La date est en février. - et -

  • La date est dans une année de siècle n'est pas divisible par 400, par exemple :
    2100, 2200, 2300, 2500, 2600, 2700, 2900, 3000
Remarque : Ce problème ne se produit pas si la date est dans l'année 1900 ou 2000.

Contournement

Comme la fonction fin.mois doit toujours retourner une date à la fin du mois, vous pouvez modifier les formules afin qu'ils soustraire un de la date renvoyée par la fonction fin.mois si la date n'est pas à la fin du mois. Cela force la fonction renvoie la date correcte, par exemple :
A1: 1/1/2100
A2 : =EOMONTH(A1,1)
La formule de la cellule qu'a2 retourne 3/1/2100, une date incorrecte. Toutefois, si vous modifiez la formule
A1 : 1/1/2100
A2 : =IF(DAY(EOMONTH(A1,1))=1,EOMONTH(A1,1)-1,EOMONTH(A1,1))
la formule renvoie la bonne date (2/28/2100) même si la date se situe en février de l'année de siècle n'est pas divisible par 400.

Voici comment fonctionne la formule :
Si le jour de la fin du mois est 1, recalculer la fin du mois, soustrayez un et renvoyer la date. Dans le cas contraire, recalculer la fin du mois et renvoyer la date.

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés au début de cet article. Ce problème ne se produit plus dans Microsoft Excel 2000.

Plus d'informations

La fonction fin.mois, qui est incluse dans l'analyse ToolPak, afin de pouvoir renvoyer la date du dernier jour du mois. Par exemple, si vous souhaitez déterminer le dernier jour du mois six mois à compter de date du jour, utilisez la formule suivante :
=EOMONTH(TODAY(),6)
Si ce jour est 13/01/98, la fonction renvoie 31/07/98 : le dernier jour du mois six mois à partir d'aujourd'hui.

Le problème décrit dans cet article se produit uniquement lorsque la fonction fin.mois renvoie une date en février de l'année au siècle qui n'est pas une année bissextile, par exemple :
A1: 1/1/2000 B1 : =EOMONTH(A1,1)
A2: 1/1/2100 B2 : =EOMONTH(A2,1)
A3: 1/1/2200 B3 : =EOMONTH(A3,1)
A4: 1/1/2300 B4 : =EOMONTH(A4,1)
A5: 1/1/2400 B5 : =EOMONTH(A5,1)
Les formules dans les cellules B1 et B5 renvoient des résultats corrects (2/29/2000 et 2/29/2 400) parce que les dates sont années siècle qui sont divisibles par 400.

Les formules dans les cellules B2, B3 et B4 retournent incorrecte provoque (3/1/2100, 3/1/2200 3/1/2300) car les dates sont dans ans siècle qui ne sont pas divisibles par 400.

Propriétés

Numéro d'article: 179545 - Dernière mise à jour: jeudi 6 février 2014 - Version: 2.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Excel 97 Standard
  • Microsoft Excel 98 pour Macintosh
Mots-clés : 
kbnosurvey kbarchive kbmt kbbug kbpending KB179545 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 179545
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com