Microsoft 365 Décompter des jours de 3 manières

Maxx

XLDnaute Nouveau
Bonjour, j'ai un problème de gymnastique mentale.
Je n'arrive pas à décompter des jours. Je vous mets un fichier pour que vous puissiez voir de quoi il s'agit.
J'espère que vous comprendrez, je ne sais pas si je suis clair, j'ai le cerveau comme une pastèque.
Merci.

NB : Ne tenez pas compte des 90% et 66,67%, il y a seulement un décompte de jour à faire.
 

Pièces jointes

  • Maxx_problème_décompte.xlsx
    18.9 KB · Affichages: 13
Solution
Bonsoir @Maxx et bonsoir à tous

J'ai vu que tu étais en EXCEL365 alors la solution que je te propose dans le fichier joint devrait convenir.
Elle utilise la fonction LET pour éclaircir les formules .

J'ai défini quelques noms et j'ai mis en vert pâle les zones que j'ai modifiées.

Dis-moi si cela te convient

Amicalement
Alain

Maxx

XLDnaute Nouveau
Bonjour AtTheOne,

J'utilise déjà ces fonctions, mais le problème, c'est que pendant 30 jours, je dois maintenir le salaire à 90 %, puis les 30 jours suivants, je ne dois le maintenir qu'à 66,67% et si la maladie dure encore, et au-delà de 30 + 30 jours soit 60 jours d'indemnisation, le salarié aura épuisé tous ses jours d'indemnisation.

Et je n'arrive pas à décompter les 30 jours des 66,67%...

Je suis encore dessus en ce moment et je pense que dois auparavant calculer les dates de quand commencent et quand s'arrêtent les jours d'indemnisation pour chaque tranche.

Merci de t'être penché sur mon problème et d'avoir pris le temps de répondre:)
 

Maxx

XLDnaute Nouveau
La période de maintien commence avec des jours de carences, eux-mêmes paramétrables et décomptés soit en jours calendaires, soit en ouvrés, soit en ouvrables.

Jours ouvrés = généralement les 5 jours entre le lundi et le vendredi (jours d'ouverture de l'entreprise)
Jours ouvrables = généralement les 6 jours entre le lundi et le samedi (tous les jours sauf celui du repos hebdomadaire obligatoire, en l'occurrence le dimanche)
 

AtTheOne

XLDnaute Impliqué
Supporter XLD
Bonsoir @Maxx et bonsoir à tous

J'ai vu que tu étais en EXCEL365 alors la solution que je te propose dans le fichier joint devrait convenir.
Elle utilise la fonction LET pour éclaircir les formules .

J'ai défini quelques noms et j'ai mis en vert pâle les zones que j'ai modifiées.

Dis-moi si cela te convient

Amicalement
Alain
 

Pièces jointes

  • Maxx_problème_décompte-Réponse.xlsx
    18.5 KB · Affichages: 5

Maxx

XLDnaute Nouveau
Bonjour AtTheOne,
Désolé de ne pas avoir répondu plus tôt.
Je ne connaissais pas la fonction LET et il me semble qu'elle est récente...A vrai dire, je ne connais pas beaucoup de fonctions, je suis novice.
Je suis encore entrain de décortiquer ton travail, IL EST INCROYABLE !!
J'ai aussi vu que tu avais calculé Pâques ! Même si je ne comprends pas tout à ce stade, étudier ce que tu as fait m'enrichit énormément, UN GRAND BRAVO et Merci tout est nickel 🤩
 

AtTheOne

XLDnaute Impliqué
Supporter XLD
Bonjour @Maxx, bonjour à tous
Je ne connaissais pas la fonction LET et il me semble qu'elle est récente...A vrai dire, je ne connais pas beaucoup de fonctions, je suis novice.

Ok en voulant peaufiner mes formules j'ai vu une erreur sur le calcul à 66,67% :

...​
SERIE.JOUR.OUVRE.INTL(_dP1;$AA$4;"0000011";Chômés)-1;
SERIE.JOUR.OUVRE.INTL(_dP1;$AA$4;"0000001";Chômés)-1;
SERIE.JOUR.OUVRE.INTL(_dP1;$AA$4;"0000000")-1
...

le -1 doit être retiré avant sinon on peut inclure des jours chômés supplémentaires:
...​
SERIE.JOUR.OUVRE.INTL(_dP1;$AA$4-1;"0000011";Chômés);
SERIE.JOUR.OUVRE.INTL(_dP1;$AA$4-1;"0000001";Chômés)
SERIE.JOUR.OUVRE.INTL(_dP1;$AA$4-1;"0000000")
...

Sinon j'ai poussé le plaisir de la fonction LET (qui existe depuis 365 ou 2021) au maximum pour n'avoir les adresses en dur ($R11, $AA$4 ...) qu'une seule fois dans les formules. Çà donne cela pour la plus longue (celle de la période à 66,67%) :
Code:
=LET(Cas;SIERREUR(EQUIV($Q$13;Type_Jours;0);5);
     _dP1;$Q$10;
     Durée1;$AA$4-1;
     Durée2;$AA$5-1;
     Début_Mois;R$11;
     Fin_Mois;FIN.MOIS(Début_Mois;0);
     _fP1;MIN(_Fin_Arrêt;
                         CHOISIR(Cas;
                                     SERIE.JOUR.OUVRE.INTL(_dP1;Durée1;"0000011";Chômés);
                                     SERIE.JOUR.OUVRE.INTL(_dP1;Durée1;"0000001";Chômés);
                                     SERIE.JOUR.OUVRE.INTL(_dP1;Durée1;"0000000");
                                     0;
                                     0));
    _dP2;_fP1+1;
    _fP2;MIN(_Fin_Arrêt;
             CHOISIR(Cas;
                         SERIE.JOUR.OUVRE.INTL(_dP2;Durée2;"0000011";Chômés);
                         SERIE.JOUR.OUVRE.INTL(_dP2;Durée2;"0000001";Chômés);
                         SERIE.JOUR.OUVRE.INTL(_dP2;Durée2;"0000000");
                         0;
                         0));
    Inclure;(_dP2<=FIN.MOIS(Début_Mois;0))*(_fP2>=Début_Mois);
SI(Inclure;CHOISIR(Cas;
                       NB.JOURS.OUVRES.INTL(MAX(_dP2;Début_Mois);MIN(Fin_Mois;_fP2);"0000011";Chômés);
                       NB.JOURS.OUVRES.INTL(MAX(_dP2;Début_Mois);MIN(Fin_Mois;_fP2);"0000001";Chômés);
                       NB.JOURS.OUVRES.INTL(MAX(_dP2;Début_Mois);MIN(Fin_Mois;_fP2);"0000000");
                        "voir paramétres";
                       "?");
                       "-"))
_dp1 : date de départ après le délai de carence
Durée1 : durée de l'indemnisation à 90%
Durée2 : durée de l'indemnisation à 66,67%
Début_Mois : date de début du mois considéré
Fin_Mois : fin du mois considéré
_fP1 : Date de fin de l'indemnisation à 90%
_dP2 : date de début de l'indemnisation à 66,67%
_fP2 : date de fin de l'indemnisation à 66,67%
Inclure : valeur logique pour savoir si le mois considéré est à prendre en compte.

Calcul en fonction du cas, si le mois est à prendre en compte :
SI(Inclure;CHOISIR(Cas;
NB.JOURS.OUVRES.INTL(MAX(_dP2;Début_Mois);MIN(Fin_Mois;_fP2);"0000011";Chômés);
NB.JOURS.OUVRES.INTL(MAX(_dP2;Début_Mois);MIN(Fin_Mois;_fP2);"0000001";Chômés);
NB.JOURS.OUVRES.INTL(MAX(_dP2;Début_Mois);MIN(Fin_Mois;_fP2);"0000000");
"voir paramétres";
"?")
La fonction CHOISIR pour ce cas me semble plus lisible que des SI imbriqués.

Voir le fichier en PJ
J'ai aussi vu que tu avais calculé Pâques !
Çà c'est une des nombreuses formules trouvées sur le NET qui donne la date de Pâques, elle est valable de 1900 à 2204 inclus (je n'ai jamais essayé de la comprendre !). J'ai juste rajouté le test sur la période de validité.
Amicalement
Alain
 

Pièces jointes

  • Décompte_Maladie_Payée.xlsx
    18.4 KB · Affichages: 1
Dernière édition:

Discussions similaires

Réponses
2
Affichages
292

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T