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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| Sub Extract_cp()
Dim RepFich As Variant
Dim CL1 As Workbook, i As Byte, Rep$
Dim FL1 As Worksheet
Set CL1 = ThisWorkbook
CL1.Sheets.Add
CL1.ActiveSheet.Name = "FeuilCumul"
Set FL1 = CL1.ActiveSheet 'Instance de la feuille
'Répertoire des fichiers à copier
Rep = "X:\test\VALIDE\Extract1"
'Crée le tableau des fichiers du répertoire
Set RepFich = Application.FileSearch
'Ouverture des fichiers du répertoire
With RepFich
.LookIn = Rep
.FileType = msoFileTypeExcelWorkbooks
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
For i = 1 To .FoundFiles.Count
DoEvents
Copie FL1, .FoundFiles(i)
Next
Else
MsgBox "Aucun fichier dans le répertoire " & Rep
End If
End With
End Sub
==========================================================
Sub Copie(FL1 As Worksheet, Fichier)
Dim CL2 As Workbook
Dim FL2 As Worksheet
Dim i As Byte, Rep$, NoLigne As Long
Set CL2 = Workbooks.Open(Fichier)
Set FL2 = Worksheets("testcopies")
'Dernière ligne où coller les données copiées dans FL2
NoLigne = FL1.Range("b5:e12").SpecialCells(xlCellTypeLastCell).Row + 1
'Copie de la plage renseignée de chaque feuille du classeur
FL2.Range(FL2.Cells(1, 1), _
FL2.Cells(FL2.Cells(Columns(1).Cells.Count, 1).End(xlUp).Row, _
FL2.Cells(Columns(1).Cells.Count, 1).End(xlUp).Row)).Copy _
FL1.Range("A" & NoLigne)
DoEvents
Set FL2 = Nothing
CL2.Close False 'fermeture du classeur copié
DoEvents
Set CL2 = Nothing
End Sub |
Partager