NB.JOURS.OUVRES plusieurs plages de jours fériés

Bonjour à tous.

Dans la formule NB.JOURS.OUVRES j’aimerais trouver une solution pour mettre plusieurs plages de dates pour les jours fériés. Est-ce que c’est possible selon vous?

NB.JOURS.OUVRES(date_début;date_fin;[jours_fériés])

donnerait idéalement :

NB.JOURS.OUVRES(J24;J22;(‹ Jours fériés ›!$D$5:$F$10+‹ Jours fériés ›!$D$11:$F$12))

Mais bien sûr ça ne marche pas. :slightly_smiling_face:

D’avance merci pour votre aide.

Bonjour Djama
Peut-on avoir un extrait du fichier Excel, merci.
cordialement

Le fichier d’origine est trop sensible mais je vous ai refait un petit fichier qui reproduit les fameuses formules. Test_JoursOuvres_Diama.xlsx (10,3 Ko)

Bonjour,
Si possibilité de modifier le fichier, une proposition.
Cordialement.
Test_JoursOuvres_Diama.xlsx (10,7 Ko)

Merci Zebulon mais malheureusement je ne peux pas décaler ces informations. Sinon en effet je n’aurais pas de problème. :wink:
Bien tenté toutefois. :slight_smile:

Bonjour,

Une solution :
Test_JoursOuvres_Diama.xlsx (11,3 Ko)

Re,

Une autre proposition avec TCD et feuille masquable si besoin.
Cordialement.
Test_JoursOuvres_Diama.xlsx (27,4 Ko)

Merci Patrice.
Ta solution marche pour une page toute simple comme celle de mon test, mais malheureusement le document complet est une énorme usine avec de nombreuses répétitions et redondances. C’est pourquoi j’ai en effet besoin de tout intégrer dans une seule formule par simplicité. Même si ça n’y paraît pas comme ça. :slight_smile:

Dans mon cas ça ne marche pas parce que j’ai besoin de reconnaître des dates et retrancher 1 si une date concorde. Je dois donc passer par la partie « jours_feriés » de la formule « NB.JOURS.OUVRES ». je ne peux donc pas externaliser le calcul juste pour obtenir des chiffres à retrancher.
Mais c’est bien tenté tout de même. :wink:

La partie avec le « ON » ne me sert qu’a créer un bouton « on »/« off » pour prendre ou non en compte les jours fériés. mais même si on vire cette partie, la formule devra il me semble rester quelque chose comme :
=NB.JOURS.OUVRES(D2;E2;(B2:B47)) ou (B2:B47) doit être remplacé d’une manière ou d’une autre par plusieurs plages de dates qui pourront changer.

Pour plus de précision, ça me sert notamment à déterminer dans un planning de Gant les colonnes (sous une date donnée) qui doivent apparaître automatiquement grisées car jour férié. Quelle que soit l’année, en fonction des jours de congés entrés dans les plages en question.

Merci Zebulon.
Il me semblait bien que la solution aurait quelque chose à voir avec ces fameux Tableaux Croisés Dynamiques que je ne maîtrise pas encore bien comme il faut.
Pourrais-tu m’expliquer plus précisément la procédure pour créer cette référence « feries » qui est dans la formule stp?
Je crois que tu as résolu mon problème. Je vérifie ça demain et te confirme si besoin.
Merci encore et bonne soirée.


MAJ : J’ai parlé trop vite à priori.
Si dans la formule : =ARRONDI.SUP(NB.JOURS.OUVRES(debut;fin;SI($C$2=« on »;(feries);));0)
la partie « (feries) » fait référence à un tableau « global » de l’onglet « paramètres » où toutes les dates rentrées à la main dans la « Feuil1 » sont reportées automatiquement alors c’est gagné.
Mais s’il faut recopier à la main les données de « feuil1 » dans « paramètres » alors on ne fait que reporter le problème .

Peut-être n’est-t-il tout simplement pas possible dans la formule NB.JOURS.OUVRES de faire référence à plusieurs plages de dates dans la partie [jours_fériés], et dans ce cas je trouverais d’autres façon de contourner le problème en présentant les choses différemment. Mais ma question est très précisément celle-ci :
Est-il possible dans la formule NB.JOURS.OUVRES de faire référence à plusieurs plages de dates dans la partie [jours_fériés]?
Merci encore de votre aide et de votre patience.
Mathieu.

Comme je t’ai écris, rien ne t’interdit de tout regrouper dans une seule et même formule, tu n’as que quelques copier/coller à faire pour remplacer les références aux cellules ajoutées par les formules qu’elles contiennent.

Re,

Les tableaux de la feuille Paramètres, sont tous des TCD, donc mis à jour automatiquement par l’option Actualiser tout du menu Données, Requêtes et connexions. Il est possible d’affecter un bouton en VBA si besoin.

C’est une plage nommée grâce à la formule :
image
=DECALER(Paramètres!$B$2;0;0;NBVAL(Paramètres!$B:$B)-1)
On part de la cellule B2; on se décale de 0 ligne; de 0 colonne; hauteur de la plage = le nombre de ligne de la colonne B -1 pour neutraliser le titre de la colonne; largeur pas utile dans notre cas.

Pour plus de renseignements : https://support.office.com/fr-fr/article/decaler-decaler-fonction-c8de19ae-dd79-4b9b-a14e-b4d906d11b66?NS=EXCEL&Version=19&SysLcid=1036&UiLcid=1036&AppVer=ZXL190&HelpId=xlmain11.chm60126&ui=fr-FR&rs=fr-FR&ad=FR
Cordialement.

La formule :
=NB.JOURS.OUVRES(D2;E2;SI(C2="on";($B$2:$B$22);))+NB.JOURS.OUVRES(D2;E2;SI(C2="on";($B$25:$B$30);))+NB.JOURS.OUVRES(D2;E2;SI(C2="on";($B$33:$B$37);))+NB.JOURS.OUVRES(D2;E2;SI(C2="on";($B$40:$B$47);))-3*NB.JOURS.OUVRES(D2;E2)

Test_JoursOuvres_Diama.xlsx (9,7 Ko)

ça y est j’ai tout compris. Merci à tous les deux pour votre aide.

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.