Copier onglets de classeurs fermés dans celui actif

Bonjour,

je suis nouveau sur ce forum et je nage avec VBA...

Pour mon boulot, (excel 97), je travaille avec plusieurs classeurs excel tous composés d'un seul onglet "Feuil1".

Ces classeurs sont fermés et stockés sur le serveur en commun.

J'aurai besoin de tous les rapatrier dans un seul classeur qui serait composé de plusieurs onglets. L'idéal serait aussi que les noms de ces onglets soient automatiquement renommés en reprenant le nom de leur classeur d'origine.

EX:

je dispose de plusieurs classeurs excel qui sont stockés et pas ouverts:

1 classeur "calendrier.xls" avec un onglet "Feuil1"

1 classeur "code enquete.xls" avec un onglet "Feuil1"

1 classeur "T1 2014" avec un onglet "Feuil1"

je voudrai:

1 classeur "recap.xls" (qui serait le classeur actif d'où je lancerai cette macro) avec plusieurs onglets dont:

le 1er serait renommé "calendrier" et contiendrait les données de l'onglet "Feuil1" du classeur calendrier.xls

le 2e serait renommé "code enquete" et contiendrait les données de l'onglet "Feuil1" du classeur code enquete.xls

le 1er serait renommé "T1 2014" et contiendrait les données de l'onglet "Feuil1" du classeur T1 2014.xls

Est-ce que cela est possible ???

merci de votre aide

j'ai essayé de créer un bout de code avec l'enregistreur

Sub copie()
'
' copie Macro
' Macro enregistrée le 20/03/2014 par bu82p4
'

'
    ChDir "C:\Users\bu82p4\Desktop\Fichiers pour BDD"
    Workbooks.Open Filename:= _
        "C:\Users\bu82p4\Desktop\Fichiers pour BDD\Calendrier.xls"
    Cells.Select
    Selection.Copy
    Windows("recap.xls").Activate
    Range("A1").Select
    ActiveSheet.Paste
    Sheets("Feuil2").Select
    Windows("Calendrier.xls").Activate
    ActiveWindow.Close
    Workbooks.Open Filename:= _
        "C:\Users\bu82p4\Desktop\Fichiers pour BDD\Planning EEC t1.xls"
    Cells.Select
    Selection.Copy
    Windows("recap.xls").Activate
    ActiveSheet.Paste
    Windows("Planning EEC t1.xls").Activate
    ActiveWindow.Close
    Workbooks.Open Filename:= _
        "C:\Users\bu82p4\Desktop\Fichiers pour BDD\planning2014s1.xls"
    Cells.Select
    Selection.Copy
    Windows("recap.xls").Activate
    Sheets("Feuil3").Select
    Cells.Select
    ActiveSheet.Paste
    Windows("planning2014s1.xls").Activate
    ActiveWindow.Close
    Sheets("Feuil3").Select
    Sheets.Add
    ChDir "C:\Users\bu82p4\Desktop\Fichiers pour BDD\Chester"
    Workbooks.Open Filename:= _
        "C:\Users\bu82p4\Desktop\Fichiers pour BDD\Chester\EEC T2 E-24.xls"
    Cells.Select
    Selection.Copy
    Windows("recap.xls").Activate
    ActiveSheet.Paste
    Windows("EEC T2 E-24.xls").Activate
    ActiveWindow.Close
    ActiveWorkbook.Save
End Sub

Les problèmes sont:

  • mes onglets dans "recap.xls" ne sont pas renommés avec les noms des classeurs d'où sont extraits les données. Si je les renomme pendant la macro, une fois que je la rééxécute, c'est un bog car à l'ouverture de recap.xls les onglets ne s'appellent plus "Feuil1" "Feuil2".... mais comme je les ai appelé à la fin de l'éxecution de cette macro. Une solution serait que ces onglets soient déjà pré-nommés comme je le veux et la macro n'aurait pas à se charger d'extraire les noms des classeurs pour nommer mes onglets.
  • ce que je copie est "assez " lourd et j'ai à chaque fois la fenêtre qui me demande si je veux garder les infos dans le presse-papier... ce qui fait que je dois cliquer après chaque copie de page.

Merci de votre aide.

Bonjour et bienvenue sur le forum

Un essai. Te convient-il ?


Un détail : les 4 fichiers doivent être dans le même dossier .

36calendrier.zip (1.85 Ko)
40code-enquete.zip (1.86 Ko)
37t1-2014.zip (1.85 Ko)
63recap.zip (9.63 Ko)

Bonjour gmb et merci !!!

c'est exactement ce que je souhaite !! je le teste en grandeur nature et te dis le résultat.

Je viens de le tester et ça marche impeccablement bien !

MERCI !!!!

Bonjour

Rechercher des sujets similaires à "copier onglets classeurs fermes celui actif"