Copier plusieurs classeurs en renommant les onglets

Bonjour,

grâce à gmb, j'ai avancé dans mon projet qui est de rassembler plusieurs classeurs excel. (cf. post https://forum.excel-pratique.com/excel/copier-onglets-de-classeurs-fermes-dans-celui-actif-t49270.html)

Il me faudrait une macro supplémentaire qui me permettrait de copier des classeurs excel (qui sont stockés dans un endroit différents de là où je veux une copie) et de renommer l'onglet qui contient les données en "Feuil1". (cela est pour coller avec la macro que m'a écrit gmb)

j'ai essayé la copie :

Sub Copie_classeurs_Chester()
FileCopy "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\COMM A-24.xls", "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\COMM A-24.xls"
MsgBox "Copie fichiers Chester finie"
End Sub

Tout va bien, j'ai bien une copie parfaite du classeur COMM A-24.xls mais je voudrais que l'onglet qui contient les données s'appelle "Feuil1".

De plus, sous C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\, il y a plusieurs classeurs pour lesquels je voudrais faire cette manip, alors si l'on pouvait inclure une procédure qui me copie en bloc tous ces classeurs, je suis preneur ! Précision: tous les classeurs que je veux copier n'ont qu'un seul onglet.

J'espère avoir été clair dans mes explications et vous remercie.

Bonjour

Je vais peut-être dire des bêtises

Tu veux que la page s'appelle "Feuil1" pour que cela colle à la macro de Gmb ?

Pourquoi ne pas modifier la macro de Gmb et alors peu importe le nom de la page

        Workbooks.Open Filename:=Chemin & i & ".xls"
       Sheets(1).Select
        Cells.Copy

Ensuite pour quelle raison veux tu déplacer tes fichiers, si c'est pour la même raison (coller à la macro de Gmb) , changes le chemin dans la macro

    Dossiers = Array("calendrier", "code enquete", "T1 2014")
    Chemin = "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\"
    For Each i In Dossiers

merci Banzai64,

l'idée de ne pas être contraint par le nom de l'onglet est bonne!

Par contre, il y a des fichiers excel qui sont stockés sur un autre disque et c'est ceux-là que je veux ramener dans le même dossier où est situé récap.xls pour pouvoir faire tourner la macro de gmb.

en gros des fichiers sont sous : C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester

et je veux les ramener sous C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD (là où se situe le classeur récap.xls).

Dans cet exemple, les deux destinations sont sous C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD, mais à mon boulot, ce sont deux disques différents (mais après je n'aurai plus qu'à changer le chemin)

je continue à chercher mais si tu as une idée, n'hésites pas

merci à toi

Bonjour

C'est ce que je t'ai dit

Change le chemin dans la macro (places y le chemin du répertoire contenant les fichiers à traiter)

Pas besoin que le fichier "récap.xls" soit dans le même répertoire que les autres

Ou alors je ne comprends pas ce que tu veux dire (mon age je pense)

Banzai64,

je ne pense pas à une question d'âge !! C'est sûrement que je me suis mal exprimé.

Je ne comprends pas ta 2ème ligne de code, j'ai essayé mais cela ne fonctionne pas...

Tu me dis qu'il n'est pas nécessaire que les fichiers à copier soient dans le même dossier que récap.xls. Par contre c'est ce que je cherche à faire: tout rapatrier dans le dossier où est récap.xls

Sub Récap()

    Application.ScreenUpdating = False
    Set DocDép = ActiveWorkbook
    Dossiers = Array("Calendrier hors EEC", "Calendrier", "Codes enquetes", "COMM A-24", "COMM B-24", "COMM C-24", "COMM D-24", "Conges enqueteurs", "données.enkéteurs avec mail", "Planning EEC t1", "Planning EEC t2", "Planning EEC t3", "Planning EEC t4", "Pot EEC t2")
    Chemin = "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\"
    For Each i In Dossiers
        Workbooks.Open Filename:=Chemin & i & ".xls"
        Sheets(1).Select
        Cells.Copy
        DocDép.Sheets(i).Range("A1").PasteSpecial xlPasteAll
        Application.DisplayAlerts = False
        Workbooks(i & ".xls").Close
        Range("A1").Select
    Next i
    Sheets("Accueil").Select
    MsgBox "   Recopie terminée, tu peux aller ouvrir la base de données !"
End Sub

ce classeur récap.xls doit me servir de base pour alimenter une base de données. Je veux qu'il soit composé d'autant d'onglets (une cinquantaine au final) que j'ai de classeurs excel. Certains de ces classeurs sont dans le même dossier que récap.xls (la macro de gmb me sert à ça) et d'autres classeurs sont ailleurs.

Par contre, à moins de modifier la macro de gmb, je dois ramener tous ces classeurs dans le dossier où est récap.xls.

L'inconvénient actuel est que la macro de gmb me fait seulement récupérer les fichiers excel qui sont dans le dossier où est récap.xls

Autre inconvénient de cette macro (mais je m'en accommoderai) est qu'il faut que je déclare tous les noms des onglets de récap.xls alors que j'aurai aimé que cla se fasse automatiquement lors de la copie d'un classeur sur un onglet.

ex: je copie la feuille1 de classeurA.xls et il me créée un onglet ClasseurA dans récap.xls (avec bien sûr les données de la feuille1 de classeurA.xls

j'espère que je me suis mieux exprimé. il se peut aussi, que je n'ai pas encore compris ce que tu veux me faire faire !!!

Bon voilà où j'en sui, mais c'est un peu long et je dois faire ça pour une 50aine de fichiers...

Option Explicit

Dim DocDép, Dossiers(), Chemin, i
Sub Copie_classeurs_Chester()
FileCopy "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\COMM A-24.xls", "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\COMM A-24.xls"
FileCopy "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\COMM B-24.xls", "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\COMM B-24.xls"
FileCopy "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\COMM C-24.xls", "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\COMM C-24.xls"
FileCopy "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\COMM D-24.xls", "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\COMM D-24.xls"

FileCopy "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\EEC T1 E-24.xls", "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\EEC T1 E-24.xls"
FileCopy "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\EEC T1 M-24.xls", "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\EEC T1 M-24.xls"
FileCopy "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\EEC T1 S-24.xls", "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\EEC T1 S-24.xls"

FileCopy "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\EEC T1 E-24.xls", "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\EEC T2 E-24.xls"
FileCopy "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\EEC T2 M-24.xls", "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\EEC T2 M-24.xls"
FileCopy "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\EEC T2 S-24.xls", "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\EEC T2 S-24.xls"

FileCopy "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\EEC T3 E-24.xls", "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\EEC T3 E-24.xls"
FileCopy "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\EEC T3 M-24.xls", "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\EEC T3 M-24.xls"
FileCopy "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\EEC T3 S-24.xls", "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\EEC T3 S-24.xls"

FileCopy "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\EEC T4 E-24.xls", "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\EEC T4 E-24.xls"
FileCopy "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\EEC T4 M-24.xls", "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\EEC T4 M-24.xls"
FileCopy "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\Chester\EEC T4 S-24.xls", "C:\Users\Bichette\Desktop\Fichiers pour BDD\Fichiers pour BDD\EEC T4 S-24.xls"

End Sub

Sub Récap()

    Application.ScreenUpdating = False
    Set DocDép = ActiveWorkbook
    Dossiers = Array("Calendrier hors EEC", "Calendrier", "Codes enquetes", "COMM A-24", "COMM B-24", "COMM C-24", "COMM D-24", "EEC T1 E-24", "EEC T1 M-24", "EEC T1 S-24", "EEC T2 E-24", "EEC T2 M-24", "EEC T2 S-24", "EEC T3 E-24", "EEC T3 M-24", "EEC T3 S-24", "EEC T4 E-24", "EEC T4 M-24", "EEC T4 S-24", "Conges enqueteurs", "données.enkéteurs avec mail", "Planning EEC t1", "Planning EEC t2", "Planning EEC t3", "Planning EEC t4", "Pot EEC t2")
    Chemin = ThisWorkbook.Path & "\"
    For Each i In Dossiers
        Workbooks.Open Filename:=Chemin & i & ".xls"
        Sheets(1).Select
        Cells.Copy
        DocDép.Sheets(i).Range("A1").PasteSpecial xlPasteAll
        Application.DisplayAlerts = False
        Workbooks(i & ".xls").Close
        Range("A1").Select
    Next i
    Sheets("Accueil").Select
    MsgBox "   Recopie terminée, tu peux aller ouvrir la base de données !"
End Sub
Rechercher des sujets similaires à "copier classeurs renommant onglets"