Bonjour.
J'ai besoin d'avoir un array à partir d'une plage d'un tableau croisé dynamique (pour ensuite l'utiliser dans un filtre ailleurs), et je m'en sors pas... et surtout je comprend pas.
Voilà comment je tente d'alimenter mon array :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| Sub tab_experts(entite)
Dim tab_abo As Variant
Dim plage As Object
Dim tableau() As Variant
Dim nb_rsx As Integer
Dim i As Byte
Dim toto As Variant
tcd_abos.PivotFields("nom_entite").CurrentPage = entite
With tcd_abos.PivotFields("Abonné")
.PivotItems("Abonné").visible = True
.PivotItems("Utilisateur").visible = False
.PivotItems("(blank)").visible = False
End With
Set plage = tcd_abos.PivotFields("nom_rsx").DataRange
nb_rsx = plage.Rows.Count
For i = 1 To nb_rsx
toto = plage.Cells(i, 1).Value
tableau(i) = plage.Cells(i, 1).value
Next i
End Sub |
Je m'attend au bout du compte à retrouver dans tableau quelque chose genre ("valeur1","valeur2","valeur3"). Un array, quoi.
la variable de test toto contient bien, au fur et à mesure de la boucle, les valeurs que j'attend (donc valeur1, valeur2...) en revanche la macro bloque sur la ligne :
tableau(i) = plage.Cells(i, 1).value
avec une erreur d'exécution 9 : l'indice n'appartient pas à la sélection.
mais pourquoi, pourquoi, pourquoi ?????
L'interrogation du tcd en elle même fonctionne très bien et renvoie ce que j'attend, je l'utilise à plusieurs autres endroits.
Je vais me tirer une balle... Y a visiblement un truc que j'ai pas capté dans les arrays en VBA...
Merci !
PS : j'ai bien un Option base 1 au début.
Partager