Sub Test()
Dim rngData As Range, tablo
With Sheets("CHANTIER").ListObjects("CHANTIEROUVERTURE").DataBodyRange
Set rngData = Union(.Columns(1), .Columns(4), .Columns(5)) '1, 4 et 5
End With
tablo = Tableau(rngData)
MsgBox "1ère ligne => " & tablo(1, 1) & " " & tablo(1, 2) & " " & tablo(1, 3) 'pour tester
End Sub
Function Tableau(Rng As Range)
Dim a As Range, n%, nlig&, ncol%, Tbl(), i&, j%
For Each a In Rng.Areas
If n = 0 Then nlig = a.Rows.Count
If a.Rows.Count <> nlig Then MsgBox "Plage non valide !", 48: End
ncol = a.Columns.Count
n = n + ncol
ReDim Preserve Tbl(1 To nlig, 1 To n)
For i = 1 To nlig
For j = 1 To ncol
Tbl(i, n - ncol + j) = a(i, j)
Next j, i, a
Tableau = Tbl
End Function