Nombre d'arguments trop nombreux pour cette fonction
RésoluPapyLuc51 Messages postés 4400 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 20 novembre 2024 - 19 févr. 2024 à 08:41
- Nombre d'arguments trop nombreux pour cette fonction
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Nombre facile - Télécharger - Outils professionnels
- En raison d'un nombre important d'échec de connexion snapchat - Forum Snapchat
- Le nombre de tentatives de déverrouillage incorrectes est trop élevé samsung - Forum LG
3 réponses
Modifié le 17 févr. 2024 à 07:15
Bonjour,
C'est souvent le problème quand on s'attaque à des formules complexes (genre usine à gaz), là il y a certaines fonctions qui n'ont pas leur parenthèse fermante.
En comparant une date avec une liste des jours fériés sur un autre feuillet il y a plus court comme formule. voir cet exemple
https://www.cjoint.com/c/NBrfSlWGuN6
Joindre une copie du fichier (sans les données confidentielles) si tu veux maintenir la conception que tu as mis en place.
suivre cette fiche
Cordialement
17 févr. 2024 à 16:17
Bonjour.
De toutes façons, même si ta formule "à tiroirs" affichait le bon résultat, il ne serait valable que pour 2024 ! Pâques change de date chaque année, l'Ascension et Pentecôte aussi ...
17 févr. 2024 à 17:23
Bonjour,
Non, dans la formule à tiroirs (si elle était écrite correctement), il est fait référence au mois et à l'année (en I3), ce qui nous permet en extrayant l'année (ou en ayant une autre cellule qui contient l'année) de calculer le dimanche de Pâques et les jours qui en dépendent (lundi de Pâques, Ascension, Pentecôte), exactement d'ailleurs comme on le fait plus simplement sans tiroirs et comme PapyLuc l'a proposé dans une liste de jours fériés annexée.
17 févr. 2024 à 19:51
J'ai une autre formule pour le dimanche de Pâques réputée plus exacte pendant des siècles et des siècles (Amen), mais peu importe; formellement parlant, on ne devrait intégrer à la sortie ni le dimanche de Pâques ni le dimanche de Pentecôte puisque par définition ce sont des dimanches, sauf pour ceux qui travaillent les dimanches sauf fériés, mais c'est chacun qui voit.
En faisant donc dans le (très) absurde, année non datée en B3 (par exemple 2024), date recherchée en D4.
Si on ne veut pas passer par l'année en B3, la variante consiste à remplacer B3 par ANNEE(D4); on peut raccourcir la logorrhée en se servant d'une fonction OU multiple, mais qui me plante, je ne sais pas pourquoi.
=SIERREUR(SI.CONDITIONS(D4=DATE((B3);1;1);"Férié";D4=DATE((B3);5;1);"Férié";D4=DATE((B3);7;14);"Férié";D4=DATE((B3);8;15);"Férié";D4=DATE((B3);11;1);"Férié";D4=DATE((B3);11;1);"Férié";D4=DATE((B3);12;25);"Férié";D4=DATE(B3;SI((25-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29)-MOD(B3-1900+ENT((B3-1900)/4)+31-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29);7))>0;4;3);SI((25-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29)-MOD(B3-1900+ENT((B3-1900)/4)+31-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29);7))>0;(25-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29)-MOD(B3-1900+ENT((B3-1900)/4)+31-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29);7));31+(25-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29)-MOD(B3-1900+ENT((B3-1900)/4)+31-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29);7))));"Férié";D4=DATE(B3;SI((25-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29)-MOD(B3-1900+ENT((B3-1900)/4)+31-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29);7))>0;4;3);SI((25-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29)-MOD(B3-1900+ENT((B3-1900)/4)+31-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29);7))>0;(25-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29)-MOD(B3-1900+ENT((B3-1900)/4)+31-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29);7));31+(25-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29)-MOD(B3-1900+ENT((B3-1900)/4)+31-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29);7))))+1;"Férié";D4=DATE(B3;SI((25-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29)-MOD(B3-1900+ENT((B3-1900)/4)+31-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29);7))>0;4;3);SI((25-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29)-MOD(B3-1900+ENT((B3-1900)/4)+31-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29);7))>0;(25-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29)-MOD(B3-1900+ENT((B3-1900)/4)+31-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29);7));31+(25-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29)-MOD(B3-1900+ENT((B3-1900)/4)+31-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29);7))))+39;"Férié";D4=DATE(B3;SI((25-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29)-MOD(B3-1900+ENT((B3-1900)/4)+31-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29);7))>0;4;3);SI((25-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29)-MOD(B3-1900+ENT((B3-1900)/4)+31-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29);7))>0;(25-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29)-MOD(B3-1900+ENT((B3-1900)/4)+31-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29);7));31+(25-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29)-MOD(B3-1900+ENT((B3-1900)/4)+31-MOD((11*MOD(B3-1900;19)+4-ENT((7*MOD(B3-1900;19)+1)/19));29);7))))+50;"Férié");"")
Modifié le 18 févr. 2024 à 00:18
Bonsoir.
Je suis en tort : J'aurais du spécifier que je répondais à Jardinours, et pas à brucine, ni même à PapyLuc que je salue.
18 févr. 2024 à 06:13
Salut Raymond,
C'est ce que j'avais compris ;)
Cordialement
18 févr. 2024 à 17:59
Formule peut-être plus exacte mais beaucoup moins facile à glisser dans une formule à tiroir. :-) et je serai surement à la retraite lorsque la mienne présentera une erreur de Pâques.
Merci Brucine
Cordialement Jardinours
18 févr. 2024 à 17:56
Merci à tous pour votre participations et vos remarques.
Je travaille malheureusement souvent le dimanche et la plupart des jours fériés.
Effectivement dans ma formule du calcul de pâques une erreur c'était glissé et un oublie de parenthèses dans ma formule à tiroirs
La formule suivante permet de calculer le jour de Pâques : ARRONDI(DATE(ANNEE($I$3);4;MOD(234-11*MOD(ANNEE($I$3);19);30))/7;)*7-6+1 où I3 correspond à la date en cours
De celle ci découle Lundi de Pâques, Pentecôte et Ascension comme la spécifié Raymond.
dans ma réponse à PapyLuc vous trouverez, si cela vous intéresse, ma formule à tiroirs fonctionnelle.
Merci beaucoup.
Cordialement Jardinours
18 févr. 2024 à 17:45
Bonsoir,
Merci de votre réponse. C'est vrai votre méthode est plus simple, je l'avais utilisé dans un autre fichier. Entre temps je me suis penché sur ma formule après correction elle fonctionne.
=SI($B12="";"";SI(JOURSEM($B12)=1;"";SI(OU($B12=DATEVAL("1/1/"&ANNEE($I$3));($B12=ARRONDI(DATE(ANNEE($I$3);4;MOD(234-11*MOD(ANNEE($I$3);19);30))/7;)*7-6+1);$B12=DATEVAL("1/5/"&ANNEE($I$3));$B12=DATEVAL("8/5/"&ANNEE($I$3));($B12=ARRONDI(DATE(ANNEE($I$3);4;MOD(234-11*MOD(ANNEE($I$3);19);30))/7;)*7-6+39);($B12=ARRONDI(DATE(ANNEE($I$3);4;MOD(234-11*MOD(ANNEE($I$3);19);30))/7;)*7-6+50);$B12=DATEVAL("14/7/"&ANNEE($I$3));$B12=DATEVAL("15/8/"&ANNEE($I$3));$B12=DATEVAL("1/11/"&ANNEE($I$3));$B12=DATEVAL("11/11/"&ANNEE($I$3));$B12=DATEVAL("25/12/"&ANNEE($I$3)));"FÉRIÉ";"")))
Merci beaucoup pour votre aide.
Cordialement Jardinours
18 févr. 2024 à 18:39
Bonjour jardinours.
Si en Z1 (ou n'importe quelle autre cellule vide) tu mets la formule =ANNEE($I$3)
si ensuite tu définis le nom AI faisant référence à =Feuil1!$Z$1
si enfin tu fais un Rechercher/Remplacer de =ANNEE($I$3) par AI
alors ta formule de 569 caractères descend à 443 caractères :
' '=SI($B12="";"";SI(JOURSEM($B12)=1;"";SI(OU($B12=DATEVAL("1/1/" &ANNEE($I$3));($B12=ARRONDI(DATE(ANNEE($I$3);4;MOD(234-11*MOD(ANNEE($I$3);19);30))/7;) ...
'=SI($B12="";"";SI(JOURSEM($B12)=1;"";SI(OU($B12=DATEVAL("1/1/"
&AI);($B12=ARRONDI(DATE(AI;4;MOD(234-11*MOD(AI;19);30))/7;) ...
Modifié le 19 févr. 2024 à 08:51
Bonjour jardinous et salutations à Raymond
'
Pour compléter :
'
Puisqu'en B12 il est cherché, en début de formule, le JOURSEM équivalent au dimanche, c'est donc une date.
'
Alors pourquoi utiliser DATEVAL()
'
En reprenant l'indication de Raymond en ce qui concerne l'année nommée AI
'
Remplacer DATEVAL("1/1/"&ANNEE($I$3)) par DATE(AI;1;1) et faire la même chose pour les autres dates.
'
Retirer aussi les parenthèses "(" et ")" qui englobent les OU() n°2,5 et 6.
'
Ce qui donne un total de 390 caractères
'
=SI($B12="";"";SI(JOURSEM($B12)=1;"";SI(OU($B12=DATE(AI;1;1);$B12=ARRONDI(DATE(AI;4;MOD(234-11*MOD(AI;19);30))/7;)*7-6+1;$B12=DATE(AI;5;1);$B12=DATE(AI;5;8);$B12=ARRONDI(DATE(AI;4;MOD(234-11*MOD(AI;19);30))/7;)*7-6+39;$B12=ARRONDI(DATE(AI;4;MOD(234-11*MOD(AI;19);30))/7;)*7-6+50;$B12=DATE(AI;7;14);$B12=DATE(AI;8;15);$B12=DATE(AI;11;1);$B12=DATE(AI;11;11);$B12=DATE(AI;12;25));"FÉRIÉ";"")))
'
Cordialement