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
Au lancement à partir du fichier Synthèse:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager