XL 2021 *RESOLU* Calcul du nombre de jours de fractionnement

hades

XLDnaute Nouveau
Bonjour à toutes et à tous,

Je me permets de faire appel à vous car j'ai un souci (bien évidement sinon je ne serai pas ici) : j'ai besoin de calculer le nombre de jours de fractionnement auxquels nous avons droit.

J'ai donc créé (enfin, essayé serait plus juste) un "brouillon" (je finaliserai la mise en forme plus tard, j'ai préféré me focaliser sur les formules).

Petites précisions :
- la période des congés part du 1er juin de l'année n au 31 mai de l'année n+1.
- la période légale part du 01 mai de l'année n au 31 octobre de l'année n.

La première condition : il faut avoir pris 12 jours consécutifs minimum pour être éligible au fractionnement entre le 01 mai n et le 31 octobre n
La seconde condition : au 31 octobre est calculé le solde de congés restant. En fonction du nombre restant (si entre 3 et 5 on a droit a un jour, et s'il en reste au moins 6 on peut prétendre à 2 jours de fractionnement).

Je vous joins mon fichier, ce sera plus simple je pense.

Je vous remercie par avance pour votre aide et vos remarques (j'ai puisé ce que je pouvais sur les posts traitant de ce type de sujet, mais là, j'ai atteint mes limites).

Chris
 

Pièces jointes

  • Fractionnement ok cn v2.xlsx
    19.4 KB · Affichages: 18
Dernière édition:

Gégé-45550

XLDnaute Accro
Bonjour à toutes et à tous,

Je me permets de faire appel à vous car j'ai un souci (bien évidement sinon je ne serai pas ici) : j'ai besoin de calculer le nombre de jours de fractionnement auxquels nous avons droit.

J'ai donc créé (enfin, essayé serait plus juste) un "brouillon" (je finaliserai la mise en forme plus tard, j'ai préféré me focaliser sur les formules).

Petites précisions :
- la période des congés part du 1er juin de l'année n au 31 mai de l'année n+1.
- la période légale part du 01 mai de l'année n au 31 octobre de l'année n.

