XL 2019 Fonctions SI + OU + ET imbriquées - Inscrire un férié sur un WE mais pas les vacances ou autres

JoBar57

XLDnaute Junior
Bonjour,

Je bute sur un problème de conditions à rajouter à une formule (SI OU) existante. Le planning créé est prévu pour comptabiliser les Vacances, Fériés et Récup Fériés et pour l'instant ma formule (que je dois modifier) exclue toute inscription sur un week-end, ce qui me convient bien pour les vacances et les récup fériés, mais qui m'embête beaucoup concernant les fériés. Exemple les 1er août 2020 et 2021 qui tombent sur un WE, et c'est un jour férié (en Suisse).

Y-a-t-il un moyen rapide de modifier la formule afin que les Fériés "F" soient inscrit dans le planning mais pas le reste : V, V-1, etc... (mes compétences sont un peu dépassées !)

Les fonctions SI.CONDITIONS ou SI.MULTIPLE seraient-elles plus indiquées afin de simplifier la formule ??

Voici la formule en question qui se trouve dans l'onglet "Planning" sur les lignes 19-24-29-34-39-44-49-54-59-64-69 et 74 du ficher joint.

=SI(OU(D43=1;D43=7);"";SIERREUR(INDEX(Tableau1;EQUIV(1;(Planning!D40>=Tableau1[Date début])*(Tableau1[Date de Fin]>=Planning!D40)*(Tableau1[Nom]=Planning!$V$2);0);5);""))

Le mot de passe est "Precaution"

Merci de prendre si possible le temps de me dépanner !
 

Pièces jointes

  • TESTs - Calcul des V - F - RF par salarié.xlsm
    149.5 KB · Affichages: 19
Solution
Il s'agit donc pas en fait de calculer les jours fériés, ni de les reporter sur le planning, mais juste de modifier ma formule afin qu'elle accepte d'inscrire "F" dans la case lorsque je le planifie via le bouton "Planifier" même s'il s'agit d'un WE comme cela la comptabilisation se fera dans la suite de la ligne du tableau

re,

D'accord, j'ai modifié votre formule pour gérer le cas
j'ai ajouté le 16 mai pour tester, le premier aout apparait aussi maintenant.

Bien cordialement, @+

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Jobar,
Un essai d'après ce que j'ai compris : mettre dans le planning "F" si c'est un jour férié.
J'ai fait précéder votre formule par : SI(NB.SI(Fériés;D17&"/"&MOIS($D16)&"/"&ANNEE($D16))>0;"F";
Ce qui donne en D19 :
VB:
=SI(NB.SI(Fériés;D17&"/"&MOIS($D16)&"/"&ANNEE($D16))>0;"F";SI(OU(D18=1;D18=7);"";SIERREUR(INDEX(Tableau1;EQUIV(1;(Planning!D15>=Tableau1[Date début])*(Tableau1[Date de Fin]>=Planning!D15)*(Tableau1[Nom]=Planning!$V$2);0);5);"")))
Avec "Fériés" la plage nommée : Entrées/AF5:AF17 ( j'ai pris les congés français )
Par contre, ça coince pour 2022 puisqu'ils ne sont pas dans la liste des fériés.
NB: Je n'ai pas regardé précisément l'impact sur le résultat du reste de la formule.
 

Pièces jointes

  • TESTs - Calcul des V - F - RF par salarié.xlsm
    143 KB · Affichages: 11

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour JoBar57, sylvanu,le forum

D'après ce que j'ai compris, il faut déterminer les jours fériés en france ou en suisse
j'ai intégré ma fonction personnalisée sur les jours fériés qui pourrait vous convenir
J'ai fait deux planning, 1 pour la france, 1 pour la suisse, positionné sur le canton de Genève
Plus besoin de prévoir les jours fériés, ils sont déterminés automatiquement.
On peut modifier les paramètres pour le canton ou l'intégration en jours fériés des jours chômés spécifiques à la suisse. En exemple, le premier mai est chômé à Genève.
Accessoirement, la fonction gère aussi, au besoin, la Belgique et le Luxembourg

Bien cordialement, @+
 

JoBar57

XLDnaute Junior
Bonjour,

En fait il ne s'agit pas de déterminer les jours fériés, mais de pouvoir inscrire un Férié "F" dans le planning lorsque la personne en a bénéficié même si le Férié tombe sur un WE car nous travaillons aussi bien les WE et jours fériés que les jours de semaine (infirmiers).
Pour l'instant avec la formule actuelle, elle exclue toute inscription (Vacances, Fériés, ...) si ça tombe sur un WE (comme le 1er août cette année qui est férié à Genève) ce qui empêche la comptabilisation de ce jour et m'empêche de connaître le solde des jours fériés restant à récupérer.

Mais merci tout de même pour le temps passé, et le code m'intéresse tout de même dans un autre cadre


👍👍
 

JoBar57

XLDnaute Junior
Bonjour Jobar,
Un essai d'après ce que j'ai compris : mettre dans le planning "F" si c'est un jour férié.
J'ai fait précéder votre formule par : SI(NB.SI(Fériés;D17&"/"&MOIS($D16)&"/"&ANNEE($D16))>0;"F";
Ce qui donne en D19 :
VB:
=SI(NB.SI(Fériés;D17&"/"&MOIS($D16)&"/"&ANNEE($D16))>0;"F";SI(OU(D18=1;D18=7);"";SIERREUR(INDEX(Tableau1;EQUIV(1;(Planning!D15>=Tableau1[Date début])*(Tableau1[Date de Fin]>=Planning!D15)*(Tableau1[Nom]=Planning!$V$2);0);5);"")))
Avec "Fériés" la plage nommée : Entrées/AF5:AF17 ( j'ai pris les congés français )
Par contre, ça coince pour 2022 puisqu'ils ne sont pas dans la liste des fériés.
NB: Je n'ai pas regardé précisément l'impact sur le résultat du reste de la formule.

@JoBar,
Donc ma proposition ne vous va pas non plus ? ... ou suis je transparent.
Non bien sûr que non,, mais je suis juste en train de consulter la vôtre (j'ai commencé par le bas !)
 

JoBar57

XLDnaute Junior
Bonjour JoBar57, sylvanu,le forum

D'après ce que j'ai compris, il faut déterminer les jours fériés en france ou en suisse
j'ai intégré ma fonction personnalisée sur les jours fériés qui pourrait vous convenir
J'ai fait deux planning, 1 pour la france, 1 pour la suisse, positionné sur le canton de Genève
Plus besoin de prévoir les jours fériés, ils sont déterminés automatiquement.
On peut modifier les paramètres pour le canton ou l'intégration en jours fériés des jours chômés spécifiques à la suisse. En exemple, le premier mai est chômé à Genève.
Accessoirement, la fonction gère aussi, au besoin, la Belgique et le Luxembourg

Bien cordialement, @+
VB:
    'Renvoie un tableau des jours fériés compris entre deux dates utilisable avec les fonctions d'Excel acceptant les tableaux exemple : NB.JOURS.OUVRES ou NBVAL
    'si Date_Fin_Ref est omis, teste si la journée est fériée et renvoie un boolean
    'paramétrage optionnel du Lundi de Pentecôte et de la région pour les jours fériés régionaux
 
    'Date_Deb_Ref et Date_Fin_Ref -> une date (ex : 03/12/2021)
    'Pays_Ref=33 ou omis France, Pays_Ref=32 Belgique, Pays_Ref=41 Suisse,, Pays_Ref=352 Luxembourg
    'Spécifique France : Lun_Pentecôte=1 ou omis le Lundi de Pentecôte est férié, Lun_Pentecôte=0 enlève le Lundi de Pentecôte des jours fériés
    'Spécifique Suisse : Jour_Chome=0 ou omis les jours chômés ne sont pas traités, Jours_Chomes=1 les jours chômés sont intégrés aux Fériés
 
    'Régions pour la France
    'Region_Ref="" ou omis => standard métropole (sauf Alsace-Moselle)
    'Region_Ref="ALM" => Alsace-Moselle
    'Region_Ref="GSM" => Guadeloupe & Saint-Martin
    'Region_Ref="GUY" => Guyane
    'Region_Ref="REU" => la Réunion
    'Region_Ref="MAR" => Martinique
    'Region_Ref="MAY" => Mayotte
    'Region_Ref="STB" => Saint-Barthélemy
    'Region_Ref="NCA" => Nouvelle-Calédonie
    'Region_Ref="POF" => Polynésie française
    'Region_Ref="WEF" => Wallis et Futuna
 
    'Communautés pour la Belgique
    'Region_Ref="" ou omis => standard Belgique
    'Region_Ref="FLA" => Communauté Flamande
    'Region_Ref="FRA" => Communauté Française
 
    'Cantons pour la Suisse
    'Region_Ref = "AG" >= Argovie
    'Region_Ref="AI" => Appenzell Rhodes-Intérieures
    'Region_Ref="AR" => Appenzell Rhodes-Extérieures
    'Region_Ref = "BE" >= Berne
    'Region_Ref = "BL" >= Bâle - Campagne
    'Region_Ref = "BS" >= Bâle - Ville
    'Region_Ref = "FR" >= Fribourg
    'Region_Ref = "GE" >= Genève
    'Region_Ref = "GL" >= Glaris
    'Region_Ref = "GR" >= Grisons
    'Region_Ref = "JU" >= Jura
    'Region_Ref = "LU" >= Lucerne
    'Region_Ref = "NE" >= Neuchâtel
    'Region_Ref = "NW" >= Nidwald
    'Region_Ref = "OW" >= Obwald
    'Region_Ref = "SG" >= Saint - Gall
    'Region_Ref = "SH" >= Schaffhouse
    'Region_Ref = "SO" >= Soleure
    'Region_Ref = "SZ" >= Schwytz
    'Region_Ref = "TG" >= Thurgovie
    'Region_Ref = "TI" >= Tessin
    'Region_Ref = "UR" >= Uri
    'Region_Ref = "VD" >= Vaud
    'Region_Ref = "VS" >= Valais
    'Region_Ref = "ZG" >= Zoug
    'Region_Ref = "ZH" >= Zurich
En fait il ne s'agit pas de déterminer les jours fériés, mais de pouvoir inscrire un Férié "F" dans le planning lorsque la personne en a bénéficié même si le Férié tombe sur un WE car nous travaillons aussi bien les WE et jours fériés que les jours de semaine (infirmiers).
Pour l'instant avec la formule actuelle, elle exclue toute inscription (Vacances, Fériés, ...) si ça tombe sur un WE (comme le 1er août cette année qui est férié à Genève) ce qui empêche la comptabilisation de ce jour et m'empêche de connaître le solde des jours fériés restant à récupérer.

Mais merci tout de même pour le temps passé et le code m'intéresse tout de même dans un autre cadre 👍👍
 

JoBar57

XLDnaute Junior
@JoBar,
Donc ma proposition ne vous va pas non plus ? ... ou suis je transparent.
Pour votre proposition effectivement elle m'inscrit d'office les jours fériés ce qui n'est pas le résultat recherché mais comme je le précisais à Yeahou :

Il ne s'agit pas de déterminer les jours fériés, mais de pouvoir inscrire un Férié "F" dans le planning lorsque la personne en a bénéficié même si le Férié tombe sur un WE car nous travaillons aussi bien les WE et jours fériés que les jours de semaine (infirmiers).
Pour l'instant avec la formule actuelle, elle exclue toute inscription (Vacances, Fériés, ...) si ça tombe sur un WE (comme le 1er août cette année qui est férié à Genève) ce qui empêche la comptabilisation de ce jour comme étant effectivement non travaillé par la personne et m'empêche donc de connaître le solde des jours fériés restant à récupérer.
Les jours férié tout comme les vacances, récup fériés etc... sont inscrit via le bouton "Planifier"
 

JoBar57

XLDnaute Junior
Bonjour Jobar,
Un essai d'après ce que j'ai compris : mettre dans le planning "F" si c'est un jour férié.
J'ai fait précéder votre formule par : SI(NB.SI(Fériés;D17&"/"&MOIS($D16)&"/"&ANNEE($D16))>0;"F";
Ce qui donne en D19 :
VB:
=SI(NB.SI(Fériés;D17&"/"&MOIS($D16)&"/"&ANNEE($D16))>0;"F";SI(OU(D18=1;D18=7);"";SIERREUR(INDEX(Tableau1;EQUIV(1;(Planning!D15>=Tableau1[Date début])*(Tableau1[Date de Fin]>=Planning!D15)*(Tableau1[Nom]=Planning!$V$2);0);5);"")))
Avec "Fériés" la plage nommée : Entrées/AF5:AF17 ( j'ai pris les congés français )
Par contre, ça coince pour 2022 puisqu'ils ne sont pas dans la liste des fériés.
NB: Je n'ai pas regardé précisément l'impact sur le résultat du reste de la formule.
Il s'agit donc pas en fait de calculer les jours fériés, ni de les reporter sur le planning, mais juste de modifier ma formule afin qu'elle accepte d'inscrire "F" dans la case lorsque je le planifie via le bouton "Planifier" même s'il s'agit d'un WE comme cela la comptabilisation se fera dans la suite de la ligne du tableau (cellules masquées)
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Il s'agit donc pas en fait de calculer les jours fériés, ni de les reporter sur le planning, mais juste de modifier ma formule afin qu'elle accepte d'inscrire "F" dans la case lorsque je le planifie via le bouton "Planifier" même s'il s'agit d'un WE comme cela la comptabilisation se fera dans la suite de la ligne du tableau

re,

D'accord, j'ai modifié votre formule pour gérer le cas
j'ai ajouté le 16 mai pour tester, le premier aout apparait aussi maintenant.

Bien cordialement, @+
 

Pièces jointes

  • TESTs - Calcul des V - F - RF par salarié-2 - Copie.xlsm
    147.5 KB · Affichages: 36

Discussions similaires

Statistiques des forums

Discussions
313 274
Messages
2 096 751
Membres
106 738
dernier inscrit
Lacbus