Microsoft 365 Planning et calendrier vacances

MLIZIN

XLDnaute Junior
Bonjour,
Une explication du problème est de mise ainsi que le partage d'un fichier afin de mieux comprendre la situation (je l'espère) :
  • Calendrier vacance : dans le fichier simplifié ci-joint j'ai une liste de délivrables avec une durée, une date de démarrage de la tâche et une date de fin (calculée). Cette date fin (calculée) tient compte des WE et des vacances. MAIS un projet peut s'étaler sur un, deux ou trois ans. J'ai créé dans le 2ième onglet trois tables (Holidays_2024, Holidays_2025 et Holidays_2026) Si je rentre 2024 il calcule automatiquement les jours fériés des deux autres années. J'ai aussi créé une liste de jours fériés commune pour réaliser un test. Dans la feuille "Delivrables List" Cln 0 ma formule tient compte des jours fériés de 2024, 2025 et 2026.
  • Problématique :
    • Cette formule est figée, c'est dommage, au cours des années il faut changer la formule dans chaque cellule
    • Est-il possible de simplifier la formule afin de ne pas renseigner une table, une année spécifique? D'ou l'objet peut-être d'une table unique, en tenant compte de l'année de la Start Date?
    • Se pose alors la question d'une Start Date en 2024 et d'une End Date en 2025. Avec une fermeture de la société entre Le 25/12 - 1jour ou plus si le 25/12 tombe un WE jusqu'au 01/01 + 5 jours ou plus si nous tombons dans un WE
Pouvez-vous m'aider sur le coup, je vous en remercie d'avance et je reste bien sûr disponible pour renseignements complémentaires.

Bon WE

Marc
 

Pièces jointes

  • AXXMEXXX-DPS-LST-ZZ-0007-P02.03-Deliverables List for FORUM.xlsm
    122.9 KB · Affichages: 11
Solution
Encore un fois Merci vgendron cela marche . Je ne pense jamais à la fonction INDIRECT et pourtant elle m'a déjà bien servie dans d'autres fichiers.
Sans vouloir abuser il reste la dernière partie de mon Msg précédent :
  • Se pose alors la question d'une Start Date en 2024 et d'une End Date en 2025. Avec une fermeture de la société entre Le 25/12 - 1jour ou plus si le 25/12 tombe un WE jusqu'au 01/01 + 5 jours ou plus si nous tombons dans un WE
Dois-je rentrer une ligne par jour dans mes TROIS tables ou tu as une botte secrète?

Merci d'avance de tes lumières,

Marc

vgendron

XLDnaute Barbatruc
Bonjour

j'ai pas trop regardé ta formule.. elle me semble compliquée MAIS
pour dire à une formule d'aller chercher dans une table 2024 ou une table 2025, il faut utiliser la fonction indirect


ex: tu as tes 3 tables Holidays_2024 2025 2026
en A1: l'année 2024
en A2, je veux récuper la valeur en première ligne, première colonne de la table "holidays_2024"
dans ta formule: =indext(indirect("Holidays_" &A1);1;1)
 

vgendron

XLDnaute Barbatruc
et en regardant la formule
VB:
SI(OU([@[Type of Line]]="Title 1";[@[Type of Line]]="Title 2");"";SI(OU([@[Duration
(Working day)]]="";[@[Start Date]]=""); "-";
SERIE.JOUR.OUVRE.INTL([@[Start Date]]-1;[@[Duration
(Working day)]];1;INDIRECT("Holidays_" &ANNEE([@[Start Date]])&"[Date]"))))
 

MLIZIN

XLDnaute Junior
Encore un fois Merci vgendron cela marche . Je ne pense jamais à la fonction INDIRECT et pourtant elle m'a déjà bien servie dans d'autres fichiers.
Sans vouloir abuser il reste la dernière partie de mon Msg précédent :
  • Se pose alors la question d'une Start Date en 2024 et d'une End Date en 2025. Avec une fermeture de la société entre Le 25/12 - 1jour ou plus si le 25/12 tombe un WE jusqu'au 01/01 + 5 jours ou plus si nous tombons dans un WE
Dois-je rentrer une ligne par jour dans mes TROIS tables ou tu as une botte secrète?

Merci d'avance de tes lumières,

Marc
 

danielco

XLDnaute Accro
Bonjour à tous,
J'ai utilisé la formule (en Q13) :
VB:
=SI(OU([@[Type of Line]]="Title &";[@[Type of Line]]="Title 2");"";SI(OU([@[Duration
(Working day)]]="";[@[Start Date]]="");"-"; SERIE.JOUR.OUVRE.INTL([@[Start Date]]-1;[@[Duration
(Working day)]];1;Vacances)))
La plage "Vacances" est définie par :
Code:
=DECALER('DPS DOC TYPES & DISCIPL'!$J$5;;;NBVAL('DPS DOC TYPES & DISCIPL'!$J:$J)-1)
Toutes les dates sont calées sur K4. La période de Noël/jour de l'an est définie en J42 pour les 3 années. :
Code:
=ASSEMB.V(LET(na;DATE(K4+1;1;1);nl;DATE(K4;12;25);SEQUENCE(na+CHOISIR(JOURSEM(na;2);0;0;0;0;0;2;1)-nl-CHOISIR(JOURSEM(nl;2);0;0;0;0;0;1;2)+1;;nl-CHOISIR(JOURSEM(nl;2);0;0;0;0;0;1;2)));LET(na;DATE(K4+2;1;1);nl;DATE(K4+1;12;25);SEQUENCE(na+CHOISIR(JOURSEM(na;2);0;0;0;0;0;2;1)-nl-CHOISIR(JOURSEM(nl;2);0;0;0;0;0;1;2)+1;;nl-CHOISIR(JOURSEM(nl;2);0;0;0;0;0;1;2)));LET(na;DATE(K4+3;1;1);nl;DATE(K4+2;12;25);SEQUENCE(na+CHOISIR(JOURSEM(na;2);0;0;0;0;0;2;1)-nl-CHOISIR(JOURSEM(nl;2);0;0;0;0;0;1;2)+1;;nl-CHOISIR(JOURSEM(nl;2);0;0;0;0;0;1;2))))

Daniel
 

Pièces jointes

  • AXXMEXXX-DPS-LST-ZZ-0007-P02.03-Deliverables List for FORUM.xlsm
    139.1 KB · Affichages: 9

danielco

XLDnaute Accro
ASSEMB.V empile le même calcul pour trois années successives. Pour la première (2024) :

VB:
LET(na;DATE(K4+1;1;1);nl;DATE(K4;12;25);SEQUENCE(na+CHOISIR(JOURSEM(na;2);0;0;0;0;0;2;1)-nl-CHOISIR(JOURSEM(nl;2);0;0;0;0;0;1;2)+1;;nl-CHOISIR(JOURSEM(nl;2);0;0;0;0;0;1;2)))
na (mnémonique pour nouvel an) et nl (Noël).
L'instruction LET définit na comme étant :
Code:
DATE(K4+1;1;1)
et nl comme étant :
Code:
DATE(K4;12;25)
ce qui raccourcit les formules et optimise les performances. On peut supprimer LET et remplacer na et nl par leur calcul. Ca donnerait :
Code:
=SEQUENCE(DATE(K4+1;1;1)+CHOISIR(JOURSEM(DATE(K4+1;1;1);2);0;0;0;0;0;2;1)-DATE(K4;12;25)-CHOISIR(JOURSEM(DATE(K4;12;25);2);0;0;0;0;0;1;2)+1;;DATE(K4;12;25)-CHOISIR(JOURSEM(DATE(K4;12;25);2);0;0;0;0;0;1;2))

Daniel
 

Discussions similaires

Réponses
11
Affichages
518

Statistiques des forums

Discussions
314 704
Messages
2 112 054
Membres
111 410
dernier inscrit
yomeiome