Importer des feuilles sur une seule avec creation onglet

bonjour,

je voudrais savoir s'il est possible de réaliser une macro pour mon cas.

Dans mon cas de figure j'ai des fichiers d'inspections journalier ou le nom du fichier est la date du jour (exemple: 140103)

dedans j'aimerai récupérer :

  • Le titre du fichier pour avoir la date
  • La colonne Project No. (colonne A donc les projet, commence a la ligne 3)
  • La colonne Place (colonne C qui précise le lieu, commence aussi a la ligne 3)
  • La colonne Inspection item (colonne D qui précise le type d’inspection, commence aussi a la ligne ")

Bien sur j'ai plusieurs projets qui varie et un nombre d’inspection qui varie aussi.

J'aimerai pouvoir tout réunir dans un fichier excel en copiant que le texte, ceci dit la ou je sait pas si c'est possible

c'est que j'aimerai, pour chaque projet que la macro crée un onglet et colle toutes les infos de

tout les jours jusqu’il n'y en ai plus et bien sur crée de nouveau onglets si de nouveau projet apparaissent.

Vous pensez que c'est possible? si vous pouviez m'aide je suis un peu débutant mais j'aimerai faire quelque

chose de bien qui me permettrait plus tard des crées des graphiques

Merci pour votre générosité et votre talent :p

Bonjour et bienvenue sur le forum

Pourrais-tu joindre une copie de ton fichier ? l'image que tu as inséré dans ton message est illisible...

Bye !

Normalement si tu clique dessus sa t'ouvre une page avec limage zoomer

Sinon je vais esseyer d'en remettre une plus tard car je ne suis pas sur mon Pc

Merci en tout cas pour l'intérêt que tu y porte

Alors voilà une proposition.

Cela te convient-il ?

88recap-v1.xlsm (23.10 Ko)

Bonjour,

merci pour ta macro et ton travail.

J'ai quelque petite question vu que je suis un peu débutant sur le sujet.

Il y a t'il des lien que je doit rajouter car la macro s’exécute et me fait une erreur 13 a cette ligne

dte = CDate(Left(Cl.Name, 2) & " / " & Mid(Cl.Name, 3, 2) & " / " & Mid(Cl.Name, 5, 2))

il y a t'il besoin que je rajoute des choses dans la macro? car je voit pas ou je devrait mettre le lien du dossier pour allez récupérer toutes les infos par exemple .

Désolé mais serait-il possible de m'eclairsir sur le sujet ^^'',

Merci

re bonjour,

Autant pour moi la macro fonctionne parfaitement en l'insérant dans un fichier qui a le tableau d'inspection, mais enfaite je pensait plus a un fichier qui réuni tout mes fichier d'inspection. En gros la même chose mais que se soit un fichier qui gère la macro pour les réunir et mettre les inspection du jour a la suite dans l'onglet du projet le concernant. je sait pas si je suis clair ou pas ^^''' (pour exemple mon dossier est C:\Users\ADF\Desktop\Nouveau dossier et dedans j'ai d'autre dossier classer par année 2012/2013/2014)

il me crée un onglet Project No. en plus, je sait pas si c'est normal?.

Merci pour votre aide et vos reponse

Bonjour

Je ne comprends pas très bien tes explications.

Je suis parti d’un fichier journalier tel que tu le décris dans ton message initial et que j’ai appelé « 140114 », comme si c’était celui du 14 janvier 2014.

Partant de là, la macro intégrée au fichier « Récap V1 » que je t’ai envoyée, ouvre ce fichier et, pour chaque projet nommé dans la colonne A du fichier journalier, crée un onglet dans le fichier Récap et y colle toutes les valeurs du projet concerné.

Si ensuite tu ouvres un autre fichier journalier, exemple 15014, elle collera à la suite, sur l’onglet du même nom, les données de chaque projet qu’elle trouvera dans la colonne A de ce nouveau fichier. Si elle y trouve un projet pour lequel il n’y a pas d’onglet sur le fichier Récap V1, elle le crée.

C’est ce que j’avais cru comprendre de ce que tu attendais. Mais apparemment, je me suis trompé.

A toi donc de me réexpliquer ce que tu voudrais que la macro te fasse.

A te lire.

Bye !

Bonjour,

Si tu as totalement compris c'est exactement cela que je voulais mais en faite je pensait que la macro irai chercher automatiquement dans un fichier tout les fichiers excel en automatique, alors que la je doit ouvrir un par un chaque fichier et puis de lancer la macro.

Du coup ma question est, est ce qu'il est possible de tout automatiser? Que la macro aille chercher dans le dossier tout les fichiers excel qu'elle les ouvres et copie les données? Cela est réalisable?

Désolé j'en demande beaucoup :s

merci pour ton aide en tt cas car elle m'est bien précieuse

Re bonjour,

En fouillant un peu j'ai trouver une formule qui m'ouvre tout mes fichiers qui sont dans mon dossier et qui copie tout mes fichiers ouvert dans un seul et même fichier excel(Récap), le problème est que la macro ce bloque a la ligne

dte = CDate(Left(Cl.Name, 2) & " / " & Mid(Cl.Name, 3, 2) & " / " & Mid(Cl.Name, 5, 2))

Qui si je me trompe pas va chercher le nom du fichier pour le copier.

Voici la macro qui permet d'ouvrir les fichiers.

Sub Ouvrir_Fichiers()
' Permet d'ouvrir plusieurs fichiers dans un répertoire
' GC Excel - 2011-11-16

Dim wb As Workbook, wb2 As Workbook
Dim sPath As String, sFilename As String
Dim NbRows As Integer, rg As Range

Set wb = ThisWorkbook

Application.ScreenUpdating = False

sPath = "C:\Users\ADF\Desktop\Nouveau dossier\2014\"       'Répertoire
sFilename = Dir(sPath & "*.xls*")        'ouvre tous les fichiers .xls*

Do While Len(sFilename) > 0
Set wb2 = Workbooks.Open(sPath & sFilename)           'Ouvre le fichier
'
' Votre code ici

    wb2.Close False   'Fermer le fichier
    sFilename = Dir
Loop
Application.ScreenUpdating = True

End Sub

Pense tu qu'il serait possible d'adapter un peu la macro pour pouvoir en ouvrant mon fichier Récap exécuter la macro qui irai chercher les infos dans les fichiers .xls puis le copier sur ce fichier Récap qui est le général avec lequel je voudrait travailler au final

( en gros au final j'aimerai pouvoir faire des graphiques sur l’activité d'un projet).

Désolé si parfois je ne suis pas si explicite ^^'' .

Merci pour vos réponse.

Bonjour

Tu écris :

la je doit ouvrir un par un chaque fichier et puis de lancer la macro

Pas tout à fait puisque tu peux ouvrir plusieurs fichiers à la fois puis lancer la macro qui les refermera sitôt qu'elle s'en sera servi.

Pour que tout soit automatique, il faudrait que la macro puisse aller lire dans une feuille de calcul la liste des noms de fichiers qu'elle doit ouvrir. Sinon, je ne vois pas très bien comment faire...

Bye !

63recap-v2.xlsm (24.61 Ko)

Salut!,

Bon j'ai l'impression que je bafouille dans mes explications et du coup je te mène en erreur ou en incompréhension du coup j'ai vais réexpliquer en étant concis et direct.

1- J'ai dans un répertoire dans mon bureau un Dossier ou dedans j'ai pour chaque jour ou j'ai fait des inspections un fichier Excels.

2- Mes fichier Excels sont ranger de cette manière 140103/140104/140105, 14 étant l'année; 01 le mois et 05 le jour.

3- Maintenant j'ai un autre fichier Excel que j'ai nommé Synthese_Inspection ou dedans il y a rien et ou je voudrai que la macro fonctionne.

4- A partir de ce fichier synthese_Inspection je voudrai exécuter la macro qui va chercher dans le répertoire ou il y a tout les fichiers et ouvre un par un chaque fichier puis copie les données dont j'ai besoin dans ce fichier synthese_inspection.

5- Au final j'aimerai me retrouvé avec le fichier synthese_inspection avec toute les données copier dedans et bien sur avec chaque onglet qu'il y a de projet .

J'espere que j'ai était plus compréhensible, je sais que parfois j'ai du mal a me faire comprendre ^^''' .

En tout cas merci car tu me sauve.

Merci encore :p

Bonjour

Un nouvel essai à tester... si j'ai bien compris

Bye !

17recap-v3.xlsm (25.63 Ko)

Bonjour a toi,

J'ai essayer d'utiliser la nouvelle version de la macro sur mon fichier Synthese_Inspection pour allez chopper les infos sur les fichier excel et sa ne marche pas, j'ai essayer aussi a partir de la feuille d'inspection et j'ai aussi la même erreur qui s'affiche.

cette erreur s’arrête a cette ligne

For Each F In Cl.Sheets

et affiche une erreur 424 :s.

Je te met mes fichiers que j'utilise pour que tu vois mon erreur :s

Merci pour ton aide

10140117.xlsx (18.13 Ko)

Bonjour

Je n'arrive toujours pas à être sûr d'avoir bien compris.

Ce que tu appelles fichier "140103" ou "140104", Est-ce des classeurs ou des feuilles d'un même classeur ?

Pour Excel, quand on parle de fichier, il s'agit de classeur, c'est à dire d'un document qui peut comporter plusieurs feuilles de calcul ou onglets.

Et un dossier est un contenant qui peut contenir des fichiers ou d'autres dossiers.

A te relire

Bye !

Re

Essaie avec cette nouvelle version, cela devrait marcher dans tous les cas, à condition que le ou les classeurs qui contiennent tes inspections soient ouverts.

Bye !

9recap-v5.xlsm (30.00 Ko)

Bonjour,

C'est bien ça, mes fichiers "140103", "140104" par exemple sont des classeurs bien distincts dans ces classeurs j'ai mon tableau du jour dans la feuille 1 puis la 2,3 il y a rien ce sont les feuilles par défauts. Celles-ci sont rangé dans un des dossier triée par année ex: 2014,2013, donc ici rangé dans 2014.

J'ai tester la macroV5 mais quand j'ouvre un nouveau classeur pour le copier dans mon fichier synthèse à l'aide de la macro cela ne fait rien si j'ai déjà effectuer la manip une fois.

Si je veut que ça fonctionne il faut que j'ouvre tout les classeurs pour que ma macro copie tout, le problème c'est que pour une année sa fait énormément de classeur a ouvrir, est-il possible d'automatiser les ouverture pour pas que mon pc explose ou bug a cause des toutes les ouvertures?

Et puis j'ai eu un truc assez bizarre, le deuxième classeur copié il me manque une partie (qui se situe à la fin) de mon tableau, exactement il a tout copier a part les 4 dernières ligne sachant que dans le premier projet j'ai 27 ligne et le suivant 26 si cela peu aider.

Une dernière chose la colonne time m'affiche l'heure de l’inspection alors qu'au début sa copier la date ce que je voulait .

Merci pour ton aide, j’espère que j'ai été un peu plus précis.

Désolé pour ma demande, mais en tout cas je remercie ta patiente qui doit être énorme et ta générosité.

Merci.

Tu écris :

est-il possible d'automatiser les ouverture pour pas que mon pc explose

OK ! J’ai modifié : désormais, tu peux ouvrir un ou plusieurs fichiers à la fois, lancer la macro, puis en ouvrir d’autres et relancer. La macro referme les fichiers dès qu’elle s’en est servi.

En revanche, elle fait un test sur la valeur de la cellule D3 de chaque fichier et regarde si elle existe déjà dans une feuille de son propre fichier. Ceci afin de ne pas traiter 2 fois les mêmes inspections.

Et puis j'ai eu un truc assez bizarre, le deuxième classeur copié il me manque une partie (qui se situe à la fin) de mon tableau,

Là, c’est plus délicat. Je ne peux corriger un bug que si j’arrive à le reproduire, ce qui n’est pas le cas avec les fichiers que je me suis fabriqués à partir de ton fichier 140117. Essaie de m’envoyer des fichiers, même simplifiés mais qui produisent ce bug.

la colonne time m'affiche l'heure de l’inspection alors qu'au début sa copier la date ce que je voulait .

La macro ne fait que copier puis coller la colonne « Time », comme les autres colonnes d’ailleurs.

Dans le premier essai que je t’ai adressé, j’avais ajouté une colonne (A) où j’avais reporté pour chaque inspection la date du fichier source. C’est possible en récupérant cette date dans le nom du fichier source (140117 ---> 17/01/2014). Si tu veux, je peux te le refaire : dis-moi le !

En attendant, voici la version 6

Bye !

13recap-v6.xlsm (43.37 Ko)

Bonjour, En espérant qu'un bon WE c'est écoulé.

Ta version V6 fonctionne mais j'ai quelque souci de copie coller, je vais m'expliquer:

OK ! J’ai modifié : désormais, tu peux ouvrir un ou plusieurs fichiers à la fois, lancer la macro, puis en ouvrir d’autres et relancer. La macro referme les fichiers dès qu’elle s’en est servi.

Serait-il possible que la macro le fasse automatiquement sans que j'ouvre un classeur Excel? j'ai essayer de mettre le code:

ChDir "F:\Atelier\VBA Excel"

ClasseurSchedule = Dir("C:\Users\ADF\Desktop\Nouveau dossier\*.xlsx")

While Len(ClasseurSchedule) > 0

Workbooks.Open ClasseurSchedule

le reste du code

Workbooks(ClasseurSchedule ).Close

ClasseurRegional = Dir

mais sa fonctionne pas :s .

tu dit aussi :

En revanche, elle fait un test sur la valeur de la cellule D3 de chaque fichier et regarde si elle existe déjà dans une feuille de son propre fichier. Ceci afin de ne pas traiter 2 fois les mêmes inspections.

Mais le problème c'est que parfois j'ai le même nom dans la case D3 et du coup ça ne copie plus, pense-tu qu'il y a un moyen de contourner ce problème?

Pour ceci :

Là, c’est plus délicat. Je ne peux corriger un bug que si j’arrive à le reproduire, ce qui n’est pas le cas avec les fichiers que je me suis fabriqués à partir de ton fichier 140117. Essaie de m’envoyer des fichiers, même simplifiés mais qui produisent ce bug.

Je vais t'envoyer les originaux pour que tu puisse répéter le bug que j'ai. Car je pense que c'est lié avec le check de la cellule D3

Et pour la colonne "time" oui en effet je préfére que ce soit la date car c'est plus parlant pour moi d'avoir la date et non le temps.

Merci pour ton aide, on tient le bon bout :p

EDIT: j'ai oublier les pièces jointe.

7140220.xlsx (20.36 Ko)
7140221.xlsx (20.00 Ko)
6recap-v6.xlsm (43.37 Ko)

Bonjour

1 – Tu voudrais que la macro ouvre elle-même les fichiers nécessaires à son action puis les referme quand elle a fini.

Je suis désolé, mais je ne sais pas le faire si je ne connais pas les noms de ces fichiers. Il faudrait avoir leur liste quelque part ou bien….que quelqu’un du forum nous dise comment faire, car c’est peut-être possible.

2 – Tu me dis que la cellule D3 de tes fichiers ne peut pas servir de test car on retrouve le même texte sur plusieurs lignes.

Effectivement, j’ai même trouvé, en regardant de plus près pour trouver un autre moyen de ne pas traiter deux fois les mêmes données, qu’on retrouve exactement les mêmes indications sur deux lignes différentes appartenant à deux fichiers différents : Bizarre ! (ligne 32 du fichier 140220 et ligne 27 du fichier 14221 ; on fait donc la même inspection à 1 jour d’intervalle, exactement à la même heure et elle donne exactement les mêmes résultats ?)

En conséquence, je n’ai pas trouvé mieux que d’écrire le nom du fichier traité sur la page d’accueil et la macro, avant de commencer va y vérifier que le fichier qu’elle va traiter n’est pas déjà sur la liste.

S’il y est, elle referme ce fichier sans le traiter. S’il n’y est pas, elle y le met et le traite.

3 – Pour le bug, il ne s’est pas reproduit. Sur les deux fichiers que tu m’as envoyés, l’un a 27 lignes de données l’autre 31 soit un total de 58.

Quand la macro a terminé, je compte 7 lignes de données sur la feuille du premier projet, 45 sur celle du 2° et 6 sur celle du 3°. Total : 58. Le compte y est.

Bye !

22recap-v7.xlsm (32.48 Ko)

Merci pour tes réponses gmb, désolé de te répondre maintenant j'ai eu une surcharge de taf et j'ai zapper de te répondre pour ton aide.

En tout cas merci pour tout! Car tout marche est c'est nickel!!

Rechercher des sujets similaires à "importer feuilles seule creation onglet"