Compiler plusieurs fichiers dans un seul
Bonjour le Forum,
Je fais appel à votre aide car j'ai un projet sur lequel je bute.
- J'ai X fichiers avec plusieurs onglets qui ont la même structure. J'ai écrit la macro "Consolidation" qui permet de les transformer et copier les éléments de chaque onglet dans un onglet de" Consolidation" pour les exploiter en format TCD excel.
- J'ai un autre fichier de Synthèse dans lequel je voudrais lancer une macro "Import_Datas" qui boucle sur chaque fichier, alimente l'onglet Consolidation et copie colle les valeurs dans l'onglet "Synthèse" les unes à la suite des autres.
J'ai trouvé le code suivant pour ouvrir les fichiers les uns à la suite des autres
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| Sub Import_Datas()
Dim myPath As String, myFile As String
myPath = "Chemin"
myFile = Dir(myPath & "\*.*")
Do While myFile <> "Synthèse.xlsm"
Call ClasseurOuvert(myPath & "\" & myFile)
With Workbooks(myFile)
'Call Test_Consolidation_onglets2
'Application.Run ("'myFile'!ThisWorkbook.Test_Consolidation_Onglets")
.Close
End With
myFile = Dir()
Loop
End Sub
Function ClasseurOuvert(NomFich)
On Error Resume Next
Workbooks(NomFich).Activate
If Err <> 0 Then Workbooks.Open Filename:=NomFich
On Error GoTo 0
End Function |
Au lancement à partir du fichier Synthèse:
Le 1er fichier s'ouvre bien mais au moment du lancement de la macro "Consolidation" qui est censée transformer et copier les éléments dans l'onglet "Consolidation' j'ai l'erreur suivante
- avec 'Call Test_Consolidation_onglets2" macro qui se trouve dans mon fichier Synthèse => Indice n'appartient pas à la sélection
- avec ''Application.Run ("'myFile'!ThisWorkbook.Test_Consolidation_Onglets") macro qui se trouve dans mes X fichiers => erreur 400
Je vous mets ci-dessous les premières lignes de la macro qui est censée se lancer. Peut être qu'il manque un liant.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Sub Test_Consolidation_onglets2()
Dim Fe As Worksheet
Dim DrLig As Long
Sheets("Consolidation").Select
Cells.Select
Selection.ClearContents
'défintion des entêtes de colonnes onglet consolidation
Range("A1").Select
ActiveCell.FormulaR1C1 = "XXXX"
Range("B1").Select
For Each Fe In Worksheets
If Fe.Name <> "Consolidation" Then |
Est-ce que la macro Consolidation doit être dans mon fichier synthèse ou dans les X fichiers?
Je ne sais pas pourquoi cela plante. Merci pour votre aide.
Eric