Pour l'instant, on a déclaré que des variables individuelles, c'est-à-dire des variables une à une. Imaginez que vous ayez une liste d'invités à faire. Vous allez certainement déclarer comme ceci :
Code : VB.NET | Dim invite1 As String, invite2 As String, invite3 As String, invite4 As String
|
Sacrée soirée si vous n'avez que 4 invités !
Ouais mais bon, créer 50 variables c'est un peu galère...
Je ne suis pas tout à fait d'accord, il suffit d'avoir les bons outils. Bon j'avoue que je ne vous ai pas aidé pour l'instant, mais on va utiliser un outil très puissant :
les tableaux.
Comment déclarer un tableau ?
C'est comme pour les variables simples, on utilise
Dim puis le nom de la variable et enfin le type de la variable.
Code : VB.NET
Voilà, nous avons créé un tableau de 51 cellules sur une colonne. Un tableau fonctionne comme une feuille Excel, la colonne A est notre tableau et chaque ligne est une entrée. On peut ainsi mettre en cellule A1 le nom du premier invité en A2, le deuxième, ainsi de suite. En VBA, on n’utilise pas A1, A2... mais invite(0), invite(1)...
Un tableau commence à 0 et non à 1, c'est une source d'erreurs pour les néophytes en VBA.
Dans l'exemple précédent, on a donc créé 51 variables
invite numérotées de 0 à 50 et de type String. On peut donc maintenant attribuer un nom à chaque invité.
Code : VB.NET | invite(0)="Robert"
invite(1)="Marcel"
invite(2)="André"
invite(3)="Vital"
...
|
Un tableau peut prendre tous les types de variables et il est limité à 32 767 éléments.
Nous avons vu que les tableaux commençaient à 0. On peut modifier cette base avec la fonction
Option Base. Comme pour la fonction Option Explicit, il faut la placer avant tout code dans un module dans la section de déclarations comme ceci :
Code : VB.NET
Les tableaux commenceront alors à 1. Cette base de 1 peut être unique à un tableau en utilisant le mot-clé
To.
Code : VB.NET | Dim mon_tableau(1 To 15) as String
|
Ce tableau comprend 15 éléments de type String.
Les tableaux multidimensionnels
Les tableaux que l'on a vus pour l'instant sont à une dimension. Pour l'image, la dimension est la colonne A de notre tableur Excel. En VBA, on peut créer des tableaux à plusieurs dimensions. Pour un tableau à deux dimensions, c'est simple, on va renseigner le nombre de colonnes puis le nombre de lignes. Le tableau ressemble alors à une feuille de calculs classique.
Code : VB.NET | ' On crée un tableau de 11 colonnes et 5 lignes
Dim mon_tableau(10, 4) As String
' On peut alors attribuer des valeurs aux différents éléments du tableau
mon_tableau(0, 0) = "Première cellule"
mon_tableau(4, 2) = "Cellule de la 5ème colonne et 3ème ligne"
|
Ce n'est pas fini. Même si ce tableau comporte alors 55 cellules, on peut le dupliquer dans une troisième dimension. Reprenons l'exemple du classeur Excel, vous avez votre feuille qui est un tableau à 2 dimensions et pouvez la dupliquer ! À chaque fois, le nombre de cellules dans le tableau augmente. Ça fonctionne toujours de la même façon :
Code : VB.NET | Dim super_tableau(5, 3, 6) As String
|
Ce tableau comporte donc 7 feuilles de 6 colonnes et 4 lignes. Ce qui nous fait 168 cellules et éléments qui peuvent prendre une valeur.
On dit que le nombre de dimensions peut monter jusqu'à 5, mais la gestion de ces tableaux devient très difficile. De plus, plus on donne de dimensions, plus on augmente l'espace utilisé par la mémoire. De ce fait, au bout d'une certaine quantité de mémoire utilisée, le programme peut ralentir le fonctionnement de la machine. Attention donc à ne pas utiliser de l'espace inutilement.