'patricktoulon
'exemple; '='chemin & "\[" & nomfichier &"]" & nomdelafeuille & "'!" address de cellule"
Sub test_récup_plagemacro4()
Dim Chemin$, fichier$, Feuille$, T, plage As Range
Chemin$ = ThisWorkbook.Path 'à adapter
fichier$ = "Datas externes.xlsx" 'à adapter
Set plage = [C11:C15,C20:C21,C18] 'la plage en range
Feuille$ = "Feuil1" 'le non de la feuille (Attention pas le codename mais bien le nom que vous lui avez donné)
T = GetRowNOnColumnCloseFich(Chemin, fichier, "Feuil1", plage)
[A1].Resize(UBound(T)).Value = T
MsgBox "min : " & Application.Min(T, 1)
MsgBox "max : " & Application.Max(T)
MsgBox WorksheetFunction.Sum(T) / UBound(T)
End Sub
Function GetRowNOnColumnCloseFich(Chemin As String, fich As String, Feuille As String, rng As Range)
Dim tbl(), I&, valeur
ReDim tbl(1 To rng.Cells.Count)
For Each cel In rng.Cells
I = I + 1:
valeur = ExecuteExcel4Macro("""""&'" & Chemin & "\[" & fich & "]" & Feuille & "'!" & cel.Address(, , xlR1C1))
tbl(I) = IIf(valeur <> "", Val(valeur), valeur)
Next
ReDim Preserve tbl(1 To I)
GetRowNOnColumnCloseFich = Application.Transpose(tbl)
End Function