Copier un fichier dans un autre selon nom d'un onglet

Bonjour à tout le forum,

Un problème se pose à moi et j'espère que vous pourrez m'aider.

J'ai un fichier où grâce à un Userform je peux créer un nouvel onglet avec un nom spécifique.

Et je dois remplir cet onglet, nommée par exemple : Entreprise A, avec le contenu d'un autre fichier Excel nommé aussi Entreprise A.

Donc je cherche une macro qui irait copier le contenu d'un fichier, en recherchant ce fichier par le nom de l'onglet. C'est-à-dire, que si mon onglet, dans mon fichier "récap" est nommé "Entreprise A" la macro irait chercher le Fichier "Entreprise A.xlsx". Les fichiers seront toujours dans les mêmes dossiers par trimestre.

Merci d'avance pour vote aide.

Cordialement,

Momochi

Bonjour,

Pourquoi ne pas ramener la feuille plutôt que d'en créer une pour copier... ?

Bonjour MFerrand,

Merci de ta réponse.

Le problème est que chaque trimestre je dois ressortir d'un programme de comptabilité une liste par entreprise, que je nomme selon le nom de cette entreprise.

Et dans mon fichier de récapitulation, je crois créer un onglet pour chaque entreprise, avec le tableau repris du fichier de comptabilité.

Mon but est de pouvoir copier les données des fichiers sortis dans le fichier récap, sorti chaque trimestre, dans l'onglet approprié. J'aimerais donc pour insérer le fichier par un bouton par exemple. La macro utiliserait le nom de l'onglet actif pour rechercher le nom du fichier qui serait le même.

Par exemple, nom de l'onglet : "Entreprise_A" nom du fichier : "Entreprise_A.xlsx"

J'espère avoir été clair .. ?

J'attends avec impatiente ta réponse.

Cordialement,

Momochi

Ce que je disais, c'est qu'elle peut aller chercher l'onglet Entreprise_A dans le fichier Entreprise_A pour en importer une copie dans le fichier Récap.

J'aurait besoin de la solution aussi si c'est possible..

Je pense qu'on s'est mal compris.

J'ai un fichier "Récapitulation du XX trimestre" où je dois créer des onglets avec le nom des entreprises. Ces onglet doivent être rempli avec un tableau. Ce tableau je peux l'obtenir uniquement sortant un fichier Excel d'un programme de comptabilité. Ces fichiers concerne à chaque fois une période spécifique pour une entreprise. Et tout ça se trouve dans un seul dossier.

Ce que je voulais faire c'est insérer une macro dans les onglets qui me permettrais d'aller copier ce tableau depuis le fichier de la compta jusque dans mon fichier "récapitulation". Je veux automatiser cette étape car je dois la répété pour chaque entreprise et chaque trimestre.

Donc je vais nommer les onglets de la même façon que les fichiers de la compta pour que la macro recherche le fichier dans le dossier qui concerne l'onglet..

Est-ce que c'est plus clair ?

Cordialement,

Momochi

Je crois en effet qu'on a un peu de mal à se comprendre.

Je répète donc que si on doit aller chercher un tableau sur une feuille ailleurs, il est plus économique de prendre la feuille (une copie bien sûr, elle restera dans le classeur original) pour la ramener. Je n'ai jusqu'à présent rien vu ou entendu de nature à s'y opposer.

De même ensuite, si pour une raison quelconque cette méthode ne serait pas utilisable, plutôt que de copier les données (c'est à dire les charger dans le presse-papier pour les coller ensuite ailleurs), je préfère aussi les prélever (sans intermédiaire) pour les réinsérer...

Et tu te fais une idée fausse des macros en parlant de macro insérée dans un onglet : une macro VBA c'est du code, c'est à dire du texte formé de mots-clé, stocké sur un support qu'on appelle module, qui devient un programme exécutable en étant traduit en langage machine par un interpréteur de commandes. Le programme fera ce que tu lui as dit de faire en utilisant des commandes appropriées et il accèdera aux feuilles concernées dès lors que tu lui auras fourni les adresses ou un moyen de les constituer.

Ce que je veux dire par macro c'est justement cette automatisation des tâches à effectuer mais qu'on délégué à la machine..

Sincèrement je ne comprends pas ce que tu essaie de me dire.

Si c'est pour ouvrir un fichier faire un : CTRL+A puis un CTRL+C ensuite reprendre le fichier récap dans l'onglet voulu puis faire un CTRL+V, c'est justement ce que je veux éviter.

Le problème c'est que dans mon fichier récap je vais avoir entre 15 à 30 onglets concernant les diverses entreprises. Je dois remplir chaque de ces onglet avec des tableaux.

Mais chaque tableau provient d'un fichier différent. C'est-à-dire, que j'aurais 15 à 30 fichier que j'aurais exporter du programme de comptabilité dans le dossier où se trouve le fichier récap.

Donc mon idée serait de nommer chaque onglet avec le nom de l'entreprise et de nommer chaque fichier export avec le nom de l'entreprise. Afin que les noms soient les mêmes.

Donc dès que je crée un onglet pour une entreprise, j'exécute la macro qui va rechercher le nom de l'onglet actif, donc où je me trouve, pour ensuite recherche le fichier export du même nom et copier les informations qui se trouve dedans pour les coller dans le fichier récap.

Tout ça a pour but de simplifier le travail à effectuer et le rendre plus rapide.

J'espère avoir simplifier les explications.. j'attends avec impatiente de tes nouvelles.

Cordialement,

Momochi

Je pense que tu ne le fais exprès,mais tout de même...

Soit : wsA = feuille Entr. A contenant tableau à récupérer.

With ThisWorkbook

wsA.Copy after:=.Worksheets(.Worksheets.Count

End With

ThisWorkbook étant naturellement le classeur récap.

Je m'excuse si je t'énerve, ce n'est nullement mon but..

Mais j'ai vraiment besoin de pouvoir créer cette macro ...

Ce que tu m'as donné est un bout de la macro ?

Cordialement,

Momochi

Bonjour tout le monde,

Momochi, si tu désires importer des données complémentaires d’un fichier à un autre, tu pourrais t’inspirer des fichiers ci-joints. Tu les places les trois dans le même dossier et tu n’ouvres que celui nommé Fichier Cible. Dans ce fichier tu peux voir qu’il y a déjà des données en place pour les deux entreprises présentes.

Si tu cliques sur le bouton en place sur la feuille ‘Base’, les deux fichiers individuels des entreprises sont visités d’une manière invisible et les données qui s’y trouvent sont reportées dans le fichier cible.

Il faudra bien entendu adapter la macro à ta situation personnelle, mais sans voir tes fichiers, c’est difficile d’avancer.

Cordialement.

39fichier-cible.zip (11.24 Ko)
27entreprise-1.zip (4.49 Ko)
19entreprise-2.zip (3.66 Ko)

Bonjour Yvouille,

Merci infiniment pour ta réponse.

Donc ça recherche bien le fichier selon le nom de l'onglet ?

Peux-tu aussi me dire quel sont les données pour que sa sélectionne toute la feuille ? Car étant donné que c'est un tableau dont je ne connais pas la longueur je me dis qu'il serait mieux que ca copie la feuille entière !

Désire tu que je te transmette les fichiers ?

Cordialement,

Momochi

Salut,

Momochi a écrit :

Donc ça recherche bien le fichier selon le nom de l'onglet ?

Tu n’as pas fait d’essai ?

Avec ma macro, tu vas copier exactement les données dont tu as besoin dans les fichiers des différentes entreprises – quel que soit leur nombre – et tu les ajoutes aux données en place sur la feuille de cette entreprise dans ton fichier cible. Le nombre de feuilles de ce fichier cible ne devient donc pas de plus en plus important. Et comme tu as dit que tu voulais faire le lien entre les noms des onglets du fichier cible et les noms des fichiers des entreprises, je ne vois pas comment ton nombre de feuilles pourrait augmenter sans cesse.

Momochi a écrit :

Désire tu que je te transmette les fichiers ?

Oui, absolument. Si possible le fichier cible et un exemple d’un fichier source.

A te relire.

Oui, j'ai testé bien sûr. Mais je préfère une confirmation supplémentaire.

Je te joins un fichier cible et un fichier à importer.

Non, il y a un nombre prédéfini d'entreprise, 36 pour être exact, et ce chiffre ne devrait pas augmenter ou voir légèrement.

J'attends avec impatience le résultat !!

Encore merci beaucoup à toi.

Je tiens aussi à te remercier MFerrand pour avoir pris la peine de t'intéresser à mon cas.

Cordialement,

Momochi

23fichier-cible.xlsm (31.96 Ko)
15entreprise-1.xlsx (13.63 Ko)

Rebonjour Yvouille,

Pourrais-je aussi te demander une autre chose, que je devrai ajouter au document.

Dans les onglets des entreprises je voudrais supprimer les lignes des tableaux qui ne contiennent pas divers mots.. Par exemple, "factures" "escomptes" "note de crédit"

Mais je ne trouve pas de macro pour supprimer les lignes ne contenant PAS ces mots.

Edit :

Finalement ça ne marchera pas car sa supprimera aussi les lignes du tableau..

Sauf s'il est possible de d'effectuer la recherche, pour la suppression, dans la colonne F entre la ligne contenant le "texte Libellé" et la ligne contenant "Totaux"..

J'avais pas pensé à ça .. :/

Salut,

Tu as d’un côté un fichier cible avec 36 feuilles aux noms de tes 36 entreprises ainsi qu’une feuille nommée ‘’ Pourcentage et liste entreprise’’.

Si je t’ai bien compris, tu désires ouvrir d’une manière invisible les 36 fichiers source nommés exactement comme les onglets des feuilles du fichier cible et en exporter des copies de feuilles.

Voici alors quelques questions :

1) Pourquoi ne pas passer en revue tes entreprises par l’intermédiaire de la liste de la plage A6:A41 de la feuille ‘’ Pourcentage et liste entreprise’’ plutôt que de passer en revue les onglets ?

2) Si tu importes 36 nouvelles feuilles tu en auras donc 72 et ça deviendra vite ingérable. Que fais-tu exactement lorsque tu as importé ces feuilles ? Si c’est quelque chose d’automatisable, ce serait dommage de ne pas l’automatiser

3) Dans tes 36 fichiers sources, n’y a-t-il à chaque fois qu’une seule feuille ?

4) Si non, .le fichier visité d’une manière invisible s’ouvre-t-il sur la feuille à traiter ou faut-il encore la chercher ?

5) Dans ton exemple, la seule feuille en place se nomme ‘’ Tableau p. 1’’. Dans les 35 autres fichiers, la feuille à traiter se nomme à chaque fois différemment ?

J’en ai fini pour l’instant avec mes questions, je pense qu’avec tes réponses on pourra avancer un bout. Merci de reprendre ma numérotation pour ton retour.

A te relire.

NB : J’avais préparé ma réponse ci-dessous dans le train, sans voir que tu avais rajouté une nouvelle demande. Afin de ne pas se mélanger les pinceaux, traitons un problème après l’autre. Pour ton nouveau problème je suis certain qu’il y a une solution. Repose-moi ta question en temps voulu ou éventuellement que je regarde quand même ça entre temps.

Bien le bonjour Yvouille,

Merci pour ton retour.

Voici les réponses à tes questions.

1) Car je dois de toute façon importer ces données dans les différents onglets, ça m'est imposé..

2) Comment ça 72 ? Dans le fichier cible il a l'onglet de de récapitulation et il aura aussi les 36 onglets depuis les fichiers importés.

3) Oui, dans les fichiers 36 fichiers sources il y aura toujours qu'une feuille car c'est un tableau qui importer donc jamais plus.

4) -

5) Chacun de ces fichiers importés voit sont onglet être nommé : ‘’ Tableau p. 1’’. Car c'est le programme de comptabilité qui fait ça. Etant donné que je peux uniquement les importés un à la fois il seront toujours nommés de cette façon. Moi je m'occupe simplement de renommer le nom du fichier Excel importé.

Donc je vais toujours renommer les fichiers d'une façon précise pour chaque entreprise. Et comme tu as pu le remarquer dans le fichier cible j'ai ajouter un Userform pour créer un nouvel onglet. Là aussi j'utiliserais le même nom.

J'espère avoir répondu à toute tes questions.

J'attends avec plaisir ton retour.

Cordialement,

Momochi

Re-bonjour,

Pour l’instant j’ai l’impression qu’on patine un peu dans la semoule, mais je pense que dès que tout sera clair, on va pouvoir avancer à grands pas.

J’ai maintenant compris que tu ne veux pas importer des copies des nouvelles feuilles comprises dans tes 36 nouveaux fichiers sources – ce qui aurait fait 72 feuilles dans le fichier cible avec les 36 déjà en place – mais que tu ne veux importer que les données de ces 36 feuilles source sur les 36 feuilles cible déjà existantes. QUESTION 6) Est-ce bien cela ?

QUESTION 7) Si c’est bien cela, quelles sont les données déjà en place sur les 36 feuilles cible au moment d’un nouveau transfert ? Ou sont-elles à chaque fois vidée comme sur ton exemple fourni le 3 septembre ?? Si ce n’est rien de tout ça, dis-moi ce que je n’ai pas compris.

Tu n’as pas répondu à la deuxième partie de ma question 2. QUESTION 8) Que fais-tu exactement lorsque tu as importé ces feuilles données ? Si c’est quelque chose d’automatisable, ce serait dommage de ne pas l’automatiser.

Momochi a écrit :

Et comme tu as pu le remarquer dans le fichier cible j'ai ajouter un Userform pour créer un nouvel onglet. Là aussi j'utiliserais le même nom.

QUESTION 9) Tu parles bien là du rajout d’une nouvelle entreprise si nécessaire, tu ne crées quand même pas 36 nouvelles feuilles à chaque fois, ou bien ?

Je laisse vraiment tomber ton autre problème, autrement on va tout mélanger. Eventuellement que tu pourrais ouvrir un autre fil si ce deuxième problème n’a rien à voir avec le premier que nous traitons actuellement – dans ce cas, dis-moi quand même que tu l’as fait – sinon patientons un peu.

Amicalement.

Bonjour à toi Yvouille,

Je vais essayer de répondre à tout et le plus clairement possible.

Dans mon fichier cible j'ai la liste des entreprises, pour chaque entreprise je crée un onglet avec le nom de l'entreprise. Ensuite j'exporte de mon programme de comptabilité le fichier source de chacune de ces entreprises. Et je veux importer les tableaux des fichiers sources dans les onglets cible correspondant. Est-ce que tu as compris ce que je veut dire ?

Dans les onglets cibles, avec les noms des entreprise, il n'y a rien. Je créer à chaque fois ces onglets via mon userform. Et je dois justement remplir ces onglets avec le tableaux dans le fichier source.

Alors après avoir importé les fichiers sources dans mon ficher cible je dois créer un tableau des totaux, après je dois copier une image sous le tableau importé.. mais ce sont toute des choses qu'on peut pas automatiser car il a plusieurs critères..

Alors on me demande de créer et d'ajouter un nouvel onglet et importer le fichier source même si le tableau de celui-ci est vide...

Oui, concentrons nous sur le problème principal si on peut regarder par la suite tant mieux sinon tant pis .

Je reste à ton entière disposition pour toute question.

Cordialement,

Momochi

Bonjour,

La dernière fois, tu avais répondu à mes questions en reprenant ma numérotation et c’était parfait.

Cette fois tu reformules ce que j’ai déjà formulé avec d’autres mots et je dois à nouveau essayer de comprendre ce que tu m’explique de nouveau au lieu de me dire si ce que j’ai compris est correct ou non

Je vais toutefois tenter de te proposer un début de solution – puisque je commence quand même à bien comprendre ta philosophie de travail – mais ça va me prendre 2 à 3 jours. Merci d’être patient.

Si entretemps tu veux quand même répondre dans un style télégraphique à mes questions 6 à 9, tant mieux. Lorsque j’écris QUESTION 8 ), le Forum comprend QUESTION 8) - car 8 et ) sont les raccourcis de ce smiley - et je n’ai pas vu passer la chose lors de mon dernier message.

Cordialement.

Rechercher des sujets similaires à "copier fichier nom onglet"