XL 2021 Planning chantier avec SERIE.JOUR.OUVRE.INTL

  • Initiateur de la discussion Initiateur de la discussion kdet
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

kdet

XLDnaute Occasionnel
Bonsoir à tous, le forum,

J'aurai besoin de votre aide sur la fonction SERIE.JOUR.OUVRE.INTL
Dans mon planning, le chantier fonctionne du lundi au vendredi.
En G10 j'ai utilisé cette formule : LET(deb;[@DEBUT];dur;[@DUREE];fer;Fériés;weekend;11;SI(OU(ESTVIDE(deb);ESTVIDE(dur));"";SERIE.JOUR.OUVRE.INTL(deb;dur-1;1;fer))) et il y a deux résultats incohérents. Je ne sais pas ce qui cloche sur la formule.
J'aimerais apporter quelques précisions : le chantier peut exceptionnellement travailler le Samedi, Dimanche et Jous Fériés si on devrait finir le chantier en avance.
Je voudrais les inclure dans la formule mais je ne sais comment faire.
Je ne sais pas si c'est possible, sinon auriez-vous une solution.

Vous remerciant par avance de votre aide.
kdet
 

Pièces jointes

Bonjour

Déjà c'est ambigu : tu définis une variable weekend à 11 mais tu ne l'utilises pas.

Ensuite qu'est-ce qui permet de savoir qu'on doit terminer en avance ?
Bonjour chris, le forum,
Merci d'avoir penché sur mon problème.
Tu as tout à fait raison pour la variable "weekend". je l'ai rectifié comme suit : LET(deb;[@DEBUT];dur;[@DUREE];fer;Fériés;weekend;1;SI(OU(ESTVIDE(deb);ESTVIDE(dur));"";SERIE.JOUR.OUVRE.INTL(deb;dur-1;weekend;fer)))
Sauf que le résultat en G14 devrait être 27/05/2026 au lieu de 28/05/2026 et G23 devrait être 28/05/2026 au lieu de 29/05/2026.
Les petits travaux doivent se terminer en mi-juin 2026. Donc si l'on devrait accélérer, le chantier pourrait travailler le Samedi, Dimanche et Jours Fériés.

kdet
 

Pièces jointes

Bonjour

Déjà c'est ambigu : tu définis une variable weekend à 11 mais tu ne l'utilises pas.

Ensuite qu'est-ce qui permet de savoir qu'on doit terminer en avance ?
Bonjour chris, le forum,
Je suis perdu moi-même. Le résultat est correct en ligne 14 et ligne 23. la 27/05/2026 est un jour férié. Désolé
Maintenant, mon soucis c'est que le chantier peut exceptionnellement travailler le Samedi, Dimanche et Jous Fériés.

kdet
 
Re

Toujours pas clair pour moi NB : (nos commentaires se sont croisés donc ma proposition doit marcher)

J'ai ajouté une date limite : si elle et possible on l’applique sinon NA()
Pourrait aussi se poser le PB du 1er mai : auquel cas il faudrait l'intégrer dans la formule.
1775938547675.png
 
B
vous n'avez pas oublier le 27/5, voir sequence dans la colonne O avec les weekends et les fériés en mauve
colonne G, là, vous pouvez modifier les jours ouvrables, rien = lundi-vendredi oubien un autre choix.
Si cela vous convient, un peut quelque chose pareil pour ignorer les fériés.
Bonjour bsalv, chris, riton00, le forum,
Je te remercie pour ta contribution. Juste une question : quand tu dis "tous les jours" c'est du Lundi au Dimanche ou Dimanche exclu?
Exceptionnellement le chantier peut fonctionner, à part le Lundi-Vendredi, en plus avec Samedi, Dimanche, Fériés.
sur le cas de la ligne 23, c'est marqué "tous les jours". je pensais que le Dimanche est compris dans "tous les jours" or ce n'est pas le cas.

kdet
 
avec un autre layout, les 2 colonnes avec des formules à droite, comme ça, elles gènent moins.
pour les jours ouvrables :
  • 1 = lundi-vendredi
  • 0000001 = lundi-samedi
  • 0000000 = lundi-dimanche
  • Tout = lundi-dimanche + fériés