La première condition : il faut avoir pris 12 jours consécutifs minimum pour être éligible au fractionnement entre le 01 mai n et le 31 octobre n
La seconde condition : au 31 octobre est calculé le solde de congés restant. En fonction du nombre restant (si entre 3 et 5 on a droit a un jour, et s'il en reste au moins 6 on peut prétendre à 2 jours de fractionnement).

Je vous joins mon fichier, ce sera plus simple je pense.

Je vous remercie par avance pour votre aide et vos remarques (j'ai puisé ce que je pouvais sur les posts traitant de ce type de sujet, mais là, j'ai atteint mes limites).

Chris
Bonjour,
ci-joint une proposition (voir ligne 31 du fichier).
J'attire votre attention sur les points suivants :
  • J'ai ajouté un onglet feries_2022 avec, comme son nom l'indique, les dates des jours fériés 2022.
  • si l'on tient compte de ces dates, la période de congés du 01/08/2022 au 16/08/2022 incluant le 15 août (férié) ne compte plus que pour 11 jours et non plus 12 (voir cellule D31)
  • en E31, un exemple de formule unique pour calculer le fractionnement dans tous les cas.
Merci de votre retour.
Cordialement,
 

Pièces jointes

  • Fractionnement ok cn v2 (GG).xlsx
    29 KB · Affichages: 9

hades

XLDnaute Nouveau
Bonjour,
ci-joint une proposition (voir ligne 31 du fichier).
J'attire votre attention sur les points suivants :
  • J'ai ajouté un onglet feries_2022 avec, comme son nom l'indique, les dates des jours fériés 2022.
  • si l'on tient compte de ces dates, la période de congés du 01/08/2022 au 16/08/2022 incluant le 15 août (férié) ne compte plus que pour 11 jours et non plus 12 (voir cellule D31)
  • en E31, un exemple de formule unique pour calculer le fractionnement dans tous les cas.
Merci de votre retour.
Cordialement,
Bonjour Gégé,
Pour l'onglet "jours fériés" c'est mieux en effet, merci.
Pour la formule en E31, ça ne fonctionne pas car on a 11 jours consécutifs, pas 12. Dans ce cas, avec 11 jours, on n'a pas droit aux jours de fractionnement.
Cordialement.
 

Pièces jointes

  • Fractionnement ok cn (GG) cn.xlsx
    22.4 KB · Affichages: 8

AtTheOne

XLDnaute Accro
Supporter XLD
EDIT : Formules pour EXCEL 2021 ou 365
Bonjour à toutes & à tous, @hades, @Gégé-45550
J'ai des formules un peu plus compliquées mais qui vérifient que la période de 12 jours ouvrables (hors dimanche et jours fériés) est bien prise dans la période légale (1/5 : 31/10).
L'année de référence est modifiable, les jours fériés sont calculés sur 3 ans à partir de l'année de référence -1.
C'est sans doute simplifiable...
A bientôt
 

Pièces jointes

  • Fractionnement AtTheOne.xlsx
    23.7 KB · Affichages: 23
Dernière édition:

hades

XLDnaute Nouveau
Bonjour,
Merci pour votre retour.
A l'ouverture du fichier j'ai sur les colonnes F, G, H (dernière ligne) et I l'indication suivante qui apparaît "#NOM?" . Ca correspond à quoi (un problème de formule, de format, autre ?).
 

Gégé-45550

XLDnaute Accro
Bonjour Gégé,
Pour l'onglet "jours fériés" c'est mieux en effet, merci.
Pour la formule en E31, ça ne fonctionne pas car on a 11 jours consécutifs, pas 12. Dans ce cas, avec 11 jours, on n'a pas droit aux jours de fractionnement.
Cordialement.
Évidemment, c'est exactement ce que je vous ai dit dans mon message par rapport au calcul en D31.
Mais la formule en E31 "marche", comme vous dites, puisqu'elle reprend, si vous l'avez regardée, vos calculs de D5 à D11 !
 

hades

XLDnaute Nouveau
Re bonjour

A l'ouverture seulement ? Et seulement sur la dernière ligne du tableau structuré ?
J'ai Excel 2021 et je n'ai pas ce problème, peux-tu poster ta version avec le bug ?
A bientôt.
Bonsoir Alain,
Dans le doc word tu trouveras une image écran du tableau avec le bug.
 

Pièces jointes

  • tab Alain 2.xlsx
    22.4 KB · Affichages: 10
  • tab Alain 1.docx
    512.6 KB · Affichages: 6

AtTheOne

XLDnaute Accro
Supporter XLD
Bonsoir à toutes & à tous,
@hades , je n'ai pas le bug avec ton fichier (testé sur mon téléphone) voir la capture d'écran en PJ !
Je pense que le bug vient du calcul de la colonne "solde sur 4 semaines" les autres erreurs doivent en découler.
La formule est :

=SI([@Début]*[@Fin];LET(SoldePréc;DECALER([@[Solde sur 4 semaines]];-1;0);SI(ESTTEXTE(SoldePréc);CréditCA_4S;SoldePréc)-NB.JOURS.OUVRES.INTL([@Début];[@Fin];1;Fériés));"")


[@Début], [@Fin] et Fériés et la fonction NB.JOURS.OUVRES.INTL() ne sont pas en cause,
Reste le nom "CréditCA_4S", les fonctions ESTTEXTE() ET LET() ...
Je ne peux pas en dire plus ...
A bientôt
 

Pièces jointes

  • Screenshot_20230512-183923_Excel.jpg
    Screenshot_20230512-183923_Excel.jpg
    313 KB · Affichages: 28

hades

XLDnaute Nouveau
Bonjour,
Merci pour ton retour, je vais essayer de trouver et te tiens au courant.
Bonne fin de journée.
Chris
Re-bonjour,
Petite question : il y a aussi un pb en B7 "jours de fractionnement acquis", la formule est trop complexe pour moi. Pourrais tu m'expliquer à quoi correspond le " _xlfn.LET " et " _xlpm ".
Egalement est ce que " Solde4S " équivaut à " Solde sur 4 semaines " (dans ce cas, pourquoi l'écrire de 2 façons différentes) ?

=_xlfn.LET(_xlpm.Début;tb_Congés[Début];
_xlpm.Fin;tb_Congés[Fin];
_xlpm.Solde4S;tb_Congés[Solde sur 4 semaines];
_xlpm.àFinPériodeLégale;MAX((tb_Congés[Début]>=$B$2)*(tb_Congés[Fin]<=$B$3)*(LIGNE(tb_Congés[Fin])-LIGNE(tb_Congés[[#En-têtes];[Fin]])));
_xlpm.SoldeOct;SI(_xlpm.àFinPériodeLégale;INDEX(_xlpm.Solde4S;_xlpm.àFinPériodeLégale);0);
SI(SOMMEPROD((_xlpm.Début>=$B$2)*(_xlpm.Fin<=$B$3)*(tb_Congés[Jours ouvrables posés]>=12)*(AUJOURDHUI()>=$B$3));CHOISIR((_xlpm.SoldeOct>=3)+(_xlpm.SoldeOct>=6)+1;0;1;2);0))


Pour finir, je viens d'essayer de faire "repérer une erreur" et il m'indique qu'il y a une référence circulaire entre F11 et B7.

Je te remercie par avance.
Bonne soirée.
 
Dernière édition:

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour @hades
Dans ton post initial tu as mis comme Préfixe XL2021 j'ai donc utilisé des fonctions disponibles sur cette version.
Visiblement les messages que tu obtiens viennent de ce que tu utilises une version antérieure (d'où les xlfn. et xlpm. qui précédent la fonction LET et ses noms locaux).
La fonction LET permet de définir des noms locaux, c'est le cas pour Solde4S qui remplace "tb_Congés[Solde sur 4 semaines]" qui est utilisé ailleurs dans la formule (ça a plus d'intérêt lorsque l'on utilise plusieurs fois ce nom dans la formule, je te l'accorde).
Pour la référence circulaire je pense qu'il faut d'abord régler le problème de la version utilisée.
A bientôt
 
Dernière édition:

hades

XLDnaute Nouveau
Re-bonjour,
Petite question : il y a aussi un pb en B7 "jours de fractionnement acquis", la formule est trop complexe pour moi. Pourrais tu m'expliquer à quoi correspond le " _xlfn.LET " et " _xlpm ".
Egalement est ce que " Solde4S " équivaut à " Solde sur 4 semaines " (dans ce cas, pourquoi l'écrire de 2 façons différentes) ?

=_xlfn.LET(_xlpm.Début;tb_Congés[Début];
_xlpm.Fin;tb_Congés[Fin];
_xlpm.Solde4S;tb_Congés[Solde sur 4 semaines];
_xlpm.àFinPériodeLégale;MAX((tb_Congés[Début]>=$B$2)*(tb_Congés[Fin]<=$B$3)*(LIGNE(tb_Congés[Fin])-LIGNE(tb_Congés[[#En-têtes];[Fin]])));
_xlpm.SoldeOct;SI(_xlpm.àFinPériodeLégale;INDEX(_xlpm.Solde4S;_xlpm.àFinPériodeLégale);0);
SI(SOMMEPROD((_xlpm.Début>=$B$2)*(_xlpm.Fin<=$B$3)*(tb_Congés[Jours ouvrables posés]>=12)*(AUJOURDHUI()>=$B$3));CHOISIR((_xlpm.SoldeOct>=3)+(_xlpm.SoldeOct>=6)+1;0;1;2);0))
Re-bonjour,
Petite question : il y a aussi un pb en B7 "jours de fractionnement acquis", la formule est trop complexe pour moi. Pourrais tu m'expliquer à quoi correspond le " _xlfn.LET " et " _xlpm ".
Egalement est ce que " Solde4S " équivaut à " Solde sur 4 semaines " (dans ce cas, pourquoi l'écrire de 2 façons différentes) ?

=_xlfn.LET(_xlpm.Début;tb_Congés[Début];
_xlpm.Fin;tb_Congés[Fin];
_xlpm.Solde4S;tb_Congés[Solde sur 4 semaines];
_xlpm.àFinPériodeLégale;MAX((tb_Congés[Début]>=$B$2)*(tb_Congés[Fin]<=$B$3)*(LIGNE(tb_Congés[Fin])-LIGNE(tb_Congés[[#En-têtes];[Fin]])));
_xlpm.SoldeOct;SI(_xlpm.àFinPériodeLégale;INDEX(_xlpm.Solde4S;_xlpm.àFinPériodeLégale);0);
SI(SOMMEPROD((_xlpm.Début>=$B$2)*(_xlpm.Fin<=$B$3)*(tb_Congés[Jours ouvrables posés]>=12)*(AUJOURDHUI()>=$B$3));CHOISIR((_xlpm.SoldeOct>=3)+(_xlpm.SoldeOct>=6)+1;0;1;2);0))

Re-bonjour,
Petite question : il y a aussi un pb en B7 "jours de fractionnement acquis", la formule est trop complexe pour moi. Pourrais tu m'expliquer à quoi correspond le " _xlfn.LET " et " _xlpm ".
Egalement est ce que " Solde4S " équivaut à " Solde sur 4 semaines " (dans ce cas, pourquoi l'écrire de 2 façons différentes) ?

=_xlfn.LET(_xlpm.Début;tb_Congés[Début];
_xlpm.Fin;tb_Congés[Fin];
_xlpm.Solde4S;tb_Congés[Solde sur 4 semaines];
_xlpm.àFinPériodeLégale;MAX((tb_Congés[Début]>=$B$2)*(tb_Congés[Fin]<=$B$3)*(LIGNE(tb_Congés[Fin])-LIGNE(tb_Congés[[#En-têtes];[Fin]])));
_xlpm.SoldeOct;SI(_xlpm.àFinPériodeLégale;INDEX(_xlpm.Solde4S;_xlpm.àFinPériodeLégale);0);
SI(SOMMEPROD((_xlpm.Début>=$B$2)*(_xlpm.Fin<=$B$3)*(tb_Congés[Jours ouvrables posés]>=12)*(AUJOURDHUI()>=$B$3));CHOISIR((_xlpm.SoldeOct>=3)+(_xlpm.SoldeOct>=6)+1;0;1;2);0))

Je te remercie par avance.
Bonne soirée.

Bonjour @hades
Dans ton post initial tu as mis comme Préfixe XL2021 j'ai donc utilisé des fonctions disponibles sur cette version.
Visiblement les messages que tu obtiens viennent de ce que tu utilises une version antérieure (d'où les xlfn. et xlpm. qui précédent la fonction LET et ses noms locaux).
La fonction LET permet de définir des noms locaux, c'est le cas pour Solde4S qui remplace "tb_Congés[Solde sur 4 semaines]" qui est utilisé ailleurs dans la formule (ça a plus d'intérêt lorsque l'on utilise plusieurs fois ce nom dans la formule, je te l'accorde).
Pour la référence circulaire je pense qu'il faut d'abord régler le problème de la version utilisée.
A bientôt
Bonjour Alain,
Merci beaucoup pour ton aide.
C'est plus clair.
 

Discussions similaires

Réponses
5
Affichages
304

Statistiques des forums

Discussions
314 711
Messages
2 112 123
Membres
111 430
dernier inscrit
rebmania67