Bonsoir,
aller un peu de lecture !
La formule : =SI(ET(D$6>=$B7;D$6<=$C7);D$6;SI(ET(D$6+((NB.SI(D$6:D6;">0")-1)*D$3*7)>=$B7;D$6+((NB.SI(D$6:D6;">0")-1)*D$3*7)<=$C7);D$6+((NB.SI(D$6:D6;">0")-1)*D$3*7);""))
En fait on a une condition SI, celle-ci est basée sur un double test :
D$6>=$B7;D$6<=$C7 => on test si la date de début fait partie de la semaine en ligne 7, si oui on réaffiche la date de première exécution qui se trouve en D6, sinon on fait un autre test SI.
Cette deuxième condition permet de tester si la date "répétitives" avec le décalage en nombre de semaine x par 7 jours est comprise dans la semaine de la ligne où se trouve la formule. Comme le principe est de ne pas afficher de date si aucunes condition est VRAI, pour connaitre la date de la troisième exécution il suffit d'ajouter à la date de début deux fois 7 jours pour connaitre cette dernière.
pour savoir qu'il faut multiplier par 2, il suffit de compter le nombre de date affichées au dessus de cette ligne, donc si l'on fait un test en ligne 16, le NB.SI(D$6:D6;">0") se transforme en ligne 16 par NB.SI(D$6:D15;">0"), ce qui veut dire nombre de cellule dont la valeur est supérieure à 0 dans la plage D6:D15 ce qui donne 3. mais sur ces trois dates il y a deux fois la date de première exécution : en D6, l'info de début, puis en ligne 8, la position "réelle" de cette date par rapport au différentes semaines des colonnes A, B et C. Il faut donc en supprimer 1 afin de connaitre le nombre de période de 4 semaines réelles entre la date de début, donc on a bien date début + période de 4 semaine * par 7 jours par semaine x par deux périodes.
Une fois ce calcul fait on lui applique les deux tests afin de savoir s'il fait partie de la semaine en ligne 16, les deux tests sont VRAI alors on affiche le résultat de ce calcul. Si cela n'avait pas était le cas on affichait un double guillemet c'est à dire "rien".
Particularité des jours fériés : si (une date début) + (période de 4 semaines) x (7 jours par semaine) x (N périodes) tombe sur un jour férié, la date sera inscrite, mais elle ne doit pas compter, alors on applique une MFC qui la rend invisible si cette date fait partie de la liste des jours fériés. Mais il est important qu'elle soit inscrite car étant >0 elle comptera dans la recherche du nombre de périodes !
@ bientôt
LouReeD