Macro Compilation Fichiers

WaxistSelecta

XLDnaute Junior
Bonjour à tous,

je suis à la recherche d'un code (ou d'assistance pour l'écrire) afin de pouvoir compiler un certains nombre de fichier dans un unique classeur cible.

J'ai un dossier 'Requêtes Data' qui contient X fichiers excel contenant chacun un onglet unique. Ces fichiers sont en fait des extractions de tables d'un SI.

Je voudrais pouvoir compiler ces fichiers dans un classeur cible, contenant les différents fichiers sources, organisés en onglet (un onglet par fichier sources). En gros il suffirait de faire un Copier / Coller entre le fichier source et le fichier cible, simplement vu le nombre de fichiers à compiler c'est assez long à faire à la mano.

Je pense qu'une boucle devrait faire l'affaire.

Merci d'avance pour vos réponses!

Waxist
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Macro Compilation Fichiers

Re,

et comme ça ?

Code:
Sub CompileFic()
 
Dim FSO 'As Scripting.FileSystemObject
Dim SourceFolder 'As Scripting.Folder
Dim FileItem 'As Scripting.File
Set FSO = CreateObject("Scripting.FileSystemObject")
' Indiquer ici le bon répertoire
Set SourceFolder = FSO.GetFolder("C:\Data Requêtes")
Set FSO = New Scripting.FileSystemObject
On Error Goto Err1
' Pour chaque fichier trouvé dans le dossier
For Each FileItem In SourceFolder.Files
Workbooks.Open FileItem.Name
ActiveWorkbook.Sheets(1).Move after:=ThisWorkbook.Sheets("Consolidation")
ThisWorkbook.ActiveSheet.Name = Replace(FileItem.Name, ".xls", "")
Next FileItem
On Error GoTo 0
' Effacer les variables objet
Set FileItem = Nothing
Set SourceFolder = Nothing
Set FSO = Nothing
Exit Sub
Err1 : 
Msgbox "erreur " & fileitem.name
End Sub
 

WaxistSelecta

XLDnaute Junior
Re : Macro Compilation Fichiers

J'ai passé pas mal du code en commentaire,

c'est quand j'active le For Next que l'erreur se produit:

Sub CompileFic()

Dim FSO 'As Scripting.FileSystemObject
Dim SourceFolder 'As Scripting.Folder
Dim FileItem 'As Scripting.File
Set FSO = CreateObject("Scripting.FileSystemObject")
' Indiquer ici le bon répertoire
Set SourceFolder = FSO.GetFolder("C:\Data Requêtes")
Set FSO = New Scripting.FileSystemObject


On Error GoTo Err1
' Pour chaque fichier trouvé dans le dossier
For Each FileItem In SourceFolder.Files
Workbooks.Open FileItem.Name
'ActiveWorkbook.Sheets(1).Move after:=ThisWorkbook.Sheets("Consolidation")
'ThisWorkbook.ActiveSheet.Name = Replace(FileItem.Name, ".xls", "")
Next FileItem
'On Error GoTo 0
' Effacer les variables objet
'Set FileItem = Nothing
'Set SourceFolder = Nothing
'Set FSO = Nothing
Exit Sub
Err1:
MsgBox "erreur " & FileItem.Name
End Sub
 

WaxistSelecta

XLDnaute Junior
Re : Macro Compilation Fichiers

Yes,

la dernière tentative était la bonne!
Cela fonctionne exactement comme je le souhaitait. Merci beaucoup.

Je mets le code final ci dessous pour les personnes qui visiteraient le post dans le futur:

Sub CompileFic()

Dim FSO As Scripting.FileSystemObject
Dim SourceFolder As Scripting.Folder
Dim FileItem As Scripting.File
Set FSO = CreateObject("Scripting.FileSystemObject")
' Indiquer ici le bon répertoire
Set SourceFolder = FSO.GetFolder("C:\Data Requêtes\")

Set FSO = New Scripting.FileSystemObject


'On Error GoTo Err1
' Pour chaque fichier trouvé dans le dossier
For Each FileItem In SourceFolder.Files
Workbooks.Open "C:\Data Requêtes\" & FileItem.Name
ActiveWorkbook.Sheets(1).Move after:=ThisWorkbook.Sheets("Consolidation")
ThisWorkbook.ActiveSheet.Name = Replace(FileItem.Name, ".xls", "")
Next FileItem
On Error GoTo 0
' Effacer les variables objet
Set FileItem = Nothing
Set SourceFolder = Nothing
Set FSO = Nothing
Exit Sub
'Err1:
'MsgBox "erreur " & FileItem.Name
End Sub

Merci beaucoup encore une fois!
 

Discussions similaires

Réponses
9
Affichages
113