Puis la colonne "marge" vous dit combien de jours que vous avez encore en plus avec ce type de "Jours ouvrables". Si ce nombre est négatif, alors ..., c'est impossible. Si ce nombre est positif et on travaille les samedis, alors vous avez quelque samedis en plus que vous ne devez pas utiliser.
PS. Vous corrigez la durée avec -1, je suppose que c'est pour avoir le jour lui-même. Moi, j'ai corrigé le début avec -1, je suppose que le résultat sera le même sauf, si le début est un jour férié, alors cela sera pris en compte.
 

Pièces jointes

avec un autre layout, les 2 colonnes avec des formules à droite, comme ça, elles gènent moins.
pour les jours ouvrables :
  • 1 = lundi-vendredi
  • 0000001 = lundi-samedi
  • 0000000 = lundi-dimanche
  • Tout = lundi-dimanche + fériés
Puis la colonne "marge" vous dit combien de jours que vous avez encore en plus avec ce type de "Jours ouvrables". Si ce nombre est négatif, alors ..., c'est impossible. Si ce nombre est positif et on travaille les samedis, alors vous avez quelque samedis en plus que vous ne devez pas utiliser.
PS. Vous corrigez la durée avec -1, je suppose que c'est pour avoir le jour lui-même. Moi, j'ai corrigé le début avec -1, je suppose que le résultat sera le même sauf, si le début est un jour férié, alors cela sera pris en compte.
Re-bonjour bsalv, le forum,
Merci pour votre retour
Je vais l'adapter à ma base réelle pour voir le résultat et vous tiendrait au courant de l'évolution.

kdet
 
avec un autre layout, les 2 colonnes avec des formules à droite, comme ça, elles gènent moins.
pour les jours ouvrables :
  • 1 = lundi-vendredi
  • 0000001 = lundi-samedi
  • 0000000 = lundi-dimanche
  • Tout = lundi-dimanche + fériés
Puis la colonne "marge" vous dit combien de jours que vous avez encore en plus avec ce type de "Jours ouvrables". Si ce nombre est négatif, alors ..., c'est impossible. Si ce nombre est positif et on travaille les samedis, alors vous avez quelque samedis en plus que vous ne devez pas utiliser.
PS. Vous corrigez la durée avec -1, je suppose que c'est pour avoir le jour lui-même. Moi, j'ai corrigé le début avec -1, je suppose que le résultat sera le même sauf, si le début est un jour férié, alors cela sera pris en compte.
Re, bsalv, chris, le forum,
Toujours en me basant sur vos solutions, voici la formule que j'ai pu manipuler : LET(deb;[@DEBUT];dur;[@DUREE]; weekend;SI([@[JOURS OUVRABLES]]="";1;RECHERCHEX([@[JOURS OUVRABLES]];TabJrsOuvrables[Jours ouvrables];TabJrsOuvrables[Mask];1;0)); fer;SI([@[JOURS OUVRABLES]]="Lundi-Dimanche-Fériés";0;FILTRE(Fériés;ESTNA(EQUIV(Fériés;FILTRE(Tableau1[Date];TabFerTrav[Travaillés]="OUI";0);0)))); limite;[@[DATE LIMITE]]; SI(OU(ESTVIDE(deb);ESTVIDE(dur));"";SI(limite<>"";limite; SERIE.JOUR.OUVRE.INTL(deb;dur-1;weekend;fer))))

je ne sais pas si on peut réduire cette formule car c'est un peu longue

kdet
 

Pièces jointes

Re, bsalv, chris, le forum,
Toujours en me basant sur vos solutions, voici la formule que j'ai pu manipuler : LET(deb;[@DEBUT];dur;[@DUREE]; weekend;SI([@[JOURS OUVRABLES]]="";1;RECHERCHEX([@[JOURS OUVRABLES]];TabJrsOuvrables[Jours ouvrables];TabJrsOuvrables[Mask];1;0)); fer;SI([@[JOURS OUVRABLES]]="Lundi-Dimanche-Fériés";0;FILTRE(Fériés;ESTNA(EQUIV(Fériés;FILTRE(Tableau1[Date];TabFerTrav[Travaillés]="OUI";0);0)))); limite;[@[DATE LIMITE]]; SI(OU(ESTVIDE(deb);ESTVIDE(dur));"";SI(limite<>"";limite; SERIE.JOUR.OUVRE.INTL(deb;dur-1;weekend;fer))))

