Compilation fichiers en un seul sur base d'un répertoire

Bonjour à tous,

C'est mon premier post ici malgré ma consultation occasionnelle de tous vos post plus utiles les uns que les autres pour me faire progresser sur excel. Je commence tout doucement à maîtriser certaines fonctionnalités mais VBA reste un langage que j'ai encore du mal à comprendre ... Et pour mon problème je pense que VBA est la solution mais je n'ai pas les connaissances nécessaires pour le résoudre d'où ma sollicitation.

J'ai recherché dans plusieurs posts afin d'essayer de trouver un exemple de macro qui pourrait fonctionner mais je ne trouve rien jusqu'à présent, tout du moins je n'arrive pas à l'adapter pour mon cas.

Mon soucis est le suivant : Je veux pouvoir extraire l'information d'un même onglet dans plusieurs fichiers regroupés dans un dossier afin d'implémenter un fichier maître que je mettrais à jour chaque semaine, à chaque fois une 30aine de fichiers me seront envoyés avec un nom similaire, exemple_XXX. Je souhaiterais donc pouvoir appeler juste le début du nom du fichier, à ce que j'ai pu comprendre ce serait la fonction DIR pour ensuite appeler "exemple*". Au sein de ce fichier je souhaiterais pouvoir récupérer les données que j'ai fait apparaître dans l'onglet que j'ai nommé "CSV" des cellules A3 à R3 (dans les fichiers joints "exemple de fichier à consolider"). Le problème que je rencontre aussi est que je n'arrive pas à faire en sorte que les lignes de données ne se suppriment pas lorsque la macro ouvre un autre ficher (la ligne importée du fichier précédent est généralement supprimée quand la macro tourne sur le fichier suivant) ...

Je vous avoue être totalement perdu dans VBA ... Je suis prêt à vous fournir toutes les informations nécessaires pour que nous puissions résoudre ce problème ensemble ...

Merci beaucoup d'avance

Bonjour,

voici un fichier contenant une macro de fusion de classeurs (générique).

Merci beaucoup pour ta réponse et de ta réactivité h2so4 ! Je vais regarder ça et essayer de l'adapter à mon problème

Bonjour h2so4,

Votre Macro marche parfaitement, cependant, un décalage s'effectue à chaque nouveau fichier scanné et je n'arrive pas à retrouver la ligne correspondante dans votre code ..

Par exemple la ligne du fichier A se compile entièrement mais la ligne du fichier B s'implémente en décalant les de +1 les cellules copiées.

Plus précisément, dans mon fichier 1 à implémenter j'aurais dans mon onglet sélectionné (pour l'exemple l'onglet sera Z) une cellule (A1 pour l'exemple) avec un lien vers la cellule A2 de l'onglet Y du même fichier. Quand la macro passe au fichier suivant elle prendra toujours bien la cellule A1 de l'onglet Z du fichier 2 cependant le lien de la cellule sera décalé, il n'ira plus prendre la cellule A2 de l'onglet Y mais la cellule A3.

J'ai essayé de faire des tests sur votre code mais je n'arrive pas à trouver la ligne qui effectue cette action ...

Si vous pouviez me donner des indices de résolution je vous serait très reconnaissant !

Merci beaucoup.

Bonne journée

Edit : Si jamais je ne suis pas clair dîtes le moi j'apporterais des précisions.

Bonjour,

je ne pense pas que je puisse reproduire le problème dont tu parles avec les 2 fichiers que tu as fournis.

Peux-tu m'expliquer comment reproduire le problème en mettant des fichiers complémentaires si nécessaires ?

Merci

Bonjour,

Tu as une solution beaucoup plus simple pour ce que tu veux faire.

Avec Excel 2016 et Transformer et récupérer (Power Query en natif), tu peux facilement consolider un ensemble de fichiers d'un dossier.

Je mets un lien qui explique (simplement) la démarche à effectuer.

http://cooking-excel.com/2016/08/fusionner-fichiers-dossier/

Cdlt.

Merci de ta réactivité, c'est très appréciable !

Alors, quand je clique sur le bouton pour lancer la macro dans le "Fichier consolidation" je sélectionne les fichier comprenant le mot *Exemple* pour ensuite aller prendre l'onglet "CSV", jusque là tout va bien la macro lit les fichiers et copie colle les différents lignes les unes à la suite des autres.

Le problème vient (à mes yeux) du lien dans les cellules de l'onglet CSV des fichiers Exemples. Pour la première ligne aucun soucis, cependant, pour la deuxième, troisième et ainsi de suite un "+1" se fait dans les lien des cellules de l'onglet CSV. Si pour la première ligne la macro prenait le lien dans la cellule c1 de l'onglet CSV ayant un lien vers la cellule O20 de l'onglet "fiche mission" pour la deuxième ligne elle ira prendre le lien de la cellule c1 de l'onglet CSV du deuxième fichier mais le lien ne sera plus vers la cellule O20 mais O21, pour la troisième ce sera la cellule O22 et ainsi de suite.

Suis-je assez explicite ? Je peux peut-être simplifié si tu ne comprends pas.

Encore merci !

9exemple-c.xlsx (33.50 Ko)
8exemple-b.xlsx (33.51 Ko)
5exemple-a.xlsx (33.51 Ko)

Je regarde ça de suite Jean-Eric, merci beaucoup !

Après avoir encore plus étudier le code avec un collègue qui s'y connaissait un peu plus que moi nous pensons que cela vient du fait qu'il faudrait que la macro puisse coller les données en valeur et ne pas copier les liens.

Je vais essayer de trouver comment faire cette action.

Merci encore pour votre aide.

Rechercher des sujets similaires à "compilation fichiers seul base repertoire"