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 57 58 59 60 61 62 63 64 65
|
Sub Boucle_Sur_Feuille()
'Déclarations
Dim wkbOrig As Workbook
Dim wkbDest As Workbook
Dim wksDest As Worksheet
Dim rgOrig As Range
Dim rgDest As Range
Dim fichcherche As Variant
Dim cptFic As Long
Dim Ligdeb As Long
Dim Ligfin As Long
'Instanciation de la destination
Set wkbDest = ActiveWorkbook
wkbDest.Sheets.Add 'Ajout de la feuille de destination
Set wksDest = ActiveSheet
wksDest.Name = "Donnees"
Set fichcherche = Application.FileSearch
'Chemin d'accès des fichiers à copier
strPath = InputBox("Entrez l'adresse du répertoire" + Chr(10) + "des fichiers à utiliser: ", "Chemin")
'Recherche sur les fichiers xls du répertoire
fichcherche.LookIn = strPath
fichcherche.Filename = "*.xls"
If fichcherche.Execute > 0 Then
MsgBox fichcherche.FoundFiles.Count & " Fichier(s) a (ont) été trouvé(s)."
End If
Application.ScreenUpdating = False
'Boucle sur les fichiers et copie des plages
For cptFic = 1 To fichcherche.FoundFiles.Count
Workbooks.OpenText Filename:=fichcherche.FoundFiles(cptFic)
Set wkbOrig = ActiveWorkbook
Set rgOrig = wkbOrig.ActiveSheet.Range("C1028:AC1249")
Ligdeb = ((cptFic - 1) * 222) + 1
Ligfin = Ligdeb + 222 - 1
Set rgDest = wksDest.Range(wksDest.Cells(Ligdeb, 1), wksDest.Cells(Ligfin, 26))
rgOrig.Copy
rgDest.PasteSpecial xlValues 'Erreur 1004 à ce niveau dès le début
Next cptFic
'Ferméture des fichiers d'origine
For cptFic = 1 To fichcherche.FoundFiles.Count
Workbooks.OpenText Filename:=fichcherche.FoundFiles(cptFic)
Set wkbOrig = ActiveWorkbook
wkbOrig.Close
Next cptFic
Application.ScreenUpdating = True
wkbDest.Activate
Set rgDest = wksDest.Range(wksDest.Cells(1, 1), wksDest.Cells(Ligfin, 28))
rgDest.Select
Selection.Sort Key1:=Range("B1"), Order1:=xlAscending
End Sub |