Merci pour ces éléments.
En revanche, dans mon test, ce n'est pas la taille de ma collection que je veux mesurer, mais celle de ses éléments (égale pour tous).
J'ai donc plutôt remplacé par
While tottab.Item(1).Value.Rows.Count < nb_max
Mon code entier est donc le suivant:
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
| Sub algo_seq()
'tottab contient tous les "blocs" de nombre, qui sont des tableaux
Dim tottab As New Collection
'testtab est le tableau "tampon"
Dim testtab() As Integer
ReDim testtab(1)
'on prend ici les mêmes valeurs que dans mon exemple
Dim ch_max As Integer
Dim nb_max As Integer
ch_max = 3
nb_max = 3
'on initialise la collection de base
For i = 1 To ch_max
testtab(0) = i
tottab.Add testtab(0)
Next
'on remplit la collection de base jusqu'à avoir les bonnes longueur de bloc
While tottab.Item(1).Rows.Count < nb_max
fin = tottab.Count
For i = fin To 1 Step -1
For j = 1 To ch_max
tottab.Add Union(tottab.Item(i).Value, j)
Next
tottab.Remove i
Next
Wend
'je lance ma macro sur tous les blocs
'For sequence = 1 To tottab.Count
'ajouter(tottab.Item(sequence).Value)
'Next sequence
End Sub |
Mais j'ai une erreur d'objet requis justement dans la ligne correspondant au test. Je n'ai pas l'impression qu'il comprenne qu'il s'agit d'un tableau. Que j'essaye avec ou sans «Rows», cela ne fonctionne pas...
Partager