Collection

Une collection est un objet de VBA qui permet de stocker différentes informations n'ayant pas forcément le même type.

Cet objet contient quatre méthodes qui permettent de le manipuler.

  • add : ajouter

  • item : récupérer

  • remove : supprimer

  • count : compter

DéfinitionDéclaration

1
Dim liste As Collection
2
set liste = New Collection

crée une nouvelle variable liste de type Collection

DéfinitionDéclaration raccourcie

1
Dim liste As New Collection

crée une nouvelle variable liste de type Collection

DéfinitionAjouter un élément

1
liste.add "lundi"

Ajoute le contenu "lundi" à la fin de la collection

DéfinitionSupprimer un élément

1
liste.remove 2

Supprime le deuxième élément de la liste

DéfinitionNombre d'éléments

1
liste.Count

Retourne le nombre d'éléments

DéfinitionRécupérer un élément

On peut récupérer le contenu d'une collection grâce à son rang dans la collection. Ce contenu est en lecture seul.

1
liste.Item 3

ou

1
liste(3)

Retourne le troisième élément

Exemple

1
Dim liste As New Collection
2
liste.add "lundi"
3
liste.add 123
4
liste.add True
5
liste.add #9/10/1970#
Collection
1
Dim liste As New Collection
2
liste.add "lundi"
3
liste.add "mardi"
4
liste.add "mercredi"
5
liste.add "jeudi"
6
liste.remove 2
7
liste.add "mardi"
Collection - Remove

mardi est supprimé de la liste, ce qui décale les éléments.

Puis, il est ajouté à la liste en dernière position.

On peut gérer une clé sur chaque éléments de notre collection

MéthodeUtilisation d'une clé

La clé doit être de type String

1
Dim liste As New Collection
2
liste.add Key:="1", Item:="lundi"
3
liste.add Key:="2", Item:="mardi"
4
liste.add Key:="3", Item:="mercredi"

La clé est indépendante du rang de l'élément

1
Dim liste As New Collection
2
liste.add Key:="2", Item:="lundi"
3
liste.add Key:="3", Item:="mardi"
4
liste.add Key:="1", Item:="mercredi"

Elle peut être n'importe quelle chaîne de caractères

1
Dim liste As New Collection
2
liste.add Key:="a", Item:="lundi"
3
liste.add Key:="b", Item:="mardi"
4
liste.add Key:="c", Item:="mercredi"

Supprimer un élément

1
liste.remove "c"

Supprime l'élément de clé "c"

Récupérer un élément

1
liste.item "c"

ou

1
liste("c")

MéthodeModifier un élément

Le contenu d'une collection ne peut pas être modifié.

Par contre, on peut supprimer un élément et en ajouter un autre ayant la même clé.

1
Dim liste As New Collection
2
liste.add Key:="1", Item:="lundi"
3
liste.add Key:="2", Item:="mardi"
4
liste.add Key:="3", Item:="mercredi"
5
liste.add Key:="4", Item:="jeudi"
6
liste.remove "2"
7
liste.add Key:="2", Item:="vendredi"

Pour l'ordre, il faudra utiliser les clés et non le rang.

1
texte = ""
2
For i = 1 To liste.Count
3
  texte = texte & liste(cStr(i)) & ","
4
Next i

On convertie i en String pour faire appel à la clé et non au rang.

Collection - Clé