Lier 2 fichiers Excel dont l'esclave est généré par macro

Bonjour,

Ma demande me semble un peu complexe en tous cas pour mon niveau.

J'ai un fichier excel avec une feuille dans laquelle j'ai une liste de nom de personnes.

Dans ce même fichier j'ai une macro qui me génère un autre fichier dans lequel je peux faire le tri dans la liste des noms.

Je souhaiterais de l'aide pour créer un lien entre mes 2 fichiers afin d'avoir automatiquement dans le fichier esclave les noms ajoutés dans le fichier maître.

Merci à vous.

Bonjour

Tu devrais joindre ton fichier...en changeant les noms si nécessaire.

Bye !

gmb a écrit :

Bonjour

Tu devrais joindre ton fichier...en changeant les noms si nécessaire.

Bye !

Bonsoir,

Est-ce que je peux te le joindre en MP, car j'ai pas mal de données un peu confidentielles à l'intérieur?

Merci pour ton aide.

Bonjour,

Je souhaiterais de l'aide pour créer un lien entre mes 2 fichiers afin d'avoir automatiquement dans le fichier esclave les noms ajoutés dans le fichier maître.

C'est ce que personnellement j'éviterais de faire...

Ta macro générant les fichiers secondaires pourrait très bien être déclenchée après modification du fichier principal (sur évènement ou non selon contexte) et ouvrir le fichier pour le compléter, ou s'il n'existe pas le créer à cette occasion...

Cordialement.

Bonjour guillaume7684, (gmb, MFerrand)

Même si je ne comprends pas bien le pourquoi du comment de la chose ?

Je veux dire simplement pourquoi ne pas trier dans le fichier maître tout bêtement... je suppose qu'il doit s'agir d'un fichier "brut" ou "généré" par un import dans Excel mais

gmb a écrit :

Tu devrais joindre ton fichier...en changeant les noms si nécessaire.

parce que effectivement, sans un exemple concret il va être difficile de répondre au plus juste à ton problème

ce à quoi tu réponds

guillaume7684 a écrit :

Est-ce que je peux te le joindre en MP, car j'ai pas mal de données un peu confidentielles à l'intérieur?

as-tu remarqué que nous utilisons tous Excel pour gérer nos données (confidentielles)

Si ton fichier comporte "trop" de lignes pour tout "anonymiser" met une "copie conforme" de la présentation générale avec quelques infos significatives, ou alors efface les chiffres d'affaires, les n° de téléphones, le nom des clients, indiquent à la place des CA fictifs, des n° tel que 11/11/11/11/11, 22/22/22/22/22, des sté STE BIDON, STE MACHIN, STE TRUC

En gros, ou autrement expliqué, fais nous une maquette significative de tes 2 fichiers pour que nous puissions tester une solution et répondre à ton problème.


à MFerrand

MFerrand a écrit :

C'est ce que personnellement j'éviterais de faire...

avec lequel néanmoins (ou en plus) je suis tout à fait d'accord (cher M(aître)Ferrand )

