Microsoft 365 Décaler une date d'un jour ouvrable si samedi, dimanche ou JF

Looxy

XLDnaute Nouveau
Bonjour à tous,

J'ai actuellement une formule (qui fonctionne très bien), qui me permet de décaler une date initiale de 5 jours ouvrables, étant entendu que ma date initiale est en Q33, que mes jours fériés sont dans un onglet à côté de B2 à F12, que ma semaine débute le lundi et se termine le dimanche, soit :
VB:
=SERIE.JOUR.OUVRE.INTL(Q33;5;11;Fériés!B2:Fériés!F12)

Toutefois, je voudrais compléter cette formule afin de décaler d'un seul jour ouvrable ma date finale uniquement si le résultat tombe un samedi, un dimanche ou un jour férié.

Sachant que le résultat de la formule précédente apparaît en Z45, j'ai essayé la formule suivante mais il y un problème dans la formule que je n'arrive pas à identifier.
Code:
=(SI(OU(JOURSEM(Z45;2)>5;Z45=(Fériés!B2:Fériés!F12)));((SERIE.JOUR.OUVRE.INTL(Q33;6;11;Fériés!B2:Fériés!F12)));(Z45))

Merci d'avance à tous ceux qui pourront résoudre mon énigme et m'aider à trouver la formule qui convient pour décaler cette date d'un jour ouvrable :)
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Il serait souhaitable d'avoir un fichier exemple.
Je suis étonné car le 11 de la fonction SERIE.JOUR.OUVRE.INTL ne prend en compte que le dimanche et tu demandes si samedi, dimanche ou férié.
Fer=plage des fériés.
VB:
=SI(ESTERREUR(EQUIV(SI(ET(JOURSEM(Z45+1;2)=6;ESTERREUR(EQUIV(Z45+3;Fer;0)));Z45+3;SI(ET(JOURSEM(Z45+1;2)=7;ESTERREUR(EQUIV(Z45+2;Fer;0)));Z45+2;Z45));Fer;0));SI(ET(JOURSEM(Z45+1;2)=6;ESTERREUR(EQUIV(Z45+3;Fer;0)));Z45+3;SI(ET(JOURSEM(Z45+1;2)=7;ESTERREUR(EQUIV(Z45+2;Fer;0)));Z45+2;Z45));SI(ET(JOURSEM(Z45+1;2)=6;ESTERREUR(EQUIV(Z45+3;Fer;0)));Z45+3;SI(ET(JOURSEM(Z45+1;2)=7;ESTERREUR(EQUIV(Z45+2;Fer;0)));Z45+2;Z45))+1)

JHA
 

Looxy

XLDnaute Nouveau
Merci JHA pour ta réponse, mais ta formule ne fonctionne pas.
Je joins le fichier pour que cela soit plus clair mais on aperçoit que cela ne fait pas le décalage tenant au fait que la fin soit un samedi ni au au fait que le jour ouvrable suivant est un férié (j'ai bien mis mes plages fériées là ou tu avais noté Fer).
Pour plus de clarté j'ai mis des exemples en Y 34 / Y35 / Y36

Pour le 11, c'est pour que l'on se base bien sur une semaine où le lundi correspond au 1 et le dimanche au 7.

Merci d'avance pour vos idées.
 

Pièces jointes

  • 1. Calendrier.xlsx
    51 KB · Affichages: 27

JHA

XLDnaute Barbatruc
Bonjour à tous,

Je pense que tu fais une erreur en mettant le "11" dans la fonction serie.jour.ouvre.intl(date départ;nbre de jours ouvrés;11; fériés).
Le 11 signifie que les jours ouvrés sont de 6 jours par semaine, seul le dimanche est compté comme weekend.
Pour prendre en compte le samedi et le dimanche comme weekend, c'est serie.jour.ouvre.intl(date départ;nbre de jours ouvrés;1; fériés).

JHA
 

Pièces jointes

  • 1. Calendrier.xlsx
    50.3 KB · Affichages: 25

Looxy

XLDnaute Nouveau
En fait, je parle bien en jour ouvrable (donc avec seulement le dimanche en weekend) pour la date de fin de délai de sorte que par exemple si mon calcul débute un jeudi (ex : 12/9), alors mon délai prend fin 5 jours ouvrables plus tard (soit le mercredi soir suivant - ex : 18/9) et l'entretien peut avoir lieu dès le lendemain (soit le jeudi - ex : le 19/9).
Dans ce cas, il me faut bien le 11.

Par contre, je ne prend pas en compte le weekend (samedi et dimanche inclus + fériés) uniquement si mon délai se termine un tel jour.
Exemple, mon calcul débute un lundi (ex : 16/9), alors mon délai prend fin 5 jour ouvrables plus tard (donc le samedi 21/9 !!) et dans ce cas je dois proroger le délai jusqu'au premier ouvrable suivant (ex : lundi 23/9) et mon entretien a lieu le lendemain (soit le 24/9).
Donc en effet je ne dois pas avoir le 11 mais uniquement si mon délai se termine un samedi, dimanche ou JF.

Et dans ce dernier cas, les formules que tu viens de mettre ne fonctionnent pas car :
>/ si la date de début est le 15/4 alors la date de fin de délai est le samedi 20/4 (et non pas le 23/4)
dans ce cas la date d'entretien est juste (mercredi 24/4) car le délai est prorogé jusqu'au mardi (le lundi étant férié) et l'entretien est donc bien le mercredi
>/ si la date de début est le 18/4 alors la date de fin de délai est le jeudi 25/4 (et non pas le 26/4)
dans ce cas la date d'entretien est le vendredi 26/4 (et non pas le 29/4)
 

Discussions similaires