MFerrand a écrit :
Elle est très personnalisée en ce sens qu'elle est construite sur la structure de la feuille (ce pourquoi le nombre d'arguments à fournir est si limité).
En particulier, elle utilise dans les calculs : la zone H4:J7 pour la définition des droits ;
Les colonnes A et B pour les dates de congés ;
Les colonnes J et K pour la comptabilisation des congés antérieurs (hors chevauchement à un an d'intervalle) ;
Les colonnes P et Q pour extraction plus précise des jours si chevauchement à un an.
En partant de la ligne du congé à définir, le recueil des données utiles au calcul se fait en remontant (sans aller au-delà de la ligne 12) : tant que le congé antérieur est postérieur aux dates du congé actuel antériorisées d'un an, les jour sont cumulés pour décompte des droits restant ; si le congé antérieur chevauche... on récupère les dates correspondant aux 100% et 50% de ce congé pour pouvoir tenir compte du glissement au jour le jour de la partie incluse dans les dates antériorisées du congé actuel.
Si donc on déplace les éléments visés ci-dessus, la fonction ne pourra plus fonctionner. Par ailleurs, elle ne peut calculer juste que si le même calcul a été fait antérieurement (période d'au moins un an !) et a produit les informations sous les mêmes formes : soit une chaîne de type jj/mm>>jj/mm et si plusieurs chaînes de ce type pour définir le congé, séparées par un point-virgule.
Ce n'est pas une surprise ! Relis les spécifications ci-dessus.
Cela n'est pas insurmontable, mais tout élément visé ci-dessus qui est modifié doit l'être dans la fonction (sans en louper).
Au cas particulier, tu ajoutes des lignes en-tête, c'est le début de la liste des CM qui est déplacé. Le calcul fait par la fonction en remontant limitait la remontée à la ligne 12, il faut donc modifier ce 12 dans la fonction par la nouvelle première ligne...
Note que en l'augmentant cela provoque naturellement des erreurs sur les premiers calculs (pouvant se propager puisque les premiers calculs sont utilisés par les suivants), mais dans l'autre sens (réduction du nombre de lignes) cela n'aurait provoqué aucune erreur mais les calculs auraient pu être faux puisque les premières lignes de la liste auraient été ignorées par la formule...
Note aussi les autres zones sensibles... On pourrait s'en affranchir, mais à condition de les passer à chaque fois en arguments à la fonction, ce qui ne faciliterait pas son utilisation.
Cordialement,