XL 2016 Récupérer les valeurs d'une colonne dans un array à une seule dimension

excelentille

XLDnaute Nouveau
Bonjour !

VB:
Dim arr1() As Variant
arr1 = Array("Cow", "Cat", "Cow", "Frog", "Pig", "Cat")

... Me récupère toutes ces données dans un tableau à une seul dimension :

EXCEL_WLYbgyJl80.png

En revanche,...
VB:
Dim arr1() As Variant
arr1 = Range("B2", Range("B2").End(xlDown))

... Me renvoie les données dans un tableau à 2 dimensions (ou du moins va chercher mes données dans la seconde colonne d'un tableau (1,1 / 2,1), que ma fonction est incapable de digérer :

EXCEL_tup2NnvWUq.png


J'ai testé pas mal de choses, mais ne parviens pas à récupérer ces données dans une colonne 0.

Une solution ?

Merci !
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Normal, un objet range est géré comme un tableau à deux dimension, raison pour laquelle on peut référencer une cellule par ObjetRange(1,2).

si vous n'avez pas des milliers de lignes vous pouvez utiliser :
Dim arr1() As Variant
arr1 = Application.Transpose(Range("B2", Range("B2").End(xlDown)).Value)
qui vous donnera un tableau à une dimension

Sinon il vous faudra passer par un autre tableau et transvaser les valeurs de l'un à l'autre dans une boucle for.

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 333
Membres
111 104
dernier inscrit
JEMADA