Qu'est-ce que la fonction MOIS. DECALER ?
MOIS.DECALER (EDATE en anglais) te sert dès que tu dois avancer ou reculer une date de plusieurs mois sans te tromper de jour : ajouter 30 ou 60 jours à la main finit toujours par glisser d'une date sur l'autre, surtout aux changements de mois.
C'est elle qui calcule les dates d'échéance de tes contrats, planifie les rappels de renouvellement trimestriel, construit tes rétroplannings de projet ou retrouve les dates d'embauche à partir de l'ancienneté. Plus besoin de compter les mois sur tes doigts ni de te perdre dans les calendriers.
Syntaxe
=MOIS.DECALER(date_départ; mois)Clique sur un argument pour aller à son explication.
Si le jour de la date de départ n'existe pas dans le mois cible (ex : le 31 janvier décalé d'un mois), Excel ajuste automatiquement vers le dernier jour du mois cible.

Comprendre chaque paramètre de la fonction MOIS.DECALER
date_départ
: la date de référence à partir de laquelle le calcul est effectuéTu peux utiliser une référence de cellule comme A1, une date entre guillemets comme "15/01/2024", ou le résultat d'une autre fonction comme AUJOURDHUI().
Excel stocke toutes les dates comme des numéros de série : ce paramètre doit contenir une vraie date formatée, pas du texte qui ressemble à une date. Si la cellule affiche un texte aligné à gauche, c'est souvent signe que ce n'est pas une date reconnue.
mois
: le nombre de mois à ajouter si positif, à soustraire si négatifTu peux utiliser un entier direct comme 12, une référence de cellule comme B2, ou même une formule qui calcule un nombre de mois.
Quelques exemples courants : 3 pour avancer de 3 mois, -6 pour reculer de 6 mois, 12 pour avancer d'un an, -24 pour reculer de 2 ans. Il n'y a pas de limite sur la valeur.

Exemples pratiques pas à pas
Comment ajouter des mois à une date avec la fonction MOIS.DECALER
Un client t'appelle pour savoir jusqu'à quand court son contrat, et tu ne vas pas le faire patienter le temps de compter les mois sur un calendrier. Ton tableau liste chaque client avec sa date de signature, la durée négociée en mois et le type de contrat, et il ne manque que la date d'échéance en face de chaque ligne. La fonction MOIS.DECALER part de la date de signature, avance du nombre de mois prévu et te sort la date exacte, en gérant les fins de mois et les années bissextiles toute seule.
- 1Dans une cellule, écris
=MOIS.DECALER(. - 2En 1er argument : clique sur la date de signature du contrat,
B2. Une référence de cellule suffit, à condition qu'elle contienne une vraie date et non du texte qui y ressemble. - 3En 2ᵉ argument : clique sur la durée négociée en mois,
C2, qui vaut12ici. En pointant la cellule plutôt qu'en tapant12en dur, tu changes la durée d'un contrat sans jamais rouvrir la formule. - 4Ferme la parenthèse et appuie sur Entrée.
=MOIS.DECALER(B2; C2)B2, avance du nombre de mois inscrit en C2 et renvoie la date d'échéance exacte. Recopiée vers le bas, elle traite tous les contrats d'un coup, et si tu corriges une durée, l'échéance suit sans que tu retouches la formule.Comment reculer de plusieurs mois avec la fonction MOIS.DECALER
La date de lancement vient d'être annoncée en réunion et tout le monde attend maintenant le calendrier des étapes qui y mènent. Ton tableau donne le décalage de chaque jalon par rapport au lancement, exprimé en mois négatifs, et tu veux la date réelle en face de chaque ligne. La fonction MOIS.DECALER accepte les nombres négatifs : elle recule alors dans le calendrier, ce qui construit un rétroplanning complet à partir d'une seule date de référence.
- 1Dans une cellule, écris
=MOIS.DECALER(. - 2En 1er argument : clique sur la date de lancement et verrouille-la en
$C$2. Les dollars la gardent accrochée à cette cellule quand tu recopies la formule vers le bas, et tous les jalons se comptent alors à partir du même point fixe. - 3En 2ᵉ argument : clique sur le décalage de l'étape en cours,
B3. La valeur est négative,-2, donc la fonction MOIS.DECALER recule de deux mois, et cette référence-là bouge bien de ligne en ligne puisqu'elle n'a pas de dollars. - 4Ferme la parenthèse et appuie sur Entrée.
=MOIS.DECALER($C$2; B3)$C$2 gardent le calcul accroché à la date de lancement pendant la recopie, si bien qu'un lancement repoussé d'un mois repousse tout le rétroplanning avec lui.Comment afficher un statut automatique avec les fonctions MOIS.DECALER et SI
Ton chef veut la liste des contrats à relancer avant midi, et tu n'as pas envie de reprendre les échéances une par une pour voir lesquelles sont déjà passées. Chaque ligne porte la date de début et la durée en mois, mais rien n'indique où l'on en est aujourd'hui. En imbriquant la fonction MOIS.DECALER dans une fonction SI, tu compares l'échéance calculée à la date du jour et le tableau affiche le statut de chaque contrat tout seul.
- 1Dans une cellule, écris
=SI(. - 2En 1er argument : écris la comparaison qui départage les contrats,
MOIS.DECALER(B2; C2)<=AUJOURDHUI(). La fonction MOIS.DECALER calcule l'échéance à la volée à partir de la date de débutB2et de la duréeC2, et le test la confronte à la date du jour renvoyée par AUJOURDHUI. Il vaut vrai quand le contrat est arrivé au bout, faux sinon. - 3En 2ᵉ argument : saisis ce qu'Excel affiche quand le test est vrai,
"À renouveler". Les guillemets sont obligatoires pour qu'Excel affiche ce texte brut au lieu d'y chercher un calcul. - 4En 3ᵉ argument : saisis la sortie du cas faux,
"En cours". C'est ce qui s'affiche tant que l'échéance est encore devant toi. - 5Ferme la parenthèse et appuie sur Entrée.
=SI(MOIS.DECALER(B2; C2)<=AUJOURDHUI(); "À renouveler"; "En cours")
Les erreurs fréquentes avec la fonction MOIS.DECALER
Format de date non reconnu : erreur #VALEUR!
Si ta cellule date_départ contient du texte qui ressemble à une date (affiché aligné à gauche), Excel ne peut pas la traiter comme une vraie date et renvoie #VALEUR!.
Solution : Vérifie que ta cellule contient bien une date reconnue. Utilise =ESTNUM(A1) : si le résultat est VRAI, c'est une vraie date. Sinon, convertis le texte avec =DATEVAL("15/01/2024") ou reconstruit la date avec =DATE(2024; 1; 15).
Résultat affiché comme un numéro de série (ex : 45323)
Excel stocke les dates comme des nombres entiers. Si la cellule de résultat est formatée en « Général » ou « Nombre », elle affiche ce numéro au lieu d'une date lisible.
Solution : Sélectionne la cellule, fais Ctrl+1, choisis « Date » et le format souhaité (ex : jj/mm/aaaa). Le numéro se transforme instantanément en date lisible.
Date différente de celle attendue sur les fins de mois
Si tu pars du 31 janvier et ajoutes 1 mois, Excel ne peut pas renvoyer le 31 février qui n'existe pas. Il ajuste au dernier jour du mois cible (28 ou 29 février).
Solution : Ce comportement est normal et voulu. Si tu veux toujours tomber sur le dernier jour du mois, utilise plutôt FIN.MOIS(date; mois). Si tu veux un jour fixe du mois quelle que soit la date de départ, combine MOIS.DECALER avec la fonction DATE.

MOIS.DECALER vs FIN.MOIS vs DATE
Les trois fonctions manipulent les dates par mois, mais avec des résultats différents selon ce que tu veux garder ou contrôler.
| Critère | MOIS.DECALER | FIN.MOIS | DATE |
|---|---|---|---|
| Jour conservé | Oui (même jour) | Non (dernier jour) | Tu choisis |
| Décalage en mois | Direct | Direct | Calcul manuel |
| Gestion années bissextiles | Automatique | Automatique | À gérer manuellement |
| Recul dans le temps | Oui (nombre négatif) | Oui (nombre négatif) | Oui (mais plus complexe) |
| Cas d'usage typique | Contrats, échéances fixes | Clôtures comptables | Dates entièrement personnalisées |

Astuces avancées avec MOIS.DECALER
Combiner MOIS.DECALER et FIN.MOIS pour les clôtures de trimestre
Tu peux imbriquer les deux fonctions : =FIN.MOIS(MOIS.DECALER(A1; 3); 0) te donne le dernier jour du mois, exactement 3 mois après la date en A1. Pratique pour calculer des dates de clôture trimestrielle à partir de n'importe quelle date de départ.
Tu obtiens la souplesse de MOIS.DECALER pour le décalage et la précision de FIN.MOIS pour le jour.
Préférer MOIS.DECALER à +365 pour les anniversaires annuels
Pour calculer une date exactement un an plus tard, utilise =MOIS.DECALER(date; 12) plutôt qu'ajouter 365 ou 366 jours. Les années bissextiles sont gérées automatiquement : tu retombes toujours sur le même jour du mois.
Ajouter 365 jours te ferait atterrir sur le mauvais jour certaines années.
Utiliser ESTNUM pour valider une date avant de calculer
Questions fréquentes
MOIS.DECALER conserve le jour de la date d'origine. Si tu pars du 15 janvier et avances de 3 mois, tu obtiens le 15 avril. FIN.MOIS renvoie toujours le dernier jour du mois cible, peu importe le jour de départ. Utilise MOIS.DECALER pour les contrats et abonnements où le jour du mois compte, et FIN.MOIS pour les clôtures comptables ou les calculs de fin de période.
Excel ajuste automatiquement vers le dernier jour du mois. Par exemple, le 31 janvier décalé d'un mois donne le 29 février en année bissextile, ou le 28 février en année normale. C'est un comportement voulu pour éviter les erreurs. Si tu veux toujours le dernier jour du mois de destination, utilise plutôt FIN.MOIS.
Oui. Un nombre négatif recule dans le temps : -3 remonte de 3 mois, -12 recule d'un an, -24 recule de 2 ans. Il n'y a pas de limite.
C'est très utile pour les rétroplannings de projet ou pour retrouver des dates passées à partir d'une ancienneté en mois.
Oui, automatiquement. Si tu décales le 29 février 2024 (année bissextile) de 12 mois, tu obtiendras le 28 février 2025 car le 29 février n'existe pas en 2025. C'est précisément pour ça qu'on préfère MOIS.DECALER à l'ajout de 365 jours pour les calculs d'anniversaire annuel.
Utilise =MOIS.DECALER(A1; 18) où A1 contient ta date de départ. Il n'y a pas de limite sur le nombre de mois.
Si tu veux garder la formule dynamique, stocke le nombre 18 dans une cellule et référence-la : =MOIS.DECALER(A1; B1). Tu pourras changer la durée sans modifier la formule.
Pour aller plus loin
Continue sur ta lancée après la fonction MOIS.DECALER : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



