Microsoft 365 Planning et calendrier vacances

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 !

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

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
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)
 
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]"))))
 
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
 
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

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
 
Notre forum d’entraide est 100 % gratuit et le restera.
Aucune formation payante, aucun fichier à acheter, rien à vendre. Mais comme tout site, nous devons couvrir nos frais pour continuer à vous accompagner.
Soutenez-nous en souscrivant à un compte membre : c’est rapide, vous choisissez simplement votre niveau de soutien et le tour est joué.

Je soutiens la communauté et j’accède à mon compte membre

Discussions similaires

Réponses
20
Affichages
668
Réponses
0
Affichages
397
Réponses
12
Affichages
951
Réponses
6
Affichages
576
Retour