le premier fichier est au bureau et fermé et le 2ième vous voulez que les données de A1:D20 se copient vers par exemple G20 de Feuil1
Si cela cause des problème verifiez le valeur de "chemin", c'est quoi chez vous ?
Sub Import()
Dim Chemin, Fichier, Feuille, Plage, c, c1
'PREPARATION
Chemin = Environ("USERPROFILE") & "\Desktop\" 'chemin vers le bureau
Fichier = "classeur-ferme-sur-bureau.xlsm" 'nom du fichier
Feuille = "Feuil1" 'nom de la feuille
Set c = Range("a1:d20") 'la plage a recuper dans la feuille de ce fichier fermé
ThisWorkbook.Names.Add "Plage", RefersTo:="='" & Chemin & "[" & Fichier & "]" & Feuille & "'!" & c.Address(1, 1) 'nom défini
'EXECUTION
With Sheets("Feuil1") '<<<<<<< LE NOM DE LA FEUILLE O% VOUS VOULEZ COLLER
Set c1 = .Range(c.Address) 'pour savoir les dimensions de la plage à copier
With .Range("G20").Resize(c1.Rows.Count, c1.Columns.Count) '<<<<<<<< G20 EST LA CELLULE EN HAUT & GAUCHE DE LA PLAGE OU LES DONNEES DOIVENT ARRIVER
.ClearContents 'vider
.Cells(1).Formula2R1C1 = "=Plage" 'la formule
.Value = .Value 'remplacer la formule par le valeur
.Columns(1).NumberFormat = "ddd dd mmm yy" 'comme dessert les formats de cette plage
.Offset(, 2).Resize(, 2).NumberFormat = "#,##0.00 €"
.EntireColumn.AutoFit
End With
End With
End Sub