1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| Function CreationTableau(ParamArray Cellules1()) As Variant
'Adapté de:
'http://support.microsoft.com/?kbid=213403
'
Dim VarTab() As Variant
Dim Temp As Variant
Dim i As Integer
Dim w As Integer, X As Integer, y As Integer, z As Integer
i = 1
'Boucle sur les éléments du tableau de paramètres.
For X = 0 To UBound(Cellules1)
If TypeName(Cellules1(X)) = "Range" Then
Set Temp = Cellules1(X)
'Vérifie si le paramètre passé à la fonction est une cellule simple
'ou une plage.
If IsArray(Temp) Then
'Intègre chaque cellule de la plage dansle tableau.
For y = 1 To UBound(Temp.Value)
For z = 1 To UBound(Temp.Value, 2)
'Permet de filtrer les cellules vides.
'If Not IsEmpty(Temp(y, z).Value) Then
ReDim Preserve VarTab(1 To i)
VarTab(i) = Temp(y, z).Value
i = i + 1
'End If
Next z
Next y
Else
'Permet de filtrer les cellules vides.
'If Not IsEmpty(Temp) Then
'Intègre la cellule dans le tableau.
ReDim Preserve VarTab(1 To i)
VarTab(i) = Temp
i = i + 1
'End If
End If
Else
ReDim Preserve VarTab(1 To i)
VarTab(i) = Cellules1(X)
i = i + 1
End If
Next X
CreationTableau = VarTab
End Function |