XL 2016 Gestion des Employés

Jorelle27

XLDnaute Nouveau
Bonjour la team,
ça fait des mois que je travail sur ce fichier il marche mais avec plus de données le processeur atteint 100.

je vous expliques : mon fichier récupère les dates de contrat en court des employers dans le sheet 2--->sheet 1
et affiche une Etoile (*) en colonne D du sheet 1 si un employé à un contrat futur.

pour l'affichage des date j'ai utilisé une formule excel car j'ai pas pu le faire en VBA
pour l'affichage de l'Etoile j'ai utilisé du VBA

j'aurais besoin de votre expertise pour une solution plus légère, Merci
 

Pièces jointes

  • gestion de user et contrat1.xlsm
    20.3 KB · Affichages: 19
Solution
Bonsoir à toutes & à tous, bonsoir @Jorelle27
Voici ma dernière version avec macros (j'ai renoncé aux formules et MFC pour tes dernières demandes, on aboutit à des choses très compliquées qui vont faire ramer le PC)

Les fonctionnalités mises en place
  • Feuille "Userdata"
Tableau structuré "tb_User" sans formule ni MFC. la mise à jour se déclenche avec l'événement Worksheet_Activate.​
Les congés affichés sont les plus tardifs du contrat actif lors de la mise à jour.​
Contrôle des doublons sur les uid, message puis effacement du doublon.​
  • Feuille "management des contrats
Tableau structuré "tb_management" avec formules dans les colonnes "nom" et "prénom" pour lire ces informations dans le TS...​

Jorelle27

XLDnaute Nouveau
re,

  • Pour les doublons "uid" de la feuille "Userdata" je le fait avec les validations de données (en utilisant une formules et en ayant créé un nom "lst_uid" qui pointe vers la colonne uid du tableau des Userdata)
  • Pour les astérisques pour les futurs contrats je le traite par formules.
  • Pour les dates, voudrais-tu préciser ta pensée j'imagine que cela doit être fait dans la feuille "management des contrats" car la feuille "Userdata" ne fait que reprendre les dates trouvée dans la feuille management. Pour l'instant tu n'as aucune macro qui gère cela.

Vois le fichier joint qui traite les deux premiers points
A bientôt

EDIT :
  • Pour les dates, voudrais-tu préciser ta pensée j'imagine que cela doit être fait dans la feuille "management des contrats" car la feuille "Userdata" ne fait que reprendre les dates trouvée dans la feuille management. Pour l'instant tu n'as aucune macro qui gère cela.
Je n'ai rien dit, j'ai vu ton affichage en rouge sur la feuille de management ... ;)
bonjour AtTheOne,
  • pour les dates de debut, de fin et l'astérisque c'est ok merci
  • pour l'uid si tu fais un copié coller il valide
  • pour les dates de congé il doit afficher la plus récente
 

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour à toutes & à tous, bonjour @Jorelle27
pour l'uid si tu fais un copié coller il valide
Oui c'est un inconvénient avec la validation de données, mais excel affiche une alerte dans un coin des cellules qui ne respectent pas les règles.
On peut ajouter une mise en forme conditionnelle pour passer en rouge les erreurs. Sinon c'est par macro.
pour les dates de congé il doit afficher la plus récente
Ça ce n'était pas dit 😉 !
Je vais regarder 2 solutions, une sans et une avec macro, tu choisiras ...
À bientôt
 

Gégé-45550

XLDnaute Accro
Bonjour Gégé-45550,
merci pour ton retour ça marche aussi mais le blocage des doublons ne marche plus et l'Etoile par contre doit etre devant le prénom.

