1 pièce(s) jointe(s)
VBA - compiler des données : boucler sur tous les onglets de plusieurs fichiers
Bonjour,
J'aimerai récupérer dans données de plusieurs onglets dans plusieurs fichiers pour les coller dans un fichier récap (appelé dans mon code "compilation consolidation.xls"). Les données doivent s'incrémenter dans un tableau les unes à la suite des autres.
Il me semble que j'arrive à boucler sur les différents dossiers, mais pas sur les onglets.
J'ai l'impression d'etre près du but mais je bloque. Si quelqu'un pouvait m'aider je lui en serais reconnaissant.
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 30
| Sub Récup_données()
pfile = ActiveWorkbook.Path & "\" & Range("b2") & "\" 'chemin du répertoire
nfile = Dir(pfile)
Dim i As Integer
Dim LFinTab As Integer
Dim CFinTab As Integer
Application.ScreenUpdating = False
Do Until nfile = ""
For i = 1 To Worksheets.Count
LFinTab = Range("B6000").End(xlUp).Row
CFinTab = Range("Z9").End(xlUp).Column
Workbooks("Consolidation compilation.xlsm").Worksheet("sheet1").Range("B" & LFinTab) = Workbooks(nfile).Worksheet("sheet" & i).Range("A6")
Workbooks("Consolidation compilation.xlsm").Worksheet("sheet1").Range("C" & LFinTab) = Workbooks(nfile).Worksheet("sheet" & i).Range("A9")
Workbooks("Consolidation compilation.xlsm").Worksheet("sheet1").Range("D" & LFinTab) = Workbooks(nfile).Worksheet("sheet" & i).Range(CFinTab & "8")
Workbooks("Consolidation compilation.xlsm").Worksheet("sheet1").Range("E" & LFinTab) = Workbooks(nfile).Worksheet("sheet" & i).Range(CFinTab & "9")
Workbooks("Consolidation compilation.xlsm").Worksheet("sheet1").Range("B" & LFinTab) = Workbooks(nfile).Worksheet("sheet" & i).Range("A6")
Workbooks("Consolidation compilation.xlsm").Worksheet("sheet1").Range("C" & LFinTab) = Workbooks(nfile).Worksheet("sheet" & i).Range("A10")
Workbooks("Consolidation compilation.xlsm").Worksheet("sheet1").Range("D" & LFinTab) = Workbooks(nfile).Worksheet("sheet" & i).Range(CFinTab & "8")
Workbooks("Consolidation compilation.xlsm").Worksheet("sheet1").Range("E" & LFinTab) = Workbooks(nfile).Worksheet("sheet" & i).Range(CFinTab & "10")
nfile = Dir()
Next i
Loop
With Range("A2:U" & Range("B65000").End(xlUp).Row)
.Value = .Value
End With
End Sub |