Extraction données selon résultat MFC
Bonjour à tous et toutes,
Je vous remercie dans un premier temps du temps que vous accorderez à mes interrogations et à la lecture de ce sujet.
Contexte :
Dans mon activité je suis amené à suivre la validité de formation suivi par des salariés. Ces formations sont à recycler à des fréquences différentes.
A ce jour afin de pouvoir déterminer qui est à jour et qui ne l'est pas je procède avec un tableau Excel et des mises en forme conditionnelle.
Lorsqu'une personne arrive à la fin de validité ou à dépasser la date de validité il est nécessaire de reprogrammer une formation pour la personne.
J'ai environ 500 personnes, une trentaine de formations distinctes et environ 45 responsables avec qui je dois voir les disponibilités des personnes pour programmer les formations.
Là où cela devient fastidieux c'est dans la récolte des personnes devant refaire une formation car comme il y a plus 30 de colonnes, il faut filtrer colonnes par colonnes pour récupérer le nom des personnes devant refaire une formation A, puis filtrer la formation B, puis la C....
Ma demande aujourd'hui vise donc à optimiser le suivi de ces informations.
Les souhaits d'évolution sont :
- Evolution 1 : avoir un bouton avec un code VBA (je ne pense pas que ce soit possible sans VBA mais si quelqu'un connait je suis curieux de connaitre la solution) qui permettrait de récupérer dans un autre onglet la liste des personnes et les formations qu'ils doivent repasser
==> Extraire de l'onglet Site 1 les colonnes A/B/C + le nom de la formation à suivre ((ligne 2 colonne J à AC) + le contenu de la cellule correspondante pour l'individu
Exemple :
Pour la Formation 1 à 3 je voudrais récupérer :
AAAAA24 Monsieur Xavier 24 Service 5 14/03/2014 Formation 1
AAAAA6 Monsieur Xavier 6 Service 1 03/02/2012 Formation 2
AAAAA13 Monsieur Xavier 13 Service 3 06/02/2011 Formation 2
AAAAA13 Monsieur Xavier 13 Service 3 06/02/2011 Formation 3
Autrement dit extraire la liste des personnes dont les MFC sont orange et rouge et les coller dans un autre onglet.
A chaque fois que la macro (car je ne pense que sans macro cela soit réalisable) sera lancée, le contenu de la page de destination sera supprimé avant collage du nouveau (pour éviter les erreurs)
- Evolution 2 : des personnes peuvent venir, interrompre leur activité 1 an ou 2 puis revenir. A ce jour je supprime les personnes ou les déplace manuellement. Le problème est que les formations suivies sont de plus en plus nombreuses donc recopier une ligne d’un ancien les colonnes peuvent avoir bouger :s
De ce fait est-il possible de rajouter une colonne actif et que si j’inscris « non » dedans la ligne sous couper et coller à partir de la ligne 2000 dans le tableau ? et que si je retire le « non » elle soit remontée dans la partie haute du fichier ?
La demande principale demeure l’évolution 1. La seconde serait une cerise sur le gâteau ^^
Je vous remercie de votre attention et votre aide.
Cordialement
Apprentixel
Bonjour,
Je ne réponds qu'à la première demande (si tant est que je l'ai correctement traduite!?)
À l'activation de la 3e feuille en pièce jointe, un résultat s'affiche ... reste à savoir si c'est celui attendu?
Activer une des deux autres feuilles, puis activer à nouveau la 3e (sans oublier d'activer les macros au préalable!)
J'ai enregistré le fichier au format .xlsm, puisque ton profil renseigne Excel 2010
Bonjour et merci pour la prise en compte de ma requête et la réponse apportée U. Milité
Lorsque je change d'onglet j'ai effectivement l'intégralité des formations qui sont sur le bon schéma qui se transpose.
Cependant je souhaite si cela est possible n'avoir que celle répondant à la MFC couleur rouge et orange soit :
Rouge:
=DATE(ANNEE(J3)+GAUCHE(J$1;TROUVE(" ";J$1)-1);MOIS(J3);JOUR(J3))<AUJOURDHUI()Cela ajoute donc le nombre d'année de validité de la ligne 1 (3 ANS pour formation1) et la compare avec la date du jour. Si la date est inférieure alors la formation n'est plus valable et passe en rouge.
Deuxième critère qui affiche la couleur rouge : la cellule contient le texte A former
Orange :
=DATE(ANNEE(J3)+GAUCHE(J$1;TROUVE(" ";J$1)-1);MOIS(J3);JOUR(J3))<=Datepreciseavec Dateprecise :
=SI(ESTVIDE(Paramètres!$D$2);DATE(ANNEE(AUJOURDHUI());MOIS(AUJOURDHUI())+Paramètres!$D$3;JOUR(AUJOURDHUI()));Paramètres!$D$2)J'ai du passé par une cellule nommé car la MFC n'accepte pas de formule aussi longue.
Si je reprend ton fichier je te mets ci joint le résultat attendu.
A savoir : il y a deux onglets site dans mon fichier global. A voir si possible pour extraire sur une feuille le site 1 et sur une autre le site 2.
Si tu as besoin de précisions supplémentaires n'hésite pas.
Et encore merci pour le temps passé sur cette requête.
Bonjour
Ce type de tableau à double entrée est difficilement exploitable.
Une structure sous forme de liste de données permettrait une exploitation plus simple des filtres et des stats ou synthèse par TCD.
Certes le VBA peut pallier mais je pense qu'il est préférable de traiter le problème à la source car c'est reculer pour mieux sauter...
Re-bonjour,
Il va me falloir un peu de temps pour comprendre tes explications et leurs implications concrètes (et cet après-midi, je serai occupé!
Tu te simplifierais sans doute la tâche (et tu raccourcirais tes formules) en utilisant un format personnalisé (0" ANS") en J1:AC1 (tu n'encoderais qu'une donnée numérique: 3 ou 5, par exemple et c'est le format qui "se chargerait" d'ajouter " ANS")
78chris a écrit :Bonjour
Ce type de tableau à double entrée est difficilement exploitable.
Une structure sous forme de liste de données permettrait une exploitation plus simple des filtres et des stats ou synthèse par TCD.
Certes le VBA peut pallier mais je pense qu'il est préférable de traiter le problème à la source car c'est reculer pour mieux sauter...
La structure en colonne distincte pour chaque formation est utile pour les points avec les formateurs car on ne balaie que les personnes concernées.
De même certaines formations ne sont pas liées au poste de la personne mais à une polyvalence ou alors à un besoin temporaire ce qui fait que le manager peut en balayant le tableau voir dans son équipe qui a la formation dont il a besoin en évitant le " trop " de formation sur un même individu afin de favoriser la polyvalence de tous.
J'ai bien conscience que je vous rajoute des difficultés supplémentaires mais je ne peux malheureusement pas les retirer.
*U. Milité a écrit :Re-bonjour,
Il va me falloir un peu de temps pour comprendre tes explications et leurs implications concrètes (et cet après-midi, je serai occupé!
) ... ce qui te laisse du temps pour prendre en considération la remarque de 78chris, que je salue Tu te simplifierais sans doute la tâche (et tu raccourcirais tes formules) en utilisant un format personnalisé (0" ANS") en J1:AC1 (tu n'encoderais qu'une donnée numérique: 3 ou 5, par exemple et c'est le format qui "se chargerait" d'ajouter " ANS")
Oui tu as raisons pour les formats j'aurais pu faire autrement. Mais même en jouant sur ce point la Dateprécise est requise car syntaxe trop longue. Il y a peu de formation concernée mais je préfère garder une harmonisation dans mes formules.
Bonjour à tous,
Je me permet de remonter mon sujet comme il se positionne en 6ème page.
Merci d'avance à ceux qui y regarderont.
Bonjour
On peut facilement exploiter une liste de données pour restituer ce dont les formateurs ou les managers ont besoin.
Rester sur une contrainte de présentation et devoir tout coder pour y pallier ne me parait pas la bonne approche.
Espérons que d'autres te proposent le VBA attendu...