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
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
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
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
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é
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 :
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
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
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
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
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
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