Bonjour,
Pour nettement simplifier ta compilation, et préparer d'éventuelles autres utilisations, voici une autre forme de compilation : je crée une base de données (à compléter, je n'ai pas mis le mois car je ne comprends pas la relation entre semaine et mois) et je fais un TCD
(merci à gmb pour avoir donné le jeu de données)
Option Explicit
Dim wbk1 As Workbook, wbk2 As Workbook
Dim chemin$, monFichier$
Dim i&, ln&
Sub ouvrir_fichiers()
Set wbk1 = ThisWorkbook
wbk1.Sheets("Compilation").Range("A1").CurrentRegion.Offset(1, 0).ClearContents
i = 2
chemin = ThisWorkbook.Path & "\"
monFichier = Dir(chemin & "*.xlsx")
Do While monFichier <> ""
Set wbk2 = Workbooks.Open(chemin & monFichier)
With wbk1.Sheets("Compilation")
For ln = 34 To 38
.Cells(i, 1) = Range("C3")
.Cells(i, 2) = Range("D3")
.Cells(i, 3) = Cells(ln, "J")
.Cells(i, 4) = Cells(ln, "K")
i = i + 1
Next ln
End With
wbk2.Close False
monFichier = Dir
Loop
' si on ne veut pas effacer au début de la procédure et pour éviter les doublons
ActiveSheet.Range("$A$1:$D$" & i).RemoveDuplicates Columns:=Array(1, 2, 3, 4), Header:=xlNo
Sheets("TCD").PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
End Sub