Planning de gantt hebdomadaire sur plusieurs années

Bonjour,

Pour mon poste, je dois faire un simple planning pour savoir quand sont utilisés les engins en fonction des chantiers prévus à l'avance.
Pour cela je créé une ligne "titre" avec le chantier, et des lignes en dessous avec les différents engins. Je souhaiterais mettre une date d'utilisation (en semaine) pour le début des travaux et une en fin de d'utilisation. Je suis parti d'un fichier présent dans Excel et qui me va très bien par sa simplicité. Lorsque l'on travaille sur la même année, il n'y a pas de soucis, dès lors que l'utilisation chevauche deux années cela ne fonctionne plus. Savez-vous me dire d'ou viendrait le problème ?

Merci à vous de votre aide.

180planning-ml.zip (204.90 Ko)

Bonsoir,

le problème est simple :
Les mise en formes conditionnelles pour passer les cellules en violet sont déclenchées par le fait que dans la cellule il y a inscrit un espace ou non.

Cet espace est affiché ou pas dans la cellule en fonction du résultat d'une formule. Le soucis de cette formule c'est qu'elle a été édité pour un fichier annuel.
Et comme elle calcul en dissocié, c'est à dire d'un coté numéro de semaine et de l'autre numéro année, la formule ne peut faire la différence entre la semaine 5 de 2020 et celle des autres années, du coup lorsque vous êtes à cheval sur deux années la semaine 5 de 2022 n'est pas plus grande que la semaine 48 de 2021.

Il faudrait que les formules "jouent" avec la date de ces semaines afin que la date de la semaine 5 de 2022 soit bien plus grande que la date de la semaine 48 de 2021.

@ bientôt

LouReeD

Bonsoir,

votre fichier modifié en conséquence :

@ bientôt

LouReeD

Bonjour LouReeD

Merci pour ce fichier, ça fonctionne. J'ai compris ton explication, par contre je n'arrive pas bien à comprendre la formule, sais-tu me l'expliquer rapidement ?

Merci :)

Bonsoir,

je vais essayer...

SI(ET(DATE($C10;1;3)-JOURSEM(DATE($C10;1;3))-5+(7*$B10)+1<=AC$6;DATE($E10;1;3)-JOURSEM(DATE($E10;1;3))-5+(7*$D10)+7>AC$6);" ";"")

en résumé : = Si( on fait un test ; si test est vrai alors on affiche un espace " " ; si test est faux alors on affiche rien donc un double guillemet "" )

Le test :
Une fonction ET car il faut qu'il y ait deux condition qui soit vrai pour que le test soit vrai

Test première condition :

DATE($C10;1;3)-JOURSEM(DATE($C10;1;3))-5+(7*$B10)+1<=AC$6
on calcule la date du premier jour de la semaine indiquée en colonne B en fonction de l'année en colonne C

Date($C10;1;3) on prend la date au 3 janvier de l'année indiquée en colonne C, pourquoi le 3 ? Parce que "en France" la semaine n°1 d'une année, correspond à la première semaine de l'année qui comporte à minima 4 jours appartenant à janvier.

La fonction JOURSEM(une date; sans paramètre ou "1" ) retourne un chiffre de 1 à 7 pour désigner le jour de la semaine où 1=dimanche et 7 = samedi.
Ici le paramètre est omis. Cette valeur est retranchée à la première date. Du coup on recherche le premier dimanche

On retranche 5 à ce chiffre, afin de tomber sur une dimanche

On additionne le produit correspondant au numéro de semaine de la colonne B par 7 car il y a 7 jours dans une semaine

On additionne 1 pour tomber sur la date de votre ligne du à la formule NO.SEMAINE.ISO qui part de la date en B3 qui elle ne correspond pas à un lundi...
du coup je m'aperçois que le +1 est de trop car peut importe la date en B3...

Ce qui donne pour le premier exemple de votre fichier, semaine 49 de 2020 :

Date du 3 janvier 2020 ( soit sous excel en format standard : 43 833)
on soustrait la valeur numérique de ce jour avec comme correspondance 1=dimanche... 7=samedi
JourSem("03/01/2020") = Vendredi = 6 => on a donc 43833 - 6 = 43827 (qui correspond à un samedi)

On retranche 5 =>43827 - 5 = 43822 ( qui correspond à un lundi). On viens de trouver le lundi de la première semaine de l'année en C10.

On y ajoute le nombre de semaine x par le nombre de jour d'une semaine soit 7 => 49 x 7 = 343 => 43822+343 = 44165 soit le 30/11/2020 qui est un lundi.

Donc on test si cette date est inférieur ou égale à la date se trouvant en ligne 6 de la colonne où se trouve la formule, si oui = Vrai, si non = Faux

Le deuxième test fait de même mais avec le numéro de semaine de fin ainsi que l'année correspondance, avec un résultat Vrai ou Faux.

La fonction ET va rencontrer alors 4 possibilités : VRAI et VRAI = VRAI; VRAI et FAUX = FAUX, FAUX et VRAI = FAUX et FAUX et FAUX = FAUX.
La fonction renverra VRAI uniquement si la date en ligne 6 est bien comprise ou égale à la date du lundi de la semaine/année de début et strictement inférieur à la date du lundi de la semaine de fin + 7 soit au maximum égale au dimanche de la semaine de fin.

Je profite donc de vous fournir le fichier avec les formules corrigées ! Vous avez bien fait de poser cette explication !

PB de téléchargement pour le fichier...

@ bientôt

LouReeD

Là ça a marché !

@ bientôt

LouReeD

Bonjour,

Merci pour l'explication et du temps passé pour rédiger tout ça.

J'ai une dernière "fonction" que je n'arrive pas à mettre en place. Par exemple la même machine peut être utilisée sur deux chantiers différents à deux moments différents et je voudrais avoir un "lissage" en bas de tableau avec les semaines occupées pour une machine donnée. Cela me permet de savoir quand ma machine est libre.

Egalement, est-il possible avec une condition dans la mise en forme conditionnel d'attribuer une couleur de remplissage par type de machine et/ou de projet ?

Merci, pour l'aide.

FloLR

Rechercher des sujets similaires à "planning gantt hebdomadaire annees"