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éfinition : Déclaration
Dim liste As Collection
set liste = New Collection
crée une nouvelle variable liste de type Collection
Définition : Déclaration raccourcie
Dim liste As New Collection
crée une nouvelle variable liste de type Collection
Définition : Ajouter un élément
liste.add "lundi"
Ajoute le contenu "lundi" à la fin de la collection
Définition : Supprimer un élément
liste.remove 2
Supprime le deuxième élément de la liste
Définition : Nombre d'éléments
liste.Count
Retourne le nombre d'éléments
Définition : Ré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.
liste.Item 3
ou
liste(3)
Retourne le troisième élément
Exemple :
Dim liste As New Collection
liste.add "lundi"
liste.add 123
liste.add True
liste.add #9/10/1970#
Dim liste As New Collection
liste.add "lundi"
liste.add "mardi"
liste.add "mercredi"
liste.add "jeudi"
liste.remove 2
liste.add "mardi"
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éthode : Utilisation d'une clé
La clé doit être de type String
Dim liste As New Collection
liste.add Key:="1", Item:="lundi"
liste.add Key:="2", Item:="mardi"
liste.add Key:="3", Item:="mercredi"
La clé est indépendante du rang de l'élément
Dim liste As New Collection
liste.add Key:="2", Item:="lundi"
liste.add Key:="3", Item:="mardi"
liste.add Key:="1", Item:="mercredi"
Elle peut être n'importe quelle chaîne de caractères
Dim liste As New Collection
liste.add Key:="a", Item:="lundi"
liste.add Key:="b", Item:="mardi"
liste.add Key:="c", Item:="mercredi"
Supprimer un élément
liste.remove "c"
Supprime l'élément de clé "c"
Récupérer un élément
liste.item "c"
ou
liste("c")
Méthode : Modifier 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é.
Dim liste As New Collection
liste.add Key:="1", Item:="lundi"
liste.add Key:="2", Item:="mardi"
liste.add Key:="3", Item:="mercredi"
liste.add Key:="4", Item:="jeudi"
liste.remove "2"
liste.add Key:="2", Item:="vendredi"
Pour l'ordre, il faudra utiliser les clés et non le rang.
texte = ""
For i = 1 To liste.Count
texte = texte & liste(cStr(i)) & ","
Next i
On convertie i en String pour faire appel à la clé et non au rang.