Sub macro1()
Dim CD As Workbook 'déclare la variabe CD (Classeur Destination)
Dim CA As String 'déclare la variabe CA (Chemin d'Accès)
Dim CS As Workbook 'déclare la variabe CS (Classeur Source)
Dim OD As Worksheet 'déclare la variabe OD (Onglet Destination)
Dim OS As Worksheet 'déclare la variabe OD (Onglet Source)
Dim DEST As Range 'déclare la variabe DEST (cellule de DESTination)
Dim F As String 'déclare la variabe F (Fichier)
Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
Application.DisplayAlerts = False 'masque les messages d'Excel
Set CD = ThisWorkbook 'définit le classeur destination CD
Set OD = CD.Worksheets("DATA") 'défint l'onglet destination OD
CA = CD.Path & "\" 'définit le chemin d'accès CA
F = Dir(CA & "*.xlsx") 'définit le premier ficher .xlsx du dossier du chemin d'accès CA
Do While F <> "" 'boucle tant qu'il existe des fichiers
Workbooks.Open CA & F 'ouvre le fichier F
Set CS = ActiveWorkbook 'définit le classeur source CS
Set OS = CS.Worksheets("DAT") 'définit l'onglet source CS
'définit la cellule de destiantion DEST (B5 si B5 est vide, sinon, la première cellule vide de la colonne B de l'onglet OD
If OD.Range("B5").Value = "" Then Set DEST = OD.Range("B5") Else Set DEST = OD.Cells(Application.Rows.Count, "B").End(xlUp).Offset(1, 0)
OS.Range("AY34:JX34").Copy 'copy la plage AY34:JX34 de l'onglet source OS
DEST.PasteSpecial (xlPasteValues) 'colle les valeur dans DEST
DEST.PasteSpecial (xlPasteFormats) 'colle les formats dans DEST
CS.Close False 'ferme le classeur source sans enregistrer
F = Dir 'définit le prochain classeur .xlsx du dossier du chemin d'accès CA
Loop 'boucle
Application.DisplayAlerts = True 'affiche les messages d'Excel
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
End Sub