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 SubLes 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 .
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 !!!!