Suivi de formation annuelle avec page récapitulative

Salut à tous

Besoin de votre aide pour un code VBA!

Le document contient 1 onglet par collaborateur, par conséquent, le fichier est amené à évoluer. A ce titre, j'ai plusieurs demandes :

Le doc en question :

1) J'aimerais une macro qui arrive à récupérer les heures planifiées et les heures effectuées pour chacun des employés et qu'elle les répertorie sur l'onglet "Récapitulatif". Il faut savoir que chaque année, un nouveau bloc de cellule va être ajouté pour chacun des collaborateurs en ligne 4 alors le contenu des cellules va bouger et la cellule "Heure planifiée" en 2023 ne sera plus la même en 2024, vous voyez où je veux en venir? Ca commence à être très compliqué pour moi

2) J'aimerais faire un bouton sur la page "Récapitulatif" pour ajouter une nouvelle année.

Par exemple, pour 2024, j'aimerais que 2 colonnes identiques aux précédentes années soient ajoutées entre les colonnes E et F.

Et j'aimerais aussi que ce bouton sélectionne tous les onglets collaborateurs (hormis celui "Récapitulatif") et qu'il copie les lignes 4 à 18 et qu'il les insère en ligne 4 et qu'il supprime les données (autre que le titre) de ces lignes supprimées.

Merci tout plein pour votre aide

Bonjour, à mon avis vous prenez le problème à l'envers.

On ne créer jamais plusieurs onglets pour en demander un récapitulatif à la fin.

On saisit tout dans le même onglet et avec un tableau croisé dynamique on obtient les infos que l'on souhaite / par agent / par année / par formation .....

Bonjour à tous

Plutôt d'accord avec Xmenpl...

Cependant en l'état :

  • qu'est-ce qui figure en cellules B1 et B2 des onglets ?
  • que dois contenir % de travail de l'onglet Recap ?

Merci Xmenpl, j'ai jamais testé un tableau croisé et j'ai juste repris un doc qui existait déjà... J'arrive pas à me représenter ce que ça donne en faisant comme tu me conseilles. J'vais essayer de chercher un exemple quelque part, le but c'est que ce soit au plus simple

Merci 78chris, je n'ai pas tout complété dans mon doc, en B1 y a le nom et prénom du collaborateur et en C1 sa fonction (agent, auxiliaire, etc).

Dans la feuille récapitulative, ça met juste les heures planifiées et exécutées, après je fais une simple mise en forme conditionnelle pour que ça soir rouge si < 40h de formation, rien de plus

Le % de travail n'a pas d'incidence sur les calculs, c'est juste à titre informatif.

J'ai avancé sur mon code pour copier les blocs de cellule dans chacun des onglets comme souhaité mais le code n'est pas pur on va dire mais il fait le boulot

Est-ce que quelqu'un peu m'aider pour la suite?

Il faudrait une macro qui va sur chaque onglet (sauf Récapitulatif), qui copie les heures planifiées et effectuées pour chaque collaborateur (chaque onglet donc) et qui les colle au bon endroit, sous la bonne année et sur la ligne correspondant au collaborateur.

RE

Assez simple à faire sans VBA, avec PowerQuery, intégé à Excel à partir de 2016, en add on sur 2010

image

Oh trop bien! je travaille sur Excel 2019, et j'ai trouvé sous Données -> Obtenir les données mais après je galère, je ne comprends absolument rien...

Tu arrives à m'expliquer ce que je dois faire pour obtenir le résultat que tu as? ou m'envoyer ton document pour que je comprenne un petit peu ?

Bonjour

Met ton profil à jour pour indiquer 2019