J'ajouterais même pourquoi ne pas faire la chose encore plus simple :

  1. Le fichier esclave n'existe pas en tant que tel (il s'agit juste "conteneur" vide à chaque ouverture)
  2. Puis lors de cette fameuse ouverture (lorsque l'on veut l'utiliser donc) il va chercher (via l'event Worikbook_Open) les données dans le fichier maître
  3. Au besoin il peut être "cadré" (je veux dire avec une présentation particulière, déjà "préparer" pour permettre des tris, filtres...)
  4. Puis au final, pour être toujours prêt à recevoir les données du "maître" se vide à chaque fermeture

Mais forcément sans PJ ce ne sont que des hypothèses, qui vont sans aucun doute fournir des réponses qui ne sont pas celles de la réalité de ton problème

Salut Andrea73 !

Bel exemple de suggestion subtile ! (hors code dans ce cas...)

Amené en douceur, qui inverse l'orientation (classique) que je suggérais de mon côté, et qui pourrait fort bien s'avérer mieux adaptée à la situation. Cela élargit la discussion en l'absence d'éléments plus concrets...

Cordialement.

Bonjour guillaume7684, (gmb, MFerrand)


à MFerrand

MFerrand a écrit :

Salut Andrea73 ! Bel exemple de suggestion subtile ! (hors code dans ce cas...)Amené en douceur, qui inverse l'orientation (classique) que je suggérais de mon côté, et qui pourrait fort bien s'avérer mieux adaptée à la situation. Cela élargit la discussion en l'absence d'éléments plus concrets...

mais je suis toujours dans la subtilité

Concernant en particulier

MFerrand a écrit :

Cela élargit la discussion en l'absence d'éléments plus concrets...

j'espère que je n'ai pas vexé guillaume7684 sinon la discussion va couper court !

à guillaume7684

Comme je suis bon prince, pour la beauté du geste et celle du code (qui plaira sans doute à MFerrand ) voici ma proposition, dans la droite ligne de mon précédent message...

Etant donnée le peu d'élément de départ....


Quelques explications quand même...

J'ai supposé

  1. Un fichier maître dans lequel des données viennent s'ajouter, se modifier, se supprimer, se filtrer, se trier... au gré de "on ne sait toujours pas quoi, ni comment, ni pourquoi, ni quand, ni où, ni rien aussi "
  2. Un fichier esclave
      qui est la copie presque conforme du fichier maître (en présentation)
    • qui contient les entêtes de colonnesqui peuvent être différentes que dans le fichier maître
    • qui doivent être dans le même ordre que le fichier maître
  • qui est toujours vide au chargement
  • qui récupère les données du fichier maître dès l'ouverture
  • avec lequel on peut faire ce que l'on veut (même effacer toutes les données)
      puisqu'il est toujours vidé avant la fermeture et donc enregistré vide de toute façon
    1. le point précédent offre d'ailleurs une sécurité en cas de fausse manipulation, puisqu'il suffit de fermer l'esclave pour retrouver les "bonnes données" à la prochaine ouverture - et donc en le ré-ouvrant tout de suite après
  • au cas où une trace du travail (dans l'esclave) doit être sauvegardé il suffit de l'enregistrer avant de le fermer !
  • à mon avis cette solution offre une alternative à la création du fichier esclave à chaque fois puisqu'il est déjà prêt

  • PS/

    il faut ouvrir le fichier maître en premier pour voir comment il se présente, faire des tris avec puis le fermer, en l'enregistrant avec les tris effectués

    puis ensuite ouvrir le fichier esclave qui va ire les informations du fichier maître telles qu'enregistrées

    PPS/

    lors de la 1ère ouverture du fichier esclave "il va planter" sur l'ouverture du fichier maître - cela parce que j'ai mis un nom de chemin (pathMaitre) bidon dans les constantes du module

    pour l'ouvrir il faut corriger ce chemin en le remplaçant par le chemin correct du fichier maître

    Bonjour,

    Désolé pour mon temps de réponse, j'étais en déplacement.

    Voici mon fichier, il y a un léger bug à l'exécution de la macro, c'est simplement parce qu'en fonction du nom du client son logo est inséré en haut de la page. Or j'ai modifié le nom des clients et les images ne sont pas jointes.

    Merci pour votre aide.

    31donnees.xlsm (34.04 Ko)

    Bonjour,

    Merci pour votre aide.

    Bonjour,

    Avez-vous regardé mon fichier?

    J'espère que vous pourrez m'aider.

    Merci.

    Bonjour guillaume7684, (le fil)

    Il y a quelque chose que j'ai "loupé" ou alors j'ai pas bien compris la finalité...

    Ton fichier n'a rien à voir avec la question que tu poses, au début tu parles de lier des fichiers

    guillaume7684 a écrit :

    J'ai un fichier excel avec une feuille dans laquelle j'ai une liste de nom de personnes. Dans ce même fichier j'ai une macro qui me génère un autre fichier dans lequel je peux faire le tri dans la liste des noms. Je souhaiterais de l'aide pour créer un lien entre mes 2 fichiers afin d'avoir automatiquement dans le fichier esclave les noms ajoutés dans le fichier maître.

    or dans ton exemple je ne vois pas de notion de fichier maître... en réalité dans la procédure tu fais une création (ou modification) d'un fichier portant le nom d'un client précis... quel est la relation maître-esclave que tu décrivait au début ?

    Explique mieux ce que tu cherches à faire, parce que là je suis un peu perdu

    De plus j'aimerais comprendre pourquoi dans le fichier exemple il y a 2 listes de "clients" celle de la liste déroulante dans l'onglet [Prestation] et celle de l'onglet [Liste]

    Ou alors l'onglet [Liste] représente le fichier que tu considères comme esclave... mais dans ce cas là, pourquoi nommes les fichiers "générés" par ta procédure par le nom du client ? bref comme je le disais plus haut

    Bonjour Andréa73,

    Désolé je me suis peut être mal exprimé dans mon post de départ.

    Dans le fichier données.xls mis en ligne j'ai 2 feuilles, 1 feuille nommée "liste" et 1 feuille nommée "prestation".

    Dans la feuille "liste" je saisis des intérimaires (nom, prénom, ...).

    Dans la feuille "prestation", je saisis le nom de mon client qui me demande de lui trouver des intérimaires, la date et le lieu de la prestation.

    Quand je lance la macro "nouveau classeur", ça me créé un nouveau fichier excel, nommé avec le nom du client et le mois de l'année, et chaque feuille est nommée en focntion de ce que j'aurais saisi comme date et lieu de prestation, cette macro fonctionne comme je le souhaite.

    Par exemple un client m'appelle le lundi, j'exécute la macro en renseignant la feuille "prestation", et sur la nouvelle feuille créée je sélectionne les intérimaires que je souhaite déléguer à cette prestation à l'aide du filtre, et j'enregistre mon nouveau classeur.

    Mon problème est que si par exemple il me manque un intérimaire que je n'ai pas dans ma liste de départ (sur le fichier données.xls), et qu'après avoir passé une annonce sur internet je le trouve et qu'il vienne s'inscrire le mercredi. Du coup j'ouvre mon fichier qui a été créé par ma macro avec les détails ma prestation saisie le lundi, mais dans ma liste je n'ai pas l'intérimaire venu s'inscrire le lundi, forcément car je ne l'ai enregistré que dans mon fichier "données.xls".

    Comment pourrais-je faire pour cliquer sur un bouton dans mon nouveau fichier créé qui me permettrait de réimporter les nouveaux intérimaires ajoutés dans le fichier "données.xls" sans modifier les intérimaires déjà filtrés dans mon nouveau fichier?

    Pas facile à expliquer.

    La personne qui m'a créé ma macro me dit qu'on atteint les limites d'excel avec ma demande et que je devrais passer sous access.

    Merci pour votre aide.

    Bonjour à tous en passant...

    J'ai pas tout suivi, mais est-ce que tu te sers du fichier créé ?

    Que deviennent les indications du fichier maître ?

    Pourquoi n'y a-t-il pas de référence au client dans la feuille Liste ?

    Le but de la manoeuvre m'échappe un peu, j'ai l'impression que le classeur dépendant ne sert qu'à mémoriser le contrat... Dans ce cas, la création d'un nouveau classeur écrasant le précédent enregistrerait les modifications (il serait aussi possible bien sûr de les y introduire...) mais la gestion devrait relever exclusivement du classeur maître et les informations qu'il comporte me semblent un peu insuffisante pour le permettre...

    Cordialement.

    Bonjour (tous)

    Il me semblait que tu te lançais dans quelque chose de compliqué pour un problème relativement simple !


    Serais-tu capable d'expliquer pourquoi tu as vraiment besoin d'avoir un classeur par client et par mois... imagines un peu au mois de décembre avec une vingtaine de clients cela fait (12 x 20 = 120) classeurs à choisir pour répondre à la demande de ton client. Et je ne parle pas du moment où il faudra faire des recherches d'intérimaires, ou d'affectations sur des missions...


    Ne crois-tu pas qu'une base de données bien faite avec des filtres, pourrait largement répondre à ton besoin, et surtout avec beaucoup plus de simplicité ?


    Mais encore faut-il bien se mettre dans la tête qu'Excel à un mode de fonctionnement. On ne fait pas avec Excel comme au bureau. Il y a des classeurs et des feuilles aussi certes, mais Excel est là pour simplifier et non pour reproduire. Et cet adage est valable pour l'ensemble du raisonnement informatique.

    Comme disent certains, il ne faut pas penser "papier-crayon"

    MFerrand a écrit :

    Bonjour à tous en passant...

    J'ai pas tout suivi, mais est-ce que tu te sers du fichier créé ?

    Que deviennent les indications du fichier maître ?

    Pourquoi n'y a-t-il pas de référence au client dans la feuille Liste ?

    Le but de la manoeuvre m'échappe un peu, j'ai l'impression que le classeur dépendant ne sert qu'à mémoriser le contrat... Dans ce cas, la création d'un nouveau classeur écrasant le précédent enregistrerait les modifications (il serait aussi possible bien sûr de les y introduire...) mais la gestion devrait relever exclusivement du classeur maître et les informations qu'il comporte me semblent un peu insuffisante pour le permettre...

    Cordialement.

    Bonjour MFerrand,

    Oui je me sers du fichier créé pour regrouper mes intérimaires par prestation client, et aussi car une fois la liste complète j'envoie un PDF de la feuille à mon client qui lui sert aussi de feuille d'émargement le jour de la prestation.

    Concernant les indications du fichier maitre, la liste d'intérimaires est alimentée en permanence, et les données de la feuille prestation sont changées à chaque création de prestation, en fonction du client, de la date et du lieu de la prestation.

    Je n'ai pas de référence au client dans la feuille liste car chaque intérimaire n'est pas lié à un client, car à chaque nouvelle prestation créée, les intérimaires délégués ne sont pas les mêmes.

    Mon souci est de savoir comment faire quand par exemple je crée une prestation (avec la macro), je filtre des intérimaires dans le nouveau fichier créé, j'enregistre. Et après quand j'alimente mon fichier maitre avec de nouveaux intérimaires et que je veux qu'ils apparaissent dans la liste d'intérimaires de mes fichiers créés par la macro. Bien sûr je pourrais recréer complètement le fichier avec la macro, mais je perds les intérimaires filtrés les jours précédents.

    Merci à tous pour votre aide.


    andrea73 a écrit :

    Bonjour (tous)

    Il me semblait que tu te lançais dans quelque chose de compliqué pour un problème relativement simple !


    Serais-tu capable d'expliquer pourquoi tu as vraiment besoin d'avoir un classeur par client et par mois... imagines un peu au mois de décembre avec une vingtaine de clients cela fait (12 x 20 = 120) classeurs à choisir pour répondre à la demande de ton client. Et je ne parle pas du moment où il faudra faire des recherches d'intérimaires, ou d'affectations sur des missions...


    Ne crois-tu pas qu'une base de données bien faite avec des filtres, pourrait largement répondre à ton besoin, et surtout avec beaucoup plus de simplicité ?


    Mais encore faut-il bien se mettre dans la tête qu'Excel à un mode de fonctionnement. On ne fait pas avec Excel comme au bureau. Il y a des classeurs et des feuilles aussi certes, mais Excel est là pour simplifier et non pour reproduire. Et cet adage est valable pour l'ensemble du raisonnement informatique.

    Comme disent certains, il ne faut pas penser "papier-crayon"

    Bonjour Andréa73,

    Oui mais ma macro créé mon fichier dans le dossier nommé pour chaque client, du coup par an je n'aurais que 12 fichiers à gérer par dossier, mais cela ne me dérange pas plus que ça.

    Oui en effet je suis d'accord avec toi qu'ACCESS serait peut être plus approprié.

    J'ai aussi commencé à créer un fichier sur ACCESS, si quelqu'un maitrise je veux bien son aide.

    Merci.

    (re)

    Je n'ai pas dit

    guillaume7684 a écrit :

    Oui en effet je suis d'accord avec toi qu'ACCESS serait peut être plus approprié.

    J'ai dit il faut penser base de données, c'est différent !

    Je préconise

    Une liste d'intérimaires

    Une liste de clients

    Une liste de contrats

    Une 4ème feuille pour gérer tes PDF

    Des recherches/filtres/tri et autres bien pensés

    Et tout cela dans un seul classeur et presque pas de macro-cmdes


    Quant à ce point sur lequel je voudrais revenir

    guillaume7684 a écrit :

    La personne qui m'a créé ma macro me dit qu'on atteint les limites d'excel avec ma demande et que je devrais passer sous access.

    Excel n'a pas de limite et aujourd'hui mieux adapté à ce genre de "petite" gestion (en terme de volume de données)

    Alors la personne qui a créée la macro devrait continuer à travailler sur Access et ne plus faire d'Excel...


    Oui je me sers du fichier créé pour regrouper mes intérimaires par prestation client, et aussi car une fois la liste complète j'envoie un PDF de la feuille à mon client qui lui sert aussi de feuille d'émargement le jour de la prestation.

    Je ne vois pas là d'écriture particulière ne figurant pas ailleurs, par conséquent la nécessité d'un fichier est tout à fait sujette à caution (je rejoins tout à fait Andrea sur ce point !)

    L'export d'un PDF destiné au client, et son archivage éventuel, me paraît tout à fait suffisant pour répondre aux besoins exprimés.

    Je n'ai pas de référence au client dans la feuille liste car chaque intérimaire n'est pas lié à un client, car à chaque nouvelle prestation créée, les intérimaires délégués ne sont pas les mêmes.

    Pourtant, si l'intérimaire n'est lié à aucun client, c'est de façon très générale, il est momentanément lié au client pour lequel il travaille, et ce lien non permanent définit son statut de disponibilité ou indisponibilité à tel ou tel moment. A ce titre, ce me semble un élément suffisamment important de la gestion pour être consigné et tenu à jour en temps réel.

    Cela rejoint encore Andrea car cela plaide pour une base de données unique... Et si sélectionnant mon client, j'obtiens simultanément l'affichage des intérimaires à lui affecté actuellement, j'ai le contenu de mon classeur secondaire sous les yeux, si je dois compléter, je fais afficher les disponibles et je complète, etc.

    Cordialement.

    andrea73 a écrit :

    (re)

    Je n'ai pas dit

    guillaume7684 a écrit :

    Oui en effet je suis d'accord avec toi qu'ACCESS serait peut être plus approprié.

    J'ai dit il faut penser base de données, c'est différent !

    Je préconise

    Une liste d'intérimaires

    Une liste de clients

    Une liste de contrats

    Une 4ème feuille pour gérer tes PDF

    Des recherches/filtres/tri et autres bien pensés

    Et tout cela dans un seul classeur et presque pas de macro-cmdes


    Quant à ce point sur lequel je voudrais revenir

    guillaume7684 a écrit :

    La personne qui m'a créé ma macro me dit qu'on atteint les limites d'excel avec ma demande et que je devrais passer sous access.

    Excel n'a pas de limite et aujourd'hui mieux adapté à ce genre de "petite" gestion (en terme de volume de données)

    Alors la personne qui a créée la macro devrait continuer à travailler sur Access et ne plus faire d'Excel...


    Re,

    Oui en effet tu n'as pas parlé d'ACCESS, mais c'est le mot BDD qui m'y a fait pensé !!

    D'après ce que tu dis je devrais essayer de gérer tout dans un seul fichier, est-ce exact? Ca permettrait d'avoir ma liste d'intérimaires toujours à jour pour pouvoir les ajouter au jour le jour dans chaque prestation.

    Mais par contre pour le coup ça va me faire un sacré nombre de feuilles à gérer !!

    Le top aurait été d'avoir une feuille par client toujours dans le même et unique fichier, et avoir dans chaque feuille client "des sous feuilles" pour chaque prestation, mais impossible sous excel je pense.


    Pourtant, si l'intérimaire n'est lié à aucun client, c'est de façon très générale, il est momentanément lié au client pour lequel il travaille, et ce lien non permanent définit son statut de disponibilité ou indisponibilité à tel ou tel moment. A ce titre, ce me semble un élément suffisamment important de la gestion pour être consigné et tenu à jour en temps réel.

    Cela rejoint encore Andrea car cela plaide pour une base de données unique... Et si sélectionnant mon client, j'obtiens simultanément l'affichage des intérimaires à lui affecté actuellement, j'ai le contenu de mon classeur secondaire sous les yeux, si je dois compléter, je fais afficher les disponibles et je complète, etc.

    C'est vrai que vous avez raison, mon objectif futur est aussi de pouvoir gérer la disponibilité de l'intérimaire.

    La gestion sera simple car chaque prestation aura un paramètre MIDI ou SOIR., et la disponibilité de l'intérimaire sera MIDI ou SOIR.

    Est-ce que excel pourra aussi gérer cela?

    Mais par contre pour le coup ça va me faire un sacré nombre de feuilles à gérer !!

    Je suivrai Andrea 4 feuilles suffisent !

    Je veux bien t'en accorder une 5e si tu veux dissocier une base de données contrats de façon à en conserver l'historique... encore que cela pourrait fort bien se confondre avec la feuille exportable en pdf...

    Le principe est que tu as toutes les données dans tes bases, tu n'as donc aucun besoin de les dupliquer dans de multiples feuilles que tu ne peux regarder en même temps !! Une feuille suffit pour afficher n'importe quel contrat que tu veux consulter... la feuille n'a besoin d'exister que le temps que tu la regardes ! la même peut donc servir à tous les contrats !!!

    Cordialement.

    MFerrand a écrit :

    Mais par contre pour le coup ça va me faire un sacré nombre de feuilles à gérer !!

    Je suivrai Andrea 4 feuilles suffisent !

    Je veux bien t'en accorder une 5e si tu veux dissocier une base de données contrats de façon à en conserver l'historique... encore que cela pourrait fort bien se confondre avec la feuille exportable en pdf...

    Le principe est que tu as toutes les données dans tes bases, tu n'as donc aucun besoin de les dupliquer dans de multiples feuilles que tu ne peux regarder en même temps !! Une feuille suffit pour afficher n'importe quel contrat que tu veux consulter... la feuille n'a besoin d'exister que le temps que tu la regardes ! la même peut donc servir à tous les contrats !!!

    Cordialement.

    En fait je dois garder une trace (une image) de toutes les prestations créées même un an après.

    J'ai commencé à créer un fichier avec 3 feuilles (Intérimaires, clients et prestations). Je pense en créer une pour chaque client (soit environ une dizaine). Par contre après je coince, je ne vois pas comment faire.

    Rechercher des sujets similaires à "lier fichiers esclave genere macro"