je ne sais pas si on peut réduire cette formule car c'est un peu longue

kdet
Bonjour Kdet

Formule allégé par IA et merci pour le complément du message #8

Code:
=LET(d;[@DEBUT];n;[@DUREE];j;[@[JOURS OUVRABLES]];l;[@[DATE LIMITE]];w;SI(j="";1;RECHERCHEX(j;TabJrsOuvrables[Jours ouvrables];TabJrsOuvrables[Mask];1));f;SI(j="Lundi-Dimanche-Fériés";0;FILTRE(Fériés;ESTNA(EQUIV(Fériés;FILTRE(Tableau1[Date];TabFerTrav[Travaillés]="OUI")))));SI((d="")+(n="");"";SI(l<>"";l;SERIE.JOUR.OUVRE.INTL(d;n-1;w;f))))

Slts
 
VB:
=
SI(NB(Tableau3[@[DEBUT]:[DUREE]])<2;"-";
LET(
deb;[@DEBUT]-1;
dur;[@DUREE];
jo;SI([@[JOURS OUVRABLES]]=0;"0000011";RECHERCHEX([@[JOURS OUVRABLES]];TabJrsOuvrables[Jours ouvrables];TabJrsOuvrables[Mask];"?";0));
weekend;GAUCHE(jo;7);
fer;SI(DROITE(jo;1)<>"+";Feries_Filtrés;0);
SERIE.JOUR.OUVRE.INTL(deb;dur;weekend;fer)
)
)
il y a une différence en méthode. La colonne bsalv utilise les jours ouvrable et ignore la date limite mais et la colonne "marge" montre l'écart entre cette date limite et la valeur calculée. Les 2 autres colonnes essaient à ajouter les samedis/dimanches/fériés, mais cela n'est pas visible. Moi, je préfère vous donner ce choix vous-même en vous donnant le marge.
En P11:Q11, la différence entre durée-1 et début-1 comme mentionné dans mon poste précédent. On travaille 1 jour et le début est un dimanche, alors le fin, c'est le dimanche ou le lundi ? A mon avis, le lundi.
 

Pièces jointes

Dernière édition:
VB:
=
SI(NB(Tableau3[@[DEBUT]:[DUREE]])<2;"-";
LET(
deb;[@DEBUT]-1;
dur;[@DUREE];
jo;SI([@[JOURS OUVRABLES]]=0;"0000011";RECHERCHEX([@[JOURS OUVRABLES]];TabJrsOuvrables[Jours ouvrables];TabJrsOuvrables[Mask];"?";0));
weekend;GAUCHE(jo;7);
fer;SI(DROITE(jo;1)<>"+";Feries_Filtrés;0);
SERIE.JOUR.OUVRE.INTL(deb;dur;weekend;fer)
)
)
il y a une différence en méthode. La colonne bsalv utilise les jours ouvrable et ignore la date limite mais et la colonne "marge" montre l'écart entre cette date limite et la valeur calculée. Les 2 autres colonnes essaient à ajouter les samedis/dimanches/fériés, mais cela n'est pas visible. Moi, je préfère vous donner ce choix vous-même en vous donnant le marge.
En P11:Q11, la différence entre durée-1 et début-1 comme mentionné dans mon poste précédent. On travaille 1 jour et le début est un dimanche, alors le fin, c'est le dimanche ou le lundi ? A mon avis, le lundi.
Re, bsalv, riton00, chris, le forum,
Merci pour votre retour. Je n'avais pas eu l'idée de prendre en compte le "Lundi-Vendredi-Fériés" et "Lundi-Samedi-Fériés". Je vais voir un peu plus votre méthode.

Encore merci à vous, le forum
kdet
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour