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: 11
  • 2025.jpg
    2025.jpg
    76.2 KB · Affichages: 10
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)))

Regarde la pièce jointe 1228229
EDIT : Mais c'est peut-être pour la date min, à ramener au 1er jour du mois et non de l'année.
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.
Bonjour,

Ne serait-ce pas plus simple de partager directement le fichier concerné sans données confidentielles, puisque vous l’avez déjà sous la main ?
il est difficile, voire impossible, d’identifier un problème et d’y apporter une solution en se basant uniquement sur une image.

Slts
 
Bonjour,
En l'absence de fichier, cette proposition (formule non matricielle)
VB:
=SI(SOMME(A$7:A$18)=0;0;(JOURS(MAX(A$7:A$18);MIN(A$7:A$18))+1))
Test somme = 0 pour si rien renseigné on retourne 0
sinon, le nombre de jours entre la date max et la date min
 
Bonjour,
En l'absence de fichier, cette proposition (formule non matricielle)
VB:
=SI(SOMME(A$7:A$18)=0;0;(JOURS(MAX(A$7:A$18);MIN(A$7:A$18))+1))
Test somme = 0 pour si rien renseigné on retourne 0
sinon, le nombre de jours entre la date max et la date min
Merci, mais ça me donne 336 jours et non 365 jours. Je vais essayer de simplifier le classeur et je l'envoie. Merci beaucoup.
 
rectification
VB:
=SI(NBVAL(A$7:A$18)=0;0;SI(NBVAL(A$7:A$18)=1;1;JOURS(MAX(A$7:A$18);MIN(A$7:A$18))))
Aucune date : renvoie 0
Une Date : renvoie 1
x Dates : différence entre la max et la min (suppression du +1) avec donc un max qui est bien 365
EDIT : pas vu votre fichier, nos réponses se sont croisées
1772294502057.png
 
Dernière édition:
rectification
VB:
=SI(NBVAL(A$7:A$18)=0;0;SI(NBVAL(A$7:A$18)=1;1;JOURS(MAX(A$7:A$18);MIN(A$7:A$18))))
Aucune date : renvoie 0
Une Date : renvoie 1
x Dates : différence entre la max et la min (suppression du +1) avec donc un max qui est bien 365
EDIT : pas vu votre fichier, nos réponses se sont croisées
Regarde la pièce jointe 1228223
rectification
VB:
=SI(NBVAL(A$7:A$18)=0;0;SI(NBVAL(A$7:A$18)=1;1;JOURS(MAX(A$7:A$18);MIN(A$7:A$18))))
Aucune date : renvoie 0
Une Date : renvoie 1
x Dates : différence entre la max et la min (suppression du +1) avec donc un max qui est bien 365
EDIT : pas vu votre fichier, nos réponses se sont croisées
Regarde la pièce jointe 1228223
 
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
 
Dernière édition:
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)))

Regarde la pièce jointe 1228229
EDIT : Mais c'est peut-être pour la date min, à ramener au 1er jour du mois et non de l'année.
 
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)))

Regarde la pièce jointe 1228229
EDIT : Mais c'est peut-être pour la date min, à ramener au 1er jour du mois et non de l'année.
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.
 
Avec plaisir.
Pour passer la discussion à résolue, sur la réponse Solution, la cocher comme Solution.
EDIT : C'est la réponse qui apporte la solution qu'il faut marquer comme solution et non votre réponse (sauf bien sûr si c'est la solution 😉)
 
Dernière édition:
Bonjour,

J'ai bien vu que le problème est déjà résolu et je n'ai pas ouvert le classeur de #5, mais au vu des images de #1 je me demandais (juste par curiosité) si on ne pouvait pas utiliser une formule de ce genre :
Code:
=si(a7="";0;max(a18-a7)-a7+1)
ou ceci :
Code:
=si(a7="";0;max(a18-a7)-date(annee(a7);1;1)+1)



je n'ai toujours pas compris pourquoi l'autre formule ne fonctionnait plus.
As-tu regardé le message indiqué par le triangle ?
Ça devrait te donner un indice sur la raison de l'erreur.
 
Avec plaisir.
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.

Pour passer la discussion à résolue, sur la réponse Solution, la cocher comme Solution.

Bonjour,

J'ai bien vu que le problème est déjà résolu et je n'ai pas ouvert le classeur de #5, mais au vu des images de #1 je me demandais (juste par curiosité) si on ne pouvait pas utiliser une formule de ce genre :
Code:
=si(a7="";0;max(a18-a7)-a7+1)
ou ceci :
Code:
=si(a7="";0;max(a18-a7)-date(annee(a7);1;1)+1)




As-tu regardé le message indiqué par le triangle ?
Ça devrait te donner un indice sur la raison de l'erreur.
Non, il n'y avait rien d'indiqué, tout était grisé.
 
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
C'est la réponse qui apporte la solution qu'il faut marquer comme solution et non votre réponse (sauf bien sûr si c'est la solution )
 
- 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