Microsoft 365 [résolu] La même formule me crée une erreur sur 1 onglet

  • Initiateur de la discussion Initiateur de la discussion Marboi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Marboi

XLDnaute Occasionnel
Bonjour,
Je ne comprends pas pourquoi du jour au lendemain, j'ai une erreur sur la même formule matricielle sur l'onglet 2024 alors que cela fonctionne sur 2025 & 2026.
J'ai rencontré le même problème sur 2023 mais je l'ai finalement simplifiée par cette formule =DATEDIF($A$7;MAX(A7:A18);"d")+31 (31 parce que j'ai indiqué 31/01/23 sur la 1ère cellule, donc 30 jours en + et +1).
Merci de votre aide
 

Pièces jointes

  • 2024.jpg
    2024.jpg
    92 KB · Affichages: 17
  • 2025.jpg
    2025.jpg
    76.2 KB · Affichages: 12
Solution
Je n'avais pas compris.
Donc, pour la date min, on la ramène au 1er janvier de l'année, par exemple pour 10/03/2024 au 01/01/2024
A noter 2024 est une année bissextile donc 366 jours (ce qui m'a fait croire à des erreurs de formule là où il n'y en avait pas).
La formule
VB:
=SI(NBVAL(A$7:A$18)=0;0;JOURS(MAX(A$7:A$18);DATE(ANNEE(MIN(A$7:A$18))-1;12;31)))

1772298008103.png

EDIT : Mais c'est peut-être pour la date min, à ramener au 1er jour du mois et non de l'année.
EDIT 2 :
Dans ce cas la formule devient
Code:
=SI(NBVAL(A$7:A$18)=0;0;JOURS(MAX(A$7:A$18);DATE(ANNEE(MIN(A$7:A$18));MOIS(MIN(A$7:A$18));1))+1)

1772298574475.png
Bonjour @TooFatBoy ,@Marboi
j'ai regardé votre formule
VB:
=DATEDIF("01-01";MAX(A7:A18);"d")
Voici la raison de l'erreur #NOMBRE! sur l'onglet 2025 et pas sur l'onglet 2026 :
"01-01" représente la 1er janvier de l'année courante et donc, cette année 2026, en décembre de l'année dernière 2025 ... Ce qui explique pourquoi cette anomalie est apparue mystérieusement sur l'onglet 2025.
Dans la fonction DATEDIF, la 1ère date est la date de début qui doit être inférieure ou égale à la la date de fin (la 2ème date).
Ce n'est plus le cas sur l'onglet 2025.
avec la formule suivante sur l'onglet 2025, il n'y a plus d'erreur.
Code:
=DATEDIF("01-01-25";MAX(A7:A18);"d")
.
@Marboi, petit rappel de mon post précédent
Ah, enfin ! Merci beaucoup, je ne comprenais pas pourquoi et maintenant j'ai la réponse. Jamais, je n'aurai pensé à préciser l'année dans cette formule par onglet "années". Encore merci.
 
Bonsoir,
Une dernière réponse.
Ci-dessous, un tableau de cas et différentes formules utilisées.
1772396612719.png

Microsoft rappelle ici que
Excel propose la fonction DATEDIF afin d’assurer la prise en charge des anciens classeurs créés dans Lotus 1-2-3. Dans le cadre de certains scénarios, la fonction DATEDIF peut calculer des résultats incorrects.

Dans votre post #11 vous dites
Merci beaucoup, là ça fonctionne impec, par contre je n'ai toujours pas compris pourquoi l'autre formule ne fonctionnait plus. L'essentiel est que ça marche, merci beaucoup.
mais sans indiquer quelle règle doit être appliquée (voir post #9) :
Date Min, à ramener au 1er jour du mois ou de l'année ?
Concernant la solution, c'est le post #9 et non le vôtre qu'il faut indiquer, si c'est toujours le cas, comme solution.

EDIT :
Vous n'avez pas indiqué s'il était possible d'avoir A7 vide et A8 renseigné ou, dit autrement s'il peut y avoir des trous dans les dates.
Si oui, le test A7="" (comme dans la formule de TooFatBoy) n'est pas bon. Il faut utiliser NBVAL.
 
Dernière édition:
Ben finalement, en mettant 25 en plus ça me donne PROPAGATION
Pour connaître le nombre de jours entre deux dates, inutile d'utiliser DateDiff : en effet, une date est un nombre entier correspondant au nombre de jours depuis le "zéro janvier 1900", donc il suffit de faire la soustraction entre les deux dates.

C'est pourquoi je proposais en #13 la formule suivante pour calculer entre le 1er janvier et la dernière date entrée :
Code:
=SI(A7="";"";MAX(A7:A18)-DATE(ANNEE(A7);1;1)+1)

Ou éventuellement la formule suivante pour calculer entre le 1er janvier et le dernier jour du mois de la dernière date entrée :
Code:
=SI(A7="";"";DATE(ANNEE(MAX(A7:A18));MOIS(MAX(A7:A18))+1;1)-DATE(ANNEE(A7);1;1))


Sur ce, bonne soirée
🖖
 
Dernière édition:
Pour connaître le nombre de jours entre deux dates, inutile d'utiliser DateDiff : en effet, une date est un nombre entier correspondant au nombre de jours depuis le "zéro janvier 1900", donc il suffit de faire la soustraction entre les deux dates.

C'est pourquoi je proposais en #13 la formule suivante pour calculer entre le 1er janvier et la dernière date entrée :
Code:
=SI(A7="";"";MAX(A7:A18)-DATE(ANNEE(A7);1;1)+1)

Ou éventuellement la formule suivante pour calculer entre le 1er janvier et le dernier jour du mois de la dernière date entrée :
Code:
=SI(A7="";"";DATE(ANNEE(MAX(A7:A18));MOIS(MAX(A7:A18))+1;1)-DATE(ANNEE(A7);1;1))


Sur ce, bonne soirée
🖖
Bonjour et merci à vous deux. Les formules fonctionnent toutes. Je n'ai plus qu'à "choisir 😉 " Merci beaucoup.
 
Les formules fonctionnent toutes.
Tant mieux.

Mais il serait fort sympathique d'enfin répondre à la question posée déjà plusieurs fois : quelles doivent être les bornes du calcul ???
Sur les images de #1 on voit que la borne inférieure du calcul est le 1er janvier et ça semble logique, mais est-ce toujours le cas ?
La borne supérieure semble être la date la plus élevée mais est-ce bien cela, ou faut-il prendre le dernier jour du mois ?
 
voir mon EDIT du post #18
Je viens d'aller voir ton edit de #18.

Évidemment que ça ne fonctionne pas si A7 est vide et qu'au moins une cellule de A8:A18 ne l'est pas !
Mais pour moi il est évident que, d'une part on rempli un tableau en commençant par la première ligne, et d'autre part il faut adapter la formule proposée si besoin.

Bref. Tout ceci ne répond pas à la question posée : quelles bornes faut-il utiliser pour le calcul ?
 
Tant mieux.

Mais il serait fort sympathique d'enfin répondre à la question posée déjà plusieurs fois : quelles doivent être les bornes du calcul ???
Sur les images de #1 on voit que la borne inférieure du calcul est le 1er janvier et ça semble logique, mais est-ce toujours le cas ?
La borne supérieure semble être la date la plus élevée mais est-ce bien cela, ou faut-il prendre le dernier jour du mois ?
En fait pour moi, c'est très simple : c'est un tableau à l'année, en principe, pendant les mois d'hiver, j'indique à chaque fin de mois la jauge de ma cuve, donc fin janvier... jusqu'au 31 décembre (pas forcément l'été puisque conso réduite, par contre toujours au 31 décembre pour me faire l'année (je ne sais pas si je très clair là!!!!)), donc en gros c'est toujours sur 365/366 jours ce qui me permet de connaître ma conso journalière. Le terme borne, je ne comprends pas trop, désolé. Merci de votre implication.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour