Regroupement de plusieurs lignes d'absences en une seule ligne

Bonjour à tous,

J’ai un fichier d’absences de salariés avec parfois plusieurs lignes avec le même motif d’absence pour le même salarié.
Travaillant avec des tableaux de plus de 80 000 lignes, cette tâche est très fastidieuse.

Est-ce qu’une personne saurait m’aider afin de créer une macro ou bien un TCD sans VBA me permettant de regrouper les lignes qui concernent la même période d’absence pour le même salarié svp ?

Voici les conditions pour que les lignes soient regroupées :

1. Le matricule + Nom + Prénom doivent être le(s) même(s)

2. Les motifs d’absences doivent être similaire

3. Les lignes de Subrogation à « OUI » doivent être regroupées et idem pour les lignes à « NON »

4. Les périodes regroupées doivent être des périodes consécutives
*Exemple 1 : du 01/01/21 au 02/01/21 puis du 03/01/21 au 04/01/21 *
* OK car les deux périodes se succèdent d’un jour donc il s’agira d’une seule ligne *

Exemple 2 : Du 05/01/21 au 06/01/21 puis du 08/01/21 au 09/01/21)
 KO car les deux périodes ne se succèdent pas. Il y a un jour d’écart entre la première et la deuxième période ; donc il s’agit de deux lignes distinctes

5. Les montants bruts et nets des lignes regroupées doivent être sommées

Vous trouverez ci-joint le résultat attendu
Merci d’avance :slight_smile:

Epression de besoin macro regroupage absences.xlsx (14,7 Ko)

Bonjour

Ci-joint ma proposition en VBA
Onglet « RESULTAT » ce que j’obtiens avec tes consignes sauf la numéro 2 qui compte tenu de tes données dans tes onglets ne correspond à aucune d’entre elles donc tu voudras bien m’en dire plus la concernant
Pour la consigne 4 en analysant ton onglet « RESULTAT ATTENDU » en plus de la nature consécutive des périodes tu as regroupé celles qui avaient la même date fin pour une date de début de la seconde non consécutive à la première (exemple ligne 10 date fin 04/12/2019 et 11 date début 30/11/2019 non consécutive onglet source regroupée en ligne 6 onglet « RESULTAT ATTENDU »)

Avec toutes tes consignes prises en compte sauf la numéro 2 j’ai malgré tout quelques divergences de résultats par rapport à ton « RESULTAT ATTENDU »
Celles-ci sont surlignées en jaune dans les 2 onglets « RESULTAT » et « RESULTAT ATTENDU »
Tu voudras bien les analyser et m’éclairer à leur sujet

Le traitement pour plus de 10 000 lignes s’exécute en moins de 10 secondes
Pour 80 000 8 fois plus soit moins de 2 minutes

Celui-ci à besoin d’un tri réalisé selon tes consignes
Ce tri peut être effectué à la main ou intégrer dans le code mais des précisions concernant la gestion de chaque enregistrement consécutif en rapport avec leur date :

Date début du suivant consécutif à celle de fin du précédent
Quid des périodes de l’un inclus dans l’autre si cette clause n’est pas de mise avec quelle contrainte pour leur date de fin

Beaucoup d’incertitude à lever

Aprés avoir analysé les divergences obtenues testes la procédure:

Onglet « SOURCE » cliques sur le bouton « Regroupement »

Fais des essais et dis moi

Attention fichier de type « .xlsm » nécessaire pour le traitement VBA à conserver impérativement

Epression de besoin macro regroupage absences.xlsm (133,3 Ko)

Bonjour et merci pour votre réponse,

Pour la consigne 2 « Les motifs d’absences doivent être similaire », c’est une incompréhension de ma part. Les motifs d’absences font référence à la colonne I « S.S Nature Prestation »  Cette condition est bien respectée

Après avoir effectué des tests, je me suis aperçu que les exemples que j’ai renseignés dans mon fichier étaient faux.
J’ai donc réalisé un nouvel essai avec d’autres exemples (ci-joint).
Les données sont bien regroupées mais, il arrive que quelques fois, les périodes ne se regroupent pas. Est-ce possible d’y remédier svp? J’ai surligné en bleu un exemple pour un matricule

Merci

Epression de besoin macro regroupage absences (1).xlsm (34,0 Ko)

Bonjour

Merci pour ce retour

Pour les périodes qui ne se regroupent pas ici :

ligne 7 avec les lignes 3/4/5

Normal car entre il y a un intrus la ligne 6

J’ai bien expliqué ceci :

« Celui-ci à besoin d’un tri réalisé selon tes consignes »

Ce qui n’est pas le cas pour ces lignes 3/4/5/7

Elles ne sont pas triées pour être regroupées ensembles condition indispensable pour un résultat de regroupement attendu correct

il faut obtenir ceci avec un tri adapté :

Afin que tous ces enregistrements aient leurs lignes regroupées et de ligne par ligne analyser leurs dates

pour obtenir non pas ce résultat :

mais celui-ci :

Ce tri peut être réalisé à la main sur les colonnes C/D/E/M ce qui n’est pas le cas dans l’onglet « SOURCE » du fichier que tu m’as transmis :

les colonnes C/D/E ne sont pas triées

Donc on ne peut espérer un résultat de regroupement correct

Si ce tri au préalable est correctement effectué ce regroupement le sera lui aussi

Je t’ai proposé de l’inclure dans la procédure automatique mais il faut aussi inclure les colonnes G/H car les dates interviennent dans l’application ou non des regroupements donc leur ordonnancement est crucial pour bien les effectuer

J’attends des précisions de circonstance à ce niveau

merci donc pour tes réponses dans cet esprit

Bonjour,

J’ai bien réalisé le tri comme vous me l’avez conseillé. Après de nombreux essais, voici le message d’erreur auquel je fais face.

Sauriez-vous me dire à quoi correspond-t-il svp ?

En vous remerciant d’avance

Bonjour

Ta copie d’écran ne montre que le code du traitement avec en jaune la ligne sur laquelle il bug mais en aucun cas le message qui lui est au niveau de la fenêtre d’alerte juste avant qu’il aurait aussi fallu me transmettre pour en connaitre la nature

Peux tu me fournir ton fichier avec le tri que tu as effectué qui engendre cette anomalie afin que je cerne la difficulté

Merci

Bonjour, ci-joint le fichier avec les tris
Epression de besoin macro regroupage absences (3).xlsm (1,1 Mo)

Merci pour le fichier

Le plantage concerne ces lignes :

Et oui le traitement n’apprécie pas les données « #N/A » qui se trouvent en colonne C lignes 11196 à 11199

A toi de regarder et de corriger ces données il s’en trouvera nettement mieux

Attention la ligne 11915 pour cette même colonne est mal-en-point aussi à regarder si tu ne veux pas la même déconvenue

Pour s’assurer de la présence de cette anomalie déplies le filtre de la colonne et regardes en fin de liste si il n’est pas présent et de filtrer dessus pour faire remonter toutes les lignes concernées :

Opères de la même façon pour toutes les colonnes C/D/E/M car si l’une d’entre elles est confrontée à cette imperfection bug à l’horizon !!!

Dans ton fichier transmis ces intrus handicapants ne sont qu’en colonne C

Corriges les et tout devrait rentrer dans l’ordre

Fais moi un retour

Bonjour,

Merci pour ces précisions

Encore une fois je reviens vers vous pour savoir s’il est possible de rajouter une condition dans la macro svp… J’aimerai savoir si, il était possible de regrouper l’ensemble des lignes malgré qu’il y ai plusieurs périodes avec la même date de début pour la même personne ?

Dans le fichier en PJ vous trouverez des lignes mis en surbrillance en vert. Par exemple, dans ce cas de figure, il faudrait qu’il y ai une seule ligne du 30/03 au 17/04 à 764,75€ de prestations

Merci pour votre aide !

Epression de besoin macro regroupage absences (4).xlsm (36,7 Ko)

Bonjour

Merci pour ce retour

Pour le groupement souhaité quelle logique doit être appliquée au niveau des dates pour l’obtenir

Celles formulées à l’origine ne conviennent pas :

"4. Les périodes regroupées doivent être des périodes consécutives
*Exemple 1 : du 01/01/21 au 02/01/21 puis du 03/01/21 au 04/01/21 *
* OK car les deux périodes se succèdent d’un jour donc il s’agira d’une seule ligne *

Exemple 2 : Du 05/01/21 au 06/01/21 puis du 08/01/21 au 09/01/21)
 KO car les deux périodes ne se succèdent pas. Il y a un jour d’écart entre la première et la deuxième période ; donc il s’agit de deux lignes distinctes"

Merci de m’indiquer celle à appliquer pour un regroupement correct pour toute composition potentielle susceptible de se présenter

Dans l’attente de cette logique pour l’intégrer dans le traitement

Bonjour,

Voici la dernière condition qu’il faudrait ajouter :
5. S’il y a des périodes où la date de début ou de fin sont similaires, ces périodes doivent également être regroupées
Exemple 1 : date de début similaire
Du 07/04/20 au 11/04/20 avec une prestation à 349,80 brute et 326,35 nette
Du 07/04/20 au 17/04/20 avec une prestation à -326,81 brute et -304,92 nette
:arrow_right: Il faudra ici regrouper les deux périodes pour faire du 07/04/20 au 17/04/20 avec une prestation à 22,99 brut et 21,43 nette

Exemple 2 : date de fin similaire
Du 07/04/20 au 17/04/20 avec une prestation à 22,99 brute et 21,43 nette
Du 12/04/20 au 17/04/20 avec une prestation à 241,50 brute et 225,30 nette
:arrow_right: Il faudra ici regrouper les deux périodes pour faire du 07/04/20 au 17/04/20 avec une prestation à 264,49 brute et 246,73 nette

Milles mercis pour votre aide

Bonjour

Tes nouvelles règles pourront s’appliquer pour toutes les lignes sur fond vert mais pas avec celles sur fond jaunes :

la dernière en vert et la première en jaune n’ont ni leur date de début ni leur date de fin similaires

Or ton souhait est de toutes les regrouper

Merci d’analyser et me dire

Je te joint le fichier adapté à ces nouvelles dispositions mais le résultat obtenu n’est pas tout à fais celui que tu espérais compte tenu de cette situation

Epression de besoin macro regroupage absences (4).xlsm (38,4 Ko)

Regardes et dis moi

Bonjour,

Après avoir réalisé plusieurs tests, la solution précédente est plus adaptée

Merci beaucoup pour votre aide ! :grin:

Merci pour ton retour
J espère que cette nouvelle version répondra au mieux à toutes les situations rencontrées
A ta disposition si besoin

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.