Dans le fichier joint il y a :

  • un onglet Paramètres : y figurent
    • la liste des titres de colonnes du tableau final (tableau structuré Titres),
    • le chemin d'accès au fichier à synthétiser (vue sa structure il est plus simple de travailler de l'extérieur)
    • le tableau des groupes (tableau structuré Personnel)
  • un onglet Synthèse où est chargé le résultat
  • les requêtes PowerQuery suivantes
    • une fonction Synthèse qui contient le code pour traiter un onglet
    • Classeur qui :
      • charge la structure du fichier mentionné dans l'onglet Paramètres
      • filtre pour éliminer la feuille Récapitulatif
      • ne conserve que les colonnes Name (nom de l'onglet) et Data (contenu)
      • applique la fonction Synthèse à chaque contenu
      • supprime la colonne Data
      • récupère le contenu
    • Titres qui :
      • récupère le tableau Titres de l'onglet Paramètres
      • le transpose
      • le combine avec Classeur et promeut la ligne de Titres comme en-têtes: on a ainsi les bons titres de colonnes au-dessus du contenu
      • supprime les colonnes inutiles
      • type les colonnes restantes
    • Personnel qui :
      • récupère le tableau Personnel de l'onglet Paramètres
      • type les colonnes
      • croise avec la requête Titres la colonne Initiales
      • tri la colonne Année
      • décroisent les colonnes P et E
      • fusionne la colonne Année avec la colonne obtenue par le décroisement
      • Croise cette colonne fusionnée en effectuant la somme des valeurs

La fonction Synthèse effectue les étapes suivantes pour traiter un onglet :

  • type la 1ère colonne en texte
  • récupère l'année dans une nouvelle colonne quand cette 1ère colonne commence par "202"
  • propage l'année trouvée sur toutes les lignes en dessous
  • supprime les 8 premières lignes
  • filtre la 1ère colonne en éliminant N°, Total et la 5ème colonne en éliminant Plannifiées et les cellules vides

Tout cela est fait en utilisant le ruban ou le clic droit.

Seule la transformation des manipulations de traitement d'un onglet en une fonction nécessite d'éditer le code M.

Bonjour Zacky et le forum
Loin d'être à la hauteur des 2 passionnés d'Excel qui vous ont déjà répondu, je suis resté très basique pour ma petite contribution.
J'ai supprimé les feuilles relatives à chaque collaborateur pour n'en garder qu'une.
2 boutons:
- un pour insérer les colonnes pour une nouvelle année dans chaque feuille
- un autre pour les supprimer (si nécessaire)
Cdt
Papy Henri

23zacky.xlsm (41.53 Ko)

78Chris : merci pour tes nombreuses explications même avec tout ça, je ne m'en sors absolument pas et je n'ai, pour l'heure, pas le temps de m'intéresser à PowerQuery mais je garde ça dans un coin de ma tête car ça a l'air super intéressant comme système

Papi Henri : c'est exactement ce que j'ai besoin en revanche, si j'ajoute un nouveau collaborateur en respectant l'ordre alphabétique, plus rien ne joue.

as-tu une idée comment faire avec les formules pour l'ajout d'un nouveau collaborateur?

Bonjour

78Chris : merci pour tes nombreuses explications même avec tout ça, je ne m'en sors absolument pas et je n'ai, pour l'heure, pas le temps de m'intéresser à PowerQuery

J'ai fourni un fichier clé en mains qui peut fonctionner sur n'importe quel fichier de même structure qu'il suffit d'actualiser. Tu ne dis même pas si tu l'as utilisé...

Il y avait seulement 2 manip à faire :

  1. modifier le chemin du classeur dans la cellule en jaune
  2. actualiser le résultat

2 minutes chrono !

J'ai passé un long moment à expliquer ce que j'ai fait car tu semblais vouloir apprendre

Mais tout cela pour rien : tu n'as même pas pris 2 minutes pour mettre ton profil à jour...

La solution de Papy Henri n'est pas difficile à décrypter et donc à modifier mais sans doute que tu n'as pas non plus le temps de t'intéresser au VBA...

Il est parfois désespérant de vouloir aider...

Oh, excuse-moi, je me suis mal exprimée, j'ai ouvert ton doc, j'ai vu le chemin d'accès et je l'ai adapté comme tu me l'avais dit, en revanche c'est pour l'actualisation que je n'ai pas réussi...

Concernant le VBA, j'adore ça mais mes connaissances sont limitées, parfois je trouve des bouts de code à adapter mais quand ça devient trop complexe pour moi, je me perds facilement.

RE

...en revanche c'est pour l'actualisation que je n'ai pas réussi...

Il y avait des messages d'erreur ? Si oui, lesquels ?

Profil inchangé

Bonsoir
Désolé pour cette intrusion sur ce fil.
Toutefois si zacky est toujours intéressée, je lui prépare autre chose avec des tableaux Structurés. Beaucoup plus faciles d'utilisation.
Je m'absente demain, je verrai éventuellement ce WE.
Papy Henri

Si tu as le temps papi Henry, très volontiers

78Chris : alors voilà ce que j'ai : j'ai ouvert mon premier doc et j'ai ajouté 2 onglets = 2 nouvelles personnes. J'ai ouvert le doc synthèse et j'ai ajouté aussi ces 2 personnes sur la page "paramètres" et quand je vais sur PowerQuery, je clique sur Synthèse et que je prends Actualiser le tout, rien ne se passe et ça me met :

image

RE

Tu n'as pas à ouvrir PowerQuery et encore moins à appeler la fonction.

Juste dans Excel à utiliser Données, Actualiser tout ou un clic droit sur le tableau résultat, Actualiser

Encore une fois, je n'ai jamais utiliser le PowerQuery alors je ne comprenais pas la marche à suivre alors merci pour ce complément d'informations, je testerai demain

Si tu as le temps papi Henry, très volontiers

Bonjour Sophie

Avec ce temps maussade en Bretagne ces derniers jours (mais le soleil revient enfin!), j'ai pu te préparer une version avec des Tableaux Structurés et formulaires de saisie.
A découvrir. le mode opératoire est dans la feuille "Récapitulatif".
Cdt
Papy Henri

16zacky2.xlsm (55.88 Ko)

Merci Papy Henri,

t'as fait un travail de fou c'est trop génial!!!

Merci infiniment, c'est parfait et exactement ce dont j'avais besoin!

Une excellente soirée à toi et au plaisir

Cordialement

Sof

Rechercher des sujets similaires à "suivi formation annuelle page recapitulative"