Sub testQ()
Dim R(1 To 4) As Range
Dim tblarea() As Variant
Dim T, A&, I&, Texte$
Dim Texte As String
Dim rng As Range
Cells.Interior.Color = xlNone
'for the example 4 ranges which intersect somewhere
Set R(1) = [D3:J9]
Set R(2) = [E1:E15]
Set R(3) = [B7:E7]
Set R(4) = [G1:G5]
'for the demo I put the ranges in color
R(1).Interior.Color = RGB(0, 200, 255)
R(2).Interior.Color = RGB(0, 255, 200)
R(3).Interior.Color = RGB(255, 200, 0)
R(4).Interior.Color = RGB(200, 255, 0)
'we group them all together with union function
Set rng = Union(R(1), R(2), R(3), R(4))
ReDim tblarea(1 To rng.Areas.Count)
For Each area In rng.Areas
A = A + 1
ReDim T(area.Row To area.Row + area.Rows.Count - 1, area.Column To area.Column + area.Columns.Count - 1)
tblarea(A) = T
Next
'lecture
For I = 1 To UBound(tblarea)
Texte = Texte & rng.Areas(I).Address & vbCrLf & " ligne " & LBound(tblarea(I)) & " à " & UBound(tblarea(I)) & vbCrLf & _
"les colonnes " & LBound(tblarea(I), 2) & " à " & UBound(tblarea(I), 2) & vbCrLf & "*******************************" & vbCrLf
Next
MsgBox Texte
'reste plus qu'a boucler sur les items tableaux vides
'et les comparer entre eux
'les index seront les mêmes puisqu'il ont été dimentionner avec les vrai index de ligne et colonne des areas
End Sub