Bonjour,
Un exemple, petites explications dans le code :
Sub Tableau()
Dim Tbl As Variant 'doit être déclaré Variant
Dim Tablo() As String 'ceci ne marche pas
Dim I As Integer
Dim J As Integer
Tbl = Range("liste")
'la première dimension représente les lignes et la seconde les colonnes
'ici, si la plage va de A1 à B5, Tbl(2, 1) donne la valeur située en A2
MsgBox Tbl(2, 1)
On Error Resume Next
'ceci ne marche pas si typé différemment de Variant
Tablo = Range("liste")
'mais fonctionne de cette façon en dimensionnant au préalable
With Range("liste")
ReDim Tablo(1 To .Rows.Count, 1 To .Columns.Count)
End With
For I = 1 To Range("liste").Rows.Count
For J = 1 To Range("liste").Columns.Count
Tablo(I, J) = Range("liste")(I, J)
Next J
Next I
'la première dimension représente les lignes et la seconde les colonnes
'ici, si la plage va de A1 à B5, Tbl(2, 1) donne la valeur située en A2
MsgBox Tablo(2, 1)
End Sub
Hervé.