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
| Sub ouvrir_copier()
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:\romain\travail\Sophy_2004_origine\essai\"
Set CL1 = ThisWorkbook
'Ajoute une feuille au classeur destiné à recevoir les données des autres classeurs
CL1.Sheets.Add
CL1.ActiveSheet.Name = "localisation_Cumul"
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 la feuille a copié
Set FL2 = Worksheets("Localisation")
'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(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
'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