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.
- Messages
- 1'123
- Excel
- 2013 FR
- Inscrit
- 18/09/2015
- Emploi
- Développeur Bureautique Indépendant (Excel)
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
parce que effectivement, sans un exemple concret il va être difficile de répondre au plus juste à ton problèmegmb a écrit :Tu devrais joindre ton fichier...en changeant les noms si nécessaire.
ce à quoi tu réponds
as-tu remarqué que nous utilisons tous Excel pour gérer nos données (confidentielles)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?
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
avec lequel néanmoins (ou en plus) je suis tout à fait d'accord (cher M(aître)FerrandMFerrand a écrit :C'est ce que personnellement j'éviterais de faire...
J'ajouterais même pourquoi ne pas faire la chose encore plus simple :
- Le fichier esclave n'existe pas en tant que tel (il s'agit juste "conteneur" vide à chaque ouverture)
- 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
- Au besoin il peut être "cadré" (je veux dire avec une présentation particulière, déjà "préparer" pour permettre des tris, filtres...)
- 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.
- Messages
- 1'123
- Excel
- 2013 FR
- Inscrit
- 18/09/2015
- Emploi
- Développeur Bureautique Indépendant (Excel)
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...
Concernant en particulier
j'espère que je n'ai pas vexé guillaume7684 sinon la discussion va couper court !MFerrand a écrit :Cela élargit la discussion en l'absence d'éléments plus concrets...
à guillaume7684
Comme je suis bon prince, pour la beauté du geste et celle du code (qui plaira sans doute à MFerrand
Etant donnée le peu d'élément de départ....
Quelques explications quand même...
J'ai supposé
- 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
" - 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
- puisqu'il est toujours vidé avant la fermeture et donc enregistré vide de toute façon
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.
Bonjour,
Merci pour votre aide.
Bonjour,
Avez-vous regardé mon fichier?
J'espère que vous pourrez m'aider.
Merci.
- Messages
- 1'123
- Excel
- 2013 FR
- Inscrit
- 18/09/2015
- Emploi
- Développeur Bureautique Indépendant (Excel)
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 ?
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.
- Messages
- 1'123
- Excel
- 2013 FR
- Inscrit
- 18/09/2015
- Emploi
- Développeur Bureautique Indépendant (Excel)
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.
- Messages
- 1'123
- Excel
- 2013 FR
- Inscrit
- 18/09/2015
- Emploi
- Développeur Bureautique Indépendant (Excel)
(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
Je veux bien t'en accorder une 5e
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.