Bonjour Fidele Walit, bonjour le forum,
Essaie avec ce code à placer dans le fichier recevant les données :
Sub Macro1()
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim CA As String 'déclare la variable CA (Chemin d'accès)
Dim F As String 'déclare la variable F (Fichiers)
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim DEST As Range 'déclare la variable DEST (Cellule de DESTination)
Set CD = ThisWorkbook 'définit le classeur destination CD
Set OD = CD.Sheets(1) 'définit l'onglet destination OD (premier onglet du classeur)
CA = "C:\Users\Desktop\A compiler\" 'définit le chemin d'accès CA
F = Dir(CA & "\*.xls") 'définit le fichier F (premier fichier .xls ayant CA comme chemin d'accès)
Do While F <> "" 'exécute tant qu'il existe des fichiers .xls dans le dossier ayant CA comme chemin d'accès
Workbooks.Open (CA & F) 'ouvre le fichier F
Set CS = ActiveWorkbook 'définit le classeur source CS
Set OS = CS.Sheets(1) 'définit l'onglet source CS (premier onglet du classeur)
Application.DisplayAlerts = False 'masque les messages d'Excel
OS.Cells.UnMerge 'supprime la fusion des cellules
Application.DisplayAlerts = True 'affiche les messages d'Excel
'définit la cellule de destination DEST (D4 si D4 est vide, sinon la première colonne vide de la ligne 4)
Set DEST = IIf(OD.Range("D4").Value = "", OD.Range("D4"), OD.Cells(4, Application.Columns.Count).End(xlToLeft).Offset(0, 1))
OS.Range("G3:G55").Copy 'copie la palge G3:G55 de l'onglet source
DEST.PasteSpecial (xlPasteFormats) 'colle les formats dans DEST
DEST.PasteSpecial (xlPasteValues) 'colle les valeurs dans DEST
CS.Close False 'ferme le classeur source CS sans enregistrer les modification
F = Dir 'redéfinit le ficheir F (prochain fichier .xls ayant CA comme chemin d'accès)
Loop 'boucle
End Sub