Re : Variable Tableau : récupérer une plage multiple
Bonjour,
-Il me semble qu'il existe une solution simple & rapide avec les tableaux emboités (0,1 sec pour 65.000 lignes et 3 colonnes)
-Les colonnes peuvent avoir des nombres d'items différents (Ubound(a(col)) donne le nombre d'items de la colonne)
Code:
Sub Essai1()
Dim a(1 To 3)
a(1) = [B1:B65000]
a(2) = [C1:C65000]
a(3) = [F1:F65000]
lig = 2
col = 3
MsgBox a(col)(lig, 1)
End Sub
ou
Code:
Sub Essai()
Dim a(1 To 3)
a(1) = Application.Transpose([B1:B65000])
a(2) = Application.Transpose([C1:C65000])
a(3) = Application.Transpose([F1:F65000])
lig = 2
col = 3
MsgBox a(col)(lig)
End Sub
Autre exemple:
Code:
Sub Essai3()
Set Rng = Range("A1:A100,C1:C100,F1:F10,K1:K10")
n = Rng.Areas.Count
Dim a(): ReDim a(1 To n)
For i = 1 To n
a(i) = Rng.Areas(i).Value
Next i
lig = 2
col = 4
MsgBox a(col)(lig, 1)
End Sub
Code:
Sub essai4()
c = Array(1, 3, 6, 11)
n = UBound(c) + 1
Dim a(): ReDim a(1 To n)
For i = 1 To n
a(i) = Cells(1, c(i - 1)).Resize(10).Value
Next i
lig = 2
col = 4
MsgBox a(col)(lig, 1)
End Sub