cordialement
Bonjour,
Est-ce que c'est mieux comme ça ?
J'attire votre attention sur plusieurs points de l'onglet "management des contrats":
  • j'ai converti le tableau en table structurée
  • j'ai supprimé les espaces inutiles (et dangereux) en fin de libellé des titres
  • j'ai modifié le 31/04/2023 (qui n'existe pas) en 30/04/2023
  • pour G45326, le premier contrat se termine le 25/03/2025 et le deuxième commence le 25/08/2024 !!! Je n'ai rien changé mais c'est incohérent (c'est d'ailleurs la même chose pour H34678 qui par ailleurs bénéficie (?!) d'un CDD de 7 ans (!), sans doute autorisé en Chine mais pas en France)
  • Si vous avez plusieurs milliers de lignes, il est normal que des formules ralentissent le traitement.
Qu'entendez-vous par "blocage des doublons", qui par ailleurs ne figure pas dans l'énoncé de votre question ?

Cordialement
 

Pièces jointes

  • gestion de user et contrat1_GG1.xlsm
    44.8 KB · Affichages: 2

Jorelle27

XLDnaute Nouveau
Bonjour,
Est-ce que c'est mieux comme ça ?
J'attire votre attention sur plusieurs points de l'onglet "management des contrats":
  • j'ai converti le tableau en table structurée
  • j'ai supprimé les espaces inutiles (et dangereux) en fin de libellé des titres
  • j'ai modifié le 31/04/2023 (qui n'existe pas) en 30/04/2023
  • pour G45326, le premier contrat se termine le 25/03/2025 et le deuxième commence le 25/08/2024 !!! Je n'ai rien changé mais c'est incohérent (c'est d'ailleurs la même chose pour H34678 qui par ailleurs bénéficie (?!) d'un CDD de 7 ans (!), sans doute autorisé en Chine mais pas en France)
  • Si vous avez plusieurs milliers de lignes, il est normal que des formules ralentissent le traitement.
Qu'entendez-vous par "blocage des doublons", qui par ailleurs ne figure pas dans l'énoncé de votre question ?

Cordialement
bonjour Gégé-45550 j'entends par interdiction doublon le fait qu'un meme uid ne doit pas apparaitre 2 fois dans le sheet Userdata. ton programme il marche et est rapide il manque juste la partie doublon

je l'ai pas mentionné plus haut parce qu'il y'avais une macros qui le faisais déjà dans le fichier en faite.
 

Jorelle27

XLDnaute Nouveau
Re (salut @Gégé-45550 )
Voilà ma version avec formules et formats conditionnels pour rehausser les erreurs (uid en doublons, périodes de contrats se chevauchant)
Je ne l'avais pas dit mais comme @Gégé-45550 j'avais fait un peu de nettoyage ...
Voir pièce jointe
top il marche merci il me reste à charger mes 10000 milles lignes et de dire comment il se comporte.
 

AtTheOne

XLDnaute Accro
Supporter XLD
Bonsoir à toutes & à tous, bonsoir @Jorelle27
Voici la version avec macros, sans formules ni MFC
On peut peut-être accélérer la partie recherche des chevauchement des périodes de contrats en ne passant que par des tableaux et en faisant une boucle supplémentaire, là j'utilise EVALUATE de la formule utilisée dans la version par formules et MFC.
A bientôt
 

Pièces jointes

  • gestion de user et contrat AtTheOne macros.xlsm
    29.3 KB · Affichages: 1

Jorelle27

XLDnaute Nouveau
Bonsoir à toutes & à tous, bonsoir @Jorelle27
Voici la version avec macros, sans formules ni MFC
On peut peut-être accélérer la partie recherche des chevauchement des périodes de contrats en ne passant que par des tableaux et en faisant une boucle supplémentaire, là j'utilise EVALUATE de la formule utilisée dans la version par formules et MFC.
A bientôt
merci, excuse moi j'avais pas vu ta question pour les dates de congé en fait sur une année une personne peux prendre plusieurs congés exemple du 05/02/2024 -->12/02/2024 et du 03/05/2024 -->10/02/2024 pour un même contrat on souhaite afficher la dernière date
 

AtTheOne

XLDnaute Accro
Supporter XLD
Re
sur une année une personne peux prendre plusieurs congés exemple du 05/02/2024 -->12/02/2024 et du 03/05/2024 -->10/02/2024 pour un même contrat on souhaite afficher la dernière date
Oui mais tu n'as la possibilité que de décrire une seule période de congés par contrat ...
Y'a quelque chose que j'ai du mal comprendre ! 🤔 ou ton fichier n'est pas assez représentatif...
À bientôt
 

Jorelle27

XLDnaute Nouveau
Re

Oui mais tu n'as la possibilité que de décrire une seule période de congés par contrat ...
Y'a quelque chose que j'ai du mal comprendre ! 🤔 ou ton fichier n'est pas assez représentatif...
À bientôt
jusqu'ici c'est correct,
pour ajouter un deuxième congé je recopie la meme ligne du contrat en cours puis je modifie la la cellule congé pour avoir une traçabilité sur les congés et pour afficher j'avais récupéré max date de uid
 

AtTheOne

XLDnaute Accro
Supporter XLD
Re
je recopie la meme ligne du contrat en cours puis je modifie la la cellule congé
Du coup tu as des recouvrements dans tes dates de contrats, ça ne va pas avec ce que j'ai fait pour détecter les chevauchements de dates pour les contrats.
J'ai considéré que les dates de contrats ne devaient pas se chevaucher car :
le plus important c'est bloquer les doublons, date de debut et de fin du contrat en cours
Éclaire moi sur ce point en mettant un exemple avec 2 ou 3 périodes de congés pour un même contrat.
À bientôt
 

Jorelle27

XLDnaute Nouveau
Re

Du coup tu as des recouvrements dans tes dates de contrats, ça ne va pas avec ce que j'ai fait pour détecter les chevauchements de dates pour les contrats.
J'ai considéré que les dates de contrats ne devaient pas se chevaucher car :

Éclaire moi sur ce point en mettant un exemple avec 2 ou 3 périodes de congés pour un même contrat.
À bientôt
effectivement les dates doivent se chevaucher
je t'ai ajouté une ligne comme exemple
 

Pièces jointes

  • gestion de user et contrat AtTheOne macros.xlsm
    26.1 KB · Affichages: 1

Membres actuellement en ligne

Statistiques des forums

Discussions
313 769
Messages
2 102 234
Membres
108 181
dernier inscrit
Chr1sD