Création Macro VBA - Livret à partir d'une BDD

Bonjour,

Je me permets une nouvelle fois de solliciter ce forum pour une demande de création de macro / VBA.
Le but est de créer un livret de rémunération par manager à partir d’une base de données.

Il y a donc deux fichiers de base :
1- Base de données_revue salariale qui ne contient qu’un seul onglet
2- Livret_revue salariale qui contient plusieurs onglets qui seront alimentés par la base de données.
Dans l’onglet « Propositions », il y a un encart « Proposition 2020 » et celui-ci n’est pas rempli par les infos de la BDD. Ce sont les managers qui rempliront ces informations.
Dans les onlgets Couverture, comment ça marche, récaptitulatif et grille de rémunération, il n’y a rien d’alimenté par la base de données_revue salariale. Seuls les onglets, Historique individuel et Propositions, comportent des données du fichier 1.

En effet, j’ai prévu un code couleur qui permet de venir chercher les informations des colonnes de la Base de données_revue salariale pour être intégré dans le Livret_revue salariale dans les différents onglets du fichier.

L’idée est est de créer un fichier par manager avec l’ensemble des salariés qui lui sont rattachés puis un fichier par direction avec l’ensemble des salariés qui y sont rattachés et avec la compilation des données de la base de données.

Je vous joins les 2 fichiers et dites-moi si je dois préciser certaines choses.
Merci par avance de votre aide.

Base de données_revue salariale.xlsx (11,6 Ko) Livret_revue salariale.xlsm (51,5 Ko)

Bonjour
on se retrouve pour de nouvelles aventures !!!
Ci-joint ma proposition
Ce fichier doit être ouvert ainsi que le fichier source « Base de données_revue salariale.xlsx »
j’ai rajouté un onglet « Coordonnées » dans lequel colonne B/C j’ai listé la lettre des colonnes source et cible en lien en rapport avec les couleurs données pour le traitement de l’onglet « Historique individuel »
Idem colonne D/E pour le traitement de l’onglet « Propositions »
En cellule C1 et E1 le nom du fichier « BDD » que le traitement consulte pour vérifier sa présence ouverte
tu peux modifier au grés du besoin ces paramètres si les colonnes sources et cibles devaient bouger
tu peux aussi en rajouter ce n’est pas limité l’essentiel étant d’avoir sur la même ligne la lettre des colonnes qui sont en lien source et cible

onglet « Historique individuel » un bouton « Données » sur lequel il faut cliquer pour la récupération des données de la source BDD
Idem onglet « Propositions »

Les données sont toujours recopiées à partir de la dernière ligne disponible donc celles en place ne sont pas nettoyées

Fais des tests et dis moi

Livret_revue salariale.xlsm (64,9 Ko)

Bonjour,
Super!! C’est toujours un plaisir de travailler avec vous.

Le traitement fonctionne très bien entre ramené les données de la base de données et les insérer dans le livret.
En revanche, quand cela est fait, comment peut-on ensuite créer un livret par manager et un livret par direction ?
Pour la création du livret par manager, il faudrait alors cacher l’onglet Coordonnées dans l’idéal ou peut-on plutôt le mettre dans le fichier Base de données-revue salariale qui est finalement mon fichier de travail ?
Même choses pour les boutons de macro, l’idée serait plutôt qu’ils se trouvent dans le fichier Base de données. est-ce possible ?
Question peut-être bête, pourrais-je ensuite enlever les couleurs des titres de mes colonnes ? Cela n’affectera pas la macro ?

Et j’ai oublié mais dans le couverture, il serait bien d’avoir le nom du manager en fonction du fichier créé. par exemple, si c’est Manager 1 alors renseigner Manager 1.

Ci-joint tes 2 fichiers avec l’ensemble des traitements intégrés dans le fichier de travail « Base de données_revue salariale.xlsm » de type xlsm pour le besoin des macros
Dans ce fichier de travail j’ai rajouté l’onglet « Coordonnées »
en cellule A2 de cet onglet le nom du 2° fichier cible à alimenter que le traitement vient consulter pour détecter sa présence ouverte
Si celui-ci est absent 2 messages d’avertissement sont donnés (1 par traitement) et la procédure est interrompue

L’onglet « Coordonnées » est à actualiser au grés des évolutions (cellules source cible modifiées ou rajoutées nom du fichier cible à alimenter)
Ne pas oublier donc de le mettre à jour
Le fichier cible est nettoyé des traitements boutons et onglet « Coordonnées »

« En revanche, quand cela est fait, comment peut-on ensuite créer un livret par manager et un livret par direction ? »

c’est à dire que cherches tu à faire il me faut des détails sur cette attente

je pense que ta dernière demande en découle :

« Et j’ai oublié mais dans le couverture, il serait bien d’avoir le nom du manager en fonction du fichier créé. par exemple, si c’est Manager 1 alors renseigner Manager 1. »

Peux tu me faire un exemple de ce que tu voudrais (nom d’enregistrement je suppose sous quelle forme comment récupère t-on l’information : Manager 1 Manager 2 Manager 3 …)

Ci-joint déjà tes 2 fichiers avec tout le fonctionnement dans le fichier de travail « Base de données_revue salariale.xlsm »

onglet « Feuil1 » en F1 bouton « Données » à activer pour le transfert de toutes les données dans les 2 onglets cible « Historique individuel » et « Propositions »

Testes et dis moi

Base de données_revue salariale.xlsm (25,4 Ko)
Livret_revue salariale.xlsm (52,7 Ko)

Bonsoir,
Parfait, le traitement fonctionne super bien! Merci.

Pour la création du livret, c’est un peu comme la création des fichiers de budget. Je ne sais pas si vous vous souvenez… C’est à dire que dans l’exemple des fichiers que vous avez :

  • 1 salarié dont le manager est « Manager 1 »
  • 2 salariés dont le manager est « Manager 2 »
  • 1 salarié dont le manager est « Manager 3 »
    Don l’idée c’est d’avoir une macro qui créée un fichier par manager avec les salariés qui lui sont rattachés. Donc concrètement, sur l’exemple ci-dessus, on aurait :
  • 1 fichier avec 1 salarié pour le « Manager 1 »
  • 1 fichier avec 2 salarié pour le « Manager 2 »
  • 1 fichier avec 1 salarié pour le « Manager 3 »
    Et, par conséquent, le nom du fichier serait composé de :
    « Revue NC_AAAA_NOM PRENOM » soit, AAAA = Année en cours, NOM PRENOM = Nom Prénom du manager.

Pour la couverture, en effet, l’idée c’est de reporter le nom du manager du fichier créé dans l’espace prévue à cet effet.

Suis-je claire? A dispo si questions.
Merci d’avance.

Merci pour ces explications
Si je comprends bien en plus de la recopie des données il faut les filtrer par salarié pour créer autant de fichier que de salariés distincts et de les enregistrer avec un nom de manager en rapport
Ais je bien compris ?

Pour cette partie :

« Pour la couverture, en effet, l’idée c’est de reporter le nom du manager du fichier créé dans l’espace prévue à cet effet. »

Cette espace où se trouve t’il ?
Merci de préciser

Je regarde tout cela demain et en fonction des réponses que tu me donneras je te ferais une nouvelle proposition en correspondance

Bonne soirée

Non, pas tout à fait ça. C’est créer autant de fichier qu’il y a de manager, donc il faut les filtrer par manager.

L’espace se trouve justement sur l’onglet couverture en cellule C18.

Merci beaucoup, bonne soirée.

Bonjour

Ci-joint ma nouvelle version avec 2 fichiers

le fichier de travail « Base de données_revue salariale.xlsm » et un fichier cible pour la mise en place des données dans les 2 onglets « Historique individuel » et « Propositions » par manager que le traitement enregistrera de manière spécifique pour chacun d’eux
ce 2° fichier n’est ni plus ni moins que le fichier « Livret_revue salariale.xlsm » dont les 2 onglets à remplir sont nettoyés de toutes données prêts à en recevoir (ces 2 onglet dans ce modèle doivent être non remplis)
Celui-ci doit être mis dans un répertoire dont le chemin devra être spécifié dans l’onglet « Coordonnées » en cellule « G2 » et son nom intégral avec son extension en cellule « F2 » fichier de travail « Base de données_revue salariale.xlsm »
j’ai utilisé comme appellation : « Livret_revue_salariale_modèle.xlsm »
il peut être modifié le tout étant que ce nom corresponde à celui du fichier à utiliser

Si il est intégré dans le même répertoire que celui du fichier de travail « Base de données_revue salariale.xlsm » en « G2 » onglet « Coordonnées » il suffit de mettre « ce classeur » au lieu du chemin

Une fois ces 2 fichiers en place il suffit d’ouvrir celui de travail « Base de données_revue salariale.xlsm » de bien alimenter les cellules F2/G2/H2 onglet « Coordonnées » puis à partir de l’onglet « Feuil1 » d’activer le bouton « Fichiers » en « F1 »
autant de fichier créés et enregistrés avec autant de données correspondantes que de manager en colonne F onglet « Feuil1 » dans le répertoire spécifié onglet « Coordonnées » cellule « H2 »

Pour la donnée « ce classeur » en H2 même répertoire d’enregistrement que celui du fichier de travail « Base de données_revue salariale.xlsm »

Enregistre ces 2 fichiers ci-joint selon ta convenance et mets à jour onglet « Coordonnées » du fichier de travail « Base de données_revue salariale.xlsm » les cellules F2/G2/H2 puis onglet « Feuil1 » cliques sur le bouton « Fichiers »

Testes et dis moi

Base de données_revue salariale.xlsm (30,9 Ko)
Livret_revue salariale.xlsm (52,7 Ko)

attention au nom du 2° fichier doit être « Livret_revue_salariale_modèle.xlsm » et non Livret_revue salariale.xlsm
c’est ainsi qu’il figure en F2 onglet « Coordonnées » sinon il faut l’adapter

Bonjour,
Merci, je viens de tester sur la version test et tout fonctionne parfaitement comme indiqué, c’est super. Très belle évolution.

Je vais tester avec mes données propres pour voir si cela est bien cohérent et si tout se créé bien.

Le bouton données est bien car il me permet d’avoir un fichier complet également.

Petite question :

  • les couleurs des colonnes peuvent-elle être effacées sans que cela ne perturbe la macro ?
  • Puis-je renommé la Feuil1 du fichier de Base de donnée ?
  • Puis-je renommé « Coordonnées » par « Paramètres » sans incident ?

Je me permets une demande complémentaire.
Une fois, en faite, que j’ai envoyé ces fichiers au manager. Il vont tous me faire un retour de fichier avec les éléments remplis dans l’onglet « Propositions » des colonnes P à AA.
Pourrait-on imaginer une macro qui vient chercher les éléments de l’onglet « Proposition » dans chaque livret nommé « NC_AAAA_NOM Prénom » de manager.
Pour ce faire j’ai ajouté l’onglet « Propositions » dans le fichier Base de donnée_revue salariale qui est mon outil de travail. Ainsi, cet onglet pourrait permettre de venir chercher toutes les informations dans les fichiers retournés.
J’ai ajouté un bouton « Traitement des fichiers managers »

Enfin, une fois que cela est fait, nous renvoyons les fichiers au managers pour validation. Donc cette fois-ci il faudrait que les informations des colonnes de P à AA de l’onglet « Propositions » soient ajoutées en plus de l’historique. et de récréer un fichier par manager. J’ai ajouté un bouton « Dispatch consolidation manager »

Je sais pas si je me fais bien comprendre???

Vous trouverez le nouveau fichier Base de donnée en PJ de ce message.

Base de données_revue salariale.xlsm (35,7 Ko)

Merci beaucoup d’avance.

Merci pour le retour
Ravi que cela te convienne

" les couleurs des colonnes peuvent-elle être effacées sans que cela ne perturbe la macro ?"
Aucune gène pour la macro les colonnes doivent rester en l’état quant à leur vocation uniquement
Les données et leur mise en forme peuvent elles être modifiées

  • Puis-je renommé la Feuil1 du fichier de Base de donnée ?

Tout les traitements sont activés à partir de cet onglet donc son nom n’intervient pas dans toutes les procédures il peut sans risque être modifiée

  • Puis-je renommé « Coordonnées » par « Paramètres » sans incident ?

Cet onglet est sollicité par son appellation toute modification de celui-ci doit impérativement être répercuté dans les codes pour permettre leur fonctionnement normal

Si donc une modification de celui-ci devait être effectuée il faut me transmettre le fichier avec l’onglet renommé pour sa remise à niveau

Pour les nouvelles évolutions il me faudrait l’ensemble des fichiers concernés avec un exemple de données à retransmettre de l’un à l’autre afin que je construise et teste un traitement approprié

Peux tu me fournir un exemplaire des 2 (Fichier de travail « Base de donnée_revue salariale » avec l’onglet « Propositions » et un fichier livret avec des données à récupérer par le traitement associé au principe des couleurs sur la source et la cible pour mettre de manière correcte en lien les cellules)

Idem pour la 2° évolution
Pourra t’on utiliser le même fichier modèle que celui qui permet la constitution des premiers fichiers par manager

« il faudrait que les informations des colonnes de P à AA de l’onglet « Propositions » soient ajoutées en plus de l’historique »

Merci de m’établir le lien des cellules entre les 2 fichiers (Fichier de travail « Base de donnée_revue salariale » et le fichier modèle à remplir pour chaque manager)

Dans l’attente de toutes ces informations et fichiers pour ces 2 évolutions

Petite question pour cette demande :

« Enfin, une fois que cela est fait, nous renvoyons les fichiers au managers pour validation. Donc cette fois-ci il faudrait que les informations des colonnes de P à AA de l’onglet « Propositions » soient ajoutées en plus de l’historique. et de récréer un fichier par manager. J’ai ajouté un bouton « Dispatch consolidation manager » »

Ne serait il pas mieux et plus simple d actualiser d abord l onglet « Feuil1 » de ces paramètres complémentaires et de rejouer le traitement « Fichiers » en ayant rajouté onglet « Coordonnées » tous les liens appropriés concernant ces colonnes supplémentaires source et cible pour les reporter dans les fichiers créés par manager ?

Bonjour

Je te propose cette nouvelle version qui inclus la récupération dans son onglet « Propositions » des apports des managers au sein de leur fichier retourné et leur re-confection avec ces données complémentaires intégrées pour chacun dans leur onglet du même nom pour validation

Pour cela j’ ai réalisé 2 procédures une qui est déclenchée avec le bouton « Traitement des fichiers managers » onglet « Propositions » l’autre avec le bouton « Dispatch consolidation managers » de l’onglet « Feuil1 »
Pour la première de ces procédures il faut renseigner onglet « Paramètres » la cellule I2 :
Mettre le chemin du répertoire qui détient les fichiers à traiter à défaut « ce classeur » si le répertoire est celui de ce fichier
Privilégier un répertoire avec la présence d’un minimum de fichiers un nombre important de ceci pourrait alourdir le temp d’exécution et de ceux retournés à traiter uniquement la présence des premiers au moment de l’envoi par exemple altèrerait le résultat
J’ai mis le bouton de la deuxième procédure onglet « Feuil1 » afin de profiter des traitements déjà en place (simplicité de conception) et de permettre à cette onglet de pouvoir à loisir changer de nom comme tu me la demandé

J’ai comme tu le souhaitais renommé l’onglet « Coordonnées » en « Paramètres » en adaptant toutes les procédures

Ton fichier ci-joint avec toutes ces évolutions (onglet « Proposition » colonne P à AA des données résultat de mes tests)

Fais des essais et dis moi

Base de données_revue salariale.xlsm (39,4 Ko)

Bonjour,

Je viens de tester avec votre dernière version. C’est juste parfait, je n’ai rien à dire…
Je vais tester avec mes propres données pour voir s’il n’y a pas de dysfonctionnements autres mais ça m’a l’air super!
Du coup, j’ai tenu compte de votre dernier message et pas des 2 autres.

Je test et je vous redis, merci beaucoup !!!

Bonjour

Merci pour ce retour

N’oublies pas de valider ma réponse un plus sympathique

A ta disposition quand tu le souhaites

Je viens de tester avec 250 lignes dans le fichier et il s’arrête à la 4ème ligne dans la création des fichiers. Il faudrait que toutes les macros prennent en considération au moins 1000 lignes dans les fichiers au cas ou.

Je vous remets à disposition les fichier mis à jour :
Base de données_revue salariale.xlsm (73,0 Ko) Livret_revue salariale.xlsm (55,3 Ko)
A votre dispo si besoin.

Bonjour

Attention ta colonne A n’est pas remplie jusqu’à la dernière ligne
Le traitement se base dessus pour déterminer celle qui sera la dernière à traiter
Dans ton fichier la dernière donnée de cette colonne est en ligne 5 donc le traitement s’exécute jusqu’à la ligne 5
Soit tout saisir dans cette colonne soit me donner une colonne qui aura une donnée dans la dernière ligne à traiter

Je viens de remplir la colonne A jusqu’à la dernière ligne cela fonctionne parfaitement pour moi

Essaies de ton côté et dis moi

Bonjour,
Je vous remercie pour votre dernière intervention. Désolée de ne pas être revenue plus tôt. Je suis en phase de test.
La première étape se déroule bien cad de la création des fichiers de managers.
Par contre, la seconde étape quand j’ai recu tous les fichiers des managers et que je veux tout rapatrier dans mon fichier Base de données_revue salariale, cela ne fonctionne pas. Peut-être parce que j’ai ajouté deux colonnes manquantes dans cet onglet (mais les onglets Proposition dans « Base de données_revue salariales » et « Livret revue salariale » correspondent).
Les fichiers retour sont bien dans le même répertorie que la classeur exécutif de la macro. Donc je ne comprend pas trop.

Savez-vous pourquoi cela ne fonctionne pas ? Pouvez-vous m’aider.
En vous remerciant par avance.

Base de données_revue salariale_EX.xlsm (84,0 Ko)

Bonjour

Enfin des nouvelles !!!

Après analyse la récupération des fichiers des managers fait appel à chacun d’entre eux sous leur nom d’enregistrement
Le traitement analyse le nom de chaque fichier de type xlsm dans le répertoire cité onglet « Paramètres » cellule I2

celui-ci sur la base du nom d’enregistrement effectué détecte la partie de ceux-ci cité onglet « BDD » colonne F
dans les premiers fichiers fournis « Manager »
copie :

Or sur ce dernier fichier que tu me fournis celui-ci à quelque peu été modifié pour devenir « MANAGER »
et non « Manager »
copie

d’où ta déconvenue

Les traitements offrent beaucoup d’avantage en terme de rapidité de fiabilité et de confort mais sont très exigeants en terme de rigidité

La moindre évolution (ici celle de la casse) dans ses paramètres utilisés et c’est la catastrophe

J’ai corrigé la procédure avec ce changement et tout refonctionne

Attention donc à ce nom qu’utilise cette procédure « MANAGER » à ne pas modifier pour lui permettre de cibler les bons fichiers d’un répertoire sur lequel il doit s’appuyer (cette donnée est utilsée pour confectionner le nom du fichier enregistré)

Ton fichier adapté

Testes et dis moi

Base de données_revue salariale_EX.xlsm (77,9 Ko)

Bonsoir,
D’accord pour la mise en forme. Mais vous imaginez bien que dans mon fichier Manager 1 ou MANAGER 1 porte son vrai nom + prénom.
Donc il n’est pas une condition, il faudrait qu’il puisse venir chercher tous les fichiers des managers composés de leur nom et prénom.
En vous remerciant par avance.

Bonjour
Sur quel critère dois se baser le traitement pour cibler dans un répertoire les bons fichiers à utiliser pour la récupération des données ?
Il est impératif d avoir un indice pour ne pas traiter des fichiers étrangers avec des risques de désordre dans le résultat obtenu
Merci de me dire