VBA :: Passing range results in a array

Je travaille actuellement sur une fonction de search dans VBA qui prendra les résultats d'une gamme recherchée et entrera l'adresse de l'location de la cellule dans un tableau.

J'ai essayé de configurer le tableau avec le code suivant.

Dim FindRange1 as Range Dim Find1 as Range Dim Results1() as Variant Dim R1 as integer Dim Max as integer Max = Range("E7:E1000").Cells.Count Set FindRange1 = Worksheets("Properties").Range("P7:P1000") If ILsearch.P1B1.Value = True Then For R1 = 1 To Max For Each Find1 In FindRange1 If (Find1.Value < TextBox1) And (Find1.Value > "0") Then Results1(R1) = Find1.Address End If Next Find1 Next R1 End If 

Vous devez dimensionner le tableau;

 redim Results1(Max) '//this will leave an empty Results1(0) 

Mieux vaut utiliser un indice 0;

 redim Results1(Max-1) ... Results1(R1 - 1) = Find1.Address 

Notez que cela crée un tableau avec des "lacunes" où seuls les index répondant à vos critères sont remplis.