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
| Sub Test3()
Dim CL1 As Workbook, CL2 As Workbook
Dim FL1 As Worksheet, FL2 As Worksheet
Dim Fich As Variant, i As Byte, Rep$
'Répertoire des fichiers à copier
Rep = "D:\RepCopie\"
Set CL1 = ThisWorkbook
'Ajoute une feuille au classeur destiné à recevoir les données des autres classeurs
CL1.Sheets.Add
CL1.ActiveSheet.Name = "FeuilCumul"
Set FL1 = CL1.ActiveSheet 'Instance le la feuille
'Crée le tableau des fichiers du répertoire
Set Fich = Application.FileSearch
'Ouverture des fichiers du répertoire
With Fich
.LookIn = Rep
.FileType = msoFileTypeExcelWorkbooks
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
For i = 1 To .FoundFiles.Count
Set CL2 = Workbooks.Open(.FoundFiles(i))
DoEvents
'Parcours des feuilles de chaque classeur
For Each FL2 In CL2.Worksheets
'Dernière ligne où coller les données copiées dans FL2
NoLigne = FL1.Range("A1").SpecialCells(xlCellTypeLastCell).Row + 1
'Copie de la plage renseignée de chaque feuille du classeur
FL2.Range("A1:" & Split(FL2.UsedRange.Address(0, 0), ":")(1)).Copy _
FL1.Range("A" & NoLigne) DoEvents
Set FL2 = Nothing
Next
CL2.Close False 'fermeture du classeur copié
DoEvents
Set CL2 = Nothing
Next i
Else
MsgBox "Aucun fichier dans le répertoire " & Rep
End If
End With
End Sub |
Partager