Sub CopieColleWbk()
Dim CD As Workbook ' déclare la variable CD (Classeur Destination)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim BD As FileDialog 'déclare la variable BD (Bôite de Dialogue)
Dim CS As Workbook ' déclare la variable CS (Classeur source)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim I As Byte 'déclare la variable I (Incrément)
Set CD = ThisWorkbook 'définit la classeur destination CD
Set OD = CD.Worksheets("données") 'définit l'onglet destination OD
Set BD = Application.FileDialog(msoFileDialogFilePicker) 'définit BD pour sélectionner un ou plusieurs fichiers
With BD 'prend en compte BD
.AllowMultiSelect = True 'autorise la sélection mutiple
.Show 'affiche la boîte de dialogue
For I = 1 To .SelectedItems.Count 'boucle sur tous les fichiers sélectionnés
Application.Workbooks.Open BD.SelectedItems(I) 'ouvre le fichier de la boucle
Set CS = ActiveWorkbook 'définit le classeur source CS
Set OS = CS.Worksheets("Feuil1") 'définit l'onglet source OS
'copie la plage A5:BP... de l'onglet source OS et la colle dans la première ligne vide de la colonne A de l'onglet destination OD
OS.Range("A5:BP" & OS.Cells(Application.Rows.Count, "C").End(xlUp).Row).Copy OD.Cells(Application.Rows.Count, "A").End(xlUp)(2)
CS.Close False 'ferme le classeur source (sans enregistrer)
Next I 'prochain claseur de la source
End With 'fin de la prise en compte de la boîte de dialogue BD
End Sub