Nombre d'arguments trop nombreux pour cette fonction

Résolu
jardinours Messages postés 55 Date d'inscription vendredi 3 février 2017 Statut Membre Dernière intervention 18 février 2024 - 16 févr. 2024 à 23:32
PapyLuc51 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

Bonjour,

Dans un calendrier, 'j’aimerai afficher si le jour est férié ou non.

Dans la cellule I3 est mentionné le mois et l'année en cours. (ex.février 2024)
Dans la cellule B2 un jour de ce mois en cours (ex.jeudi 1er février).
Dans la formule si dessous, j'ai essayé de vérifié si le jour B12 est égalé à un jour férié. si vrai il affiche alors "FÉRIÉ", si non il n'affiche rien.

Cela ne fonctionne pas 'Vous avez utilisé un nombre d'argument trop grand pour cette fonction. Comment corrigé ce problème ? Merci.

Cordialement Jardinours

=si(JOURSEM($B12)=1;"";si(ou($b12="1/1/"&ANNEE($I$3);$b12=ARRONDI(DATE(ANNEE($I$3);4;MOD(234-11*MOD(ANNEE($I$3);19);30))/7;$b12="1/5/"&ANNEE($I$3);$b12="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="14/7/"&ANNEE($I$3);$b12="15/8/"&ANNEE($I$3);$b12="1/11/"&ANNEE($I$3);$b12="11/11/"&ANNEE($I$3);$b12="25/12/"&ANNEE($I$3));"FÉRIÉ";"")


Windows / Firefox 122.0

3 réponses

PapyLuc51 Messages postés 4400 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 20 novembre 2024 1 445
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

0
jardinours Messages postés 55 Date d'inscription vendredi 3 février 2017 Statut Membre Dernière intervention 18 février 2024 1
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

0
Raymond PENTIER Messages postés 58726 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 novembre 2024 17 242 > jardinours Messages postés 55 Date d'inscription vendredi 3 février 2017 Statut Membre Dernière intervention 18 février 2024
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;) ...

0
PapyLuc51 Messages postés 4400 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 20 novembre 2024 1 445 > jardinours Messages postés 55 Date d'inscription vendredi 3 février 2017 Statut Membre Dernière intervention 18 février 2024
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

0
Raymond PENTIER Messages postés 58726 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 novembre 2024 17 242
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 ...


0
brucine Messages postés 17801 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 21 novembre 2024 2 599
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.

0
brucine Messages postés 17801 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 21 novembre 2024 2 599 > brucine Messages postés 17801 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 21 novembre 2024
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é");"")
0
Raymond PENTIER Messages postés 58726 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 novembre 2024 17 242 > brucine Messages postés 17801 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 21 novembre 2024
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.

0
PapyLuc51 Messages postés 4400 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 20 novembre 2024 1 445 > Raymond PENTIER Messages postés 58726 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 novembre 2024
18 févr. 2024 à 06:13

Salut Raymond, 

C'est ce que j'avais compris ;)

Cordialement

0
jardinours Messages postés 55 Date d'inscription vendredi 3 février 2017 Statut Membre Dernière intervention 18 février 2024 1 > brucine Messages postés 17801 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 21 novembre 2024
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

0
jardinours Messages postés 55 Date d'inscription vendredi 3 février 2017 Statut Membre Dernière intervention 18 février 2024 1
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

0