Salut
Je suis également un grand utilisateur de collections, et j'ai été confronté plus d'une fois à ces problèmes de clés que j'aurais aimé pouvoir récupérer. Hélas, ce n'est pas possible, sauf à créer deux collections croisées, la deuxième indexée sur la première et renvoyant la même valeur item/index. Solution un peu lourde mais qui, il est vrai, m'a économisé une fois ou deux un peu de temps et quelques lignes de code.
Tiens, pendant que j'y suis, une petite astuce, n'utilisez pas de boucle du genre :
For i = 1 to Col.Count
Next i
il est bien plus rapide de procéder comme suit :
Dim Elt
For Each Elt in Col
'...
Next Elt
Et allez tiens, je vous en rajoute une autre. Cette syntaxe fonctionne également avec un Array, qui fonctionne alors comme une collection. Ainsi on peut très bien écrire :
Dim Elt
For Each Elt in Array(ListBox1, ListBox2, ListBox3)
'...
Next Elt
On a là au passage un exemple qu'une variable de type Variant (ce qu'est la variable Elt) peut conduire à une boucle bien plus rapide que si on avait utilisé un index de type Integer ou Long. Comme quoi il ne faut pas toujours mépriser ces Variant.
Message édité par: Ti_, à: 19/04/2006 18:44
Message édité par: Ti_, à: 19/04/2006 18:46