Sub récup_une_plage_de_cellules()
Dim chemin$, fichier$, feuille$, cellule As Range, rang As Range
chemin = "C:\Users\polux\Desktop"
fichier = "nombre en lettre Monnaie Euro dollar v 2.0.xlsm"
feuille = "Feuil1"
Set rang = Range("A1:B10")
tablo = (GetVal_on_closed_fich(chemin, fichier, feuille, rang))
Cells(1, 1).Resize(UBound(tablo), UBound(tablo, 2)) = tablo
End Sub
Sub récup_une_seule_valeur()
Dim chemin$, fichier$, feuille$, cellule As Range, rang As Range
chemin = "C:\Users\polux\Desktop"
fichier = "nombre en lettre Monnaie Euro dollar v 2.0.xlsm"
feuille = "Feuil1"
Set rang = Range("E3")
MsgBox GetVal_on_closed_fich(chemin, fichier, feuille, rang)
End Sub
'La fonction retourne un string ou tableau
'1 un string si l'argument "rang" est une seule celluleet donc sa valeur
'2 une variable tableau si rang est une plage de cellules donc les !! valeurs dans une variable tableau
Function GetVal_on_closed_fich(ByVal chemin As String, ByVal fichier As String, ByVal feuille As String, rang As Range) As Variant
Dim Rc$, tableau(), lig&, col&
If rang.Cells.Count = 1 Then
Rc = "R" & rang.Row & "C" & rang.Column
GetVal_on_closed_fich = ExecuteExcel4Macro("'" & chemin & "\[" & fichier & "]" & feuille & "'!" & Rc)
Else
ReDim tableau(1 To rang.Rows.Count, 1 To rang.Columns.Count)
For Each Cel In rang.Cells
lig = Cel.Row: col = Cel.Column
Rc = "R" & lig & "C" & col
tableau(lig - rang.Row + 1, col - rang.Column + 1) = ExecuteExcel4Macro("'" & chemin & "\[" & fichier & "]" & feuille & "'!" & Rc)
Next
GetVal_on_closed_fich = tableau
End If
End Function