Bonsoir
Effectivement, c'est bien compliqué...
Pour chaque date, il faut :
1) aller chercher des infos sur la ligne précédente, de 23 à 24 h, et sur la ligne en cours, de 0 à 1 h, pour savoir si la personne a travaillé plus tard que minuit le jour précédent.
2) aller chercher des infos sur la ligne en cours (normal)
3) aller chercher des infos sur la ligne en cours de 23 à 24 h et sur la ligne suivante de 0 à 1 h pour savoir si la personne à travaillé plus tard que minuit le jour en cours.
Rien qu'avec cela on a :
* un problème pour faire les calculs pour le premier jour du mois car, pour les faire, il faut connaitre l'emploi du temps de la personne concernée le dernier jour du mois précédent. On peut essayer de résoudre ce problème en utilisant des informations transmises dans les cellules vertes.
* un problème pour faire les calculs pour le dernier jour du mois, car, pour les faire, il nous faut connaitre l'emploi du temps de la personne concernée le premier jour du mois suivant.
Mais en réalité, pour chaque date, c'est plus compliqué que cela, car, il faut, en plus :
4) Connaitre la dernière date+heure de fin de travail, ce qui nécessite l'utilisation d'une plage commençant sur la ligne de la première date du fichier, avec un INDEX(...;EQUIV(....;1)) ou avec un MAX. Cette information n'est pas forcément sur la ligne précédent la ligne en cours.
5) Connaitre le nombre de périodes de 7 jours ne comprenant pas de repos >= 44 h avant la date précédente pour continuer ce calcul....
6)...
Il ne faut pas trop s’inquiéter au sujet des parties utilisant des plages allant jusqu'à la dernière ligne du tableau. Si je me souviens bien, elles ne sont là que pour ne pas obtenir les #VALEUR à la fin du tableau. Je ne pouvais pas mettre un test uniquement sur la présence d'une ligne vide sur la ligne suivante, car il existe des lignes vides dans le tableau. Donc, j'ai mis un test sur tout le bas du tableau : lorsqu'il est vide, c'est qu'il ne faut plus faire de calcul, donc afficher "" au lieu de #VALEUR. Si on travaille avec une grande feuille comprenant avec tous les mois présentés comme tu l'as fait, il faut faire autrement en fin de mois.
Hier, j'ai commencé à modifier les formules pour qu'elles soient facilement copiables-collables d'un mois vers le suivant, sans avoir, si possible de modification à faire, ou le mois possible, à chaque fois, et à remplir correctement la dernière ligne verte du mois. Mais j'ai un problème avec les divers cas possibles lors du dernier jour du mois, problème que je n'arrive pas à résoudre pour le moment.
C'est certainement faisable de faire tout cela avec des lignes vertes, mais je trouve que cela complique beaucoup les choses de procéder ainsi, en séparant les données de chaque mois avec des lignes vides et des lignes vertes, du moins avec ce que je comprend de ton besoin et de tes possibilités matérielles.
Personnellement, ne connaissant pas exactement le dossier, je ne comprend pas tout :
1) Je n'ai toujours pas compris pourquoi il te faut deux lignes vertes, une en fin de mois, et une autre en début du mois suivant. Pour moi, ces deux lignes ne devraient faire qu'une : les infos qu'on regroupent à la fin du premier mois sont celles dont on a besoin pour débuter les calculs du mois suivant. Donc, on a les mêmes informations dans ces deux lignes vertes. Autant n'en mettre qu'une.
2) J'irai même plus loin : Cela serait beaucoup plus simple sans interruption entre chaque mois. Je m'explique :
Début février, la macro importe les données du mois de janvier sur la plage A5:AC35. Les formules font les calculs dans la plage FH5:FP35. Tu connais le nombre de jour qu'il fallait attribuer ce mois de janvier à la personne concernée, donc, tu le signale au service concerné, qui lui attribue.
Début mars, la macro importe les données du mois de février et les colle à partir de la cellule A36. Les formules font les calculs à partir de la cellule FH36, tant qu'il y a des données dans les lignes en dessous. Tu connais le nombre de jours de congé qu'il fallait attribuer ce mois de février à la personne concernée, en tenant compte du reliquat du mois de janvier, s'il y en a un...
Défauts du système :
* Tu ne sais que début février les jours de congé qu'il fallait attribuer en janvier, début mars ceux de février, début avril, ceux de mars, et ainsi de suite. Pour ne pas avoir ce problème, il faudrait faire un bilan plus souvent, par exemple une fois par semaine.
* Il faut garder une feuille par personne, ou un fichier par personne, puisque début mars tu vas compléter ce qui a déjà été fait début février (et qu'il ne faut pas effacer, perdre).
Si tu as 100 employés, au bout d'une année, tu auras un fichier avec 100 feuilles d'environ 365 lignes, ou 100 fichiers d'une feuille d'environ 365 lignes. Pas si énorme que cela.
Si tu tiens à avoir un résumé à la fin de chaque mois, c'est tout à fait faisable, mais pas en le glissant entre chaque mois, mais plutôt en le mettant soit dans des colonnes à droite de la colonne FP, soit sur une autre feuille.
@ plus