un contournement, la formule de la colonne I regardera aux 500 lignes précédentes + la ligne actuelle, mais comme cela provoque des erreurs aux lignes inférieures à 500, on commence avec la ligne 500 et on cache les lignes 1-500.
Maintenant, l’idée est que le congé précédent du matricule se trouve au maximum 500 lignes avant la ligne actuelle, sinon ce donnée sera ignoré
Vous avez combien de lignes par mois ? Ces 35.000, ce’st combien d’années ? Classeur_fabien.xlsx (17,5 Ko)
3 colonnes auxiliaires,
colonne J = matricule & le numéro du congé en ordre ascendant avec la « date début congé », donc même si votre tableau n’est pas bien trié, on prend les « dates début congé » de la plus petite à la plus grande pour chaque matricule.
Colonne K = ligne du congé précédent dans ce tableau (pour ne numéro de la ligne réelle, il faut ajouter le numéro de la ligne des entêtes du tableau, ici 1)
colonne I = date fin du congé précédent (si ce n’était pas le premier congé).
Ces colonne sont grisées, pour vous pouvez modifier ce couleur. Classeur_fabien.xlsx (15,3 Ko)
Qu pensez-vous de la vitesse avec 35.000 lignes ?
Merci de nouveau Cow18 pour le travail accompli
J’essaierai le nouveau fichier chez moi ce soir.
Je ne peux évidemment pas le télécharger au travail.
Je te tiens au courant.
Fabien
Bonsoir,
J’ai essayé de trouver une solution, par le biais de Power Query (add-on nativement inclus depuis la version 2016 d’Excel pour PC, et normalement présent pour 365 MAC)
Cependant, afin de tester plus avant (notamment sur la célérité), serait-il possible de joindre un fichier représentant les données réelles, mais avec 3 colonnes seulement (MATRICULE - DATE DEBUT - DATE FIN), avec au moins un petit millier de lignes. (et plus, si possible, mais sans les noms…)
Dans un tableau structuré, et uniquement ces trois colonnes (si la taille du fichier permet un téléchargement sur le site)
Bonne soirée
Bonjour,
Avec ces 1500 lignes, moins de 2 secondes, donc ça devrait le faire (on pourrait améliorer mais, si ça te va…)
Dans ce fichier, tu acceptes le msg d’avertissement (ce ne sont pas des macros, juste des connexions internes de données, pas de soucis), et dans le ruban « Données », tu cliques sur « Actualiser tout ».
2 secondes après, tu as le résultat dans le tableau vert…
Si besoin de plus d’infos, n’hésite pas
Bonne journée Classeur_fabien.xlsx (62,4 Ko)
Bonjour,
Comme je vois que le fichier ne fait qu’à peine 40 Ko, s’il t’est possible de mettre toutes les données (avec uniquement les 3 colonnes), ça pourrait en plus m’aider dans une recherche d’optimisation.
Te remercie par avance
Hello Bart,
Effectivement, les fériés sont calculés directement dans PQ, la liste comprend les JF de l’année de la date de début du congé + l’année suivante - ainsi si les dates se chevauchent sur 2 ans, les JF des 2 années sont pris en compte
dans son premier fichier, il y avaient aussi d’autres jours fériés qui n’étaient pas férié d’origine. Oubien c’était pour essayer oubien le TS veut ajouter ses propres fériés. Question à lui/elle ?
Re-,
J’avais vu qu’il comptabilisait toujours le lundi de pentecôte, donc je l’ai rajouté
sinon, je pense que la procédure c’est d’indiquer si RTT ou autre???
Re-,
Pour le fun (et parce que le sujet m’a intéressé)
Dans ce nouveau fichier, avec les 1500 lignes
Au final, un tableau avec les infos suivantes :
On choisit le nombre de jours consécutifs dans la cellule A2 de l’onglet « PQ » (ici, j’ai mis 10, comme indiqué dans la demande, mais on peut mettre n’importe quel nombre)
Puis, ruban « Données », « Actualiser tout », et on obtient :
Une colonne Matricule
Une colonne Nom
Une colonne Prénom
Une colonne Cumul, avec le nombre de jours consécutifs pris
Une colonne Nb Périodes, soit le nombre de périodes posées pour arriver à ce cumul
Et enfin, par groupe de 4, le type de congé, la date de début, la date de fin et le nombre de jours pour ce groupe.
Pour info, avec 1500 noms, en moins de 5 secondes, on obtient ce résultat
C’était juste pour le fun
PS, le code est certainement condensable et améliorable, mais le résultat semble être là…
Bonne apm Fabien_Jours consécutifs.xlsx (77,7 Ko)
Bonsoir,
Toujours dans l’attente de ce fichier…
PS, si tu peux également renseigner la colonne « Motif », ça permettrait de fiabiliser le projet.
Au fait, tu as testé mon dernier?
Bonne soirée
Bonjour @ tous
Merci @Cow18 pour le fichier, j’allais le faire ce matin.
Merci @Cousinhub pour ton intérêt à ma demande.
En fait en relisant mon sujet de départ je m’aperçois que mon but final n’est pas clairement expliqué, et peut même orienter dans une mauvaise direction.
Je m’en excuse.
Comme quoi dès fois quand on écrit des choses c’est clair pour celui qui rédige alors que pour le lecteur…
En fait, c’est pas tout à fait ça, mais avec le travail de @Cow18 j’y étais arrivé quand même.
En fait le but final est inverse
Désolé pour l’esprit tordu.
D’après mon rapport de congé entreprise je cherche surtout ceux qui n’ont pas pris 10 jours consécutifs (tous congés confondus)… Mais à partir d’une autre liste de personnels qui ont travaillé sur notre période de fermeture.
Avec le travail de @Cow18 (feuille Tableau AD) j’avais ajouté une colonne qui filtrait sur <10 et j’avais ce que je voulais… Avec cette formule :
=SI(AT2>=10;[@Matricule];« »)
Puis dans une autre feuille (Tableau CLF) qui contenait la liste des personnels qui ont travaillé sur notre période de fermeture, je faisais une formule qui ressemblait à ça :
=SIERREUR(SI(RECHERCHEV(TableauCLF[@Matricule];tableauAD!AU2:AU33168;1;FAUX)=TableauCLF[@Matricule];« OK »;« NOK »);« NOK »)
Bonjour,
Hello Bart, merci pour ton fichier. @fabien_leroux , hormis la période de fermeture que je n’ai pas compris, la requête est alors simplifiée.
Dans ce fichier, avec 35000 lignes, la liste des personnes n’ayant pas pris 20 jours (exemple pour ce fichier) prend moins de 20 secondes pour sortir.
Pour faire avancer le schimili…
Bon dimanche
PS, j’ai oublié de préciser, mais j’ai enlevé le 20 mai 2024 (lundi de pentecôte) de la liste des JF, car légalement, ce n’en est plus. Fabien_Jours consécutifs_v2.xlsm (1,2 Mo)