Médiaforma

VBA Excel – Tableaux

Partagez cet article sur vos réseaux

Un tableau est une variable qui peut contenir plusieurs valeurs. Les différentes valeurs mémorisées sont accédées par leur indice.

Pour déclarer un tableau, vous utiliserez le mot-clé Dim. Ici par exemple, nous définissons un tableau d’entiers T qui peut contenir 26 valeurs, accessibles par les indices 0 à 25 :

Dim T(25) As Integer

Remarque

Si vous avez du mal avec l’indice des tableaux qui commence à 0, vous pouvez déclarer l’instruction suivante au début du module pour que l’indice du premier élément de tous les tableaux définis dans le module soit toujours 1 :

Option Base 1

Pour affecter la valeur 5 à la première case du tableau, vous utiliserez cette instruction :

T(0) = 5

Pour afficher dans la cellule C2 le contenu de la première case du tableau, vous utiliserez cette instruction :

Cells(2,3) = T(0)

La cellule C2 affichera donc la valeur 5.

Définition et remplissage d’un tableau

Vous pouvez définir le contenu des cases d’un tableau avec la fonction Array(). Pour pouvoir utiliser cette fonction, le tableau doit avoir au préalable été déclaré de type Variant.

Par exemple, pour définir le tableau Prenom et lui affecter les trois prénoms suivants : Lio, Eric et Kévin, vous utiliserez les instructions suivantes :

Dim Prenom As Variant

Prenom = Array("Lio", "Eric", "Kévin")

Redimensionnement d’un tableau

Il est toujours possible de redimensionner un tableau en utilisant le mot-clé Redim.

Supposons que nous voulions ajouter une case au tableau Prenom précédent. Ce tableau comporte 3 cases. L’instruction à utiliser sera donc la suivante :

Redim Prenom(4)

Par défaut, le redimensionnement d’un tableau entraine la perte des données qui y étaient stockées. Pour éviter de perdre les trois prénoms du tableau Prenom, vous utiliserez le mot-clé Preserve :

Redim Preserve Prenom(3)

Vous pourrez alors ajouter un quatrième prénom au tableau :

Prenom(3) = "Michel"

Affichez les quatre prénoms pour vous assurer que le redimensionnement n’a rien écrasé :

Cells(1,1) = Prenom(0)

Cells(1,2) = Prenom(1)

Cells(1,3) = Prenom(2)

Cells(1,4) = Prenom(3)

Voici le résultat :

Tableaux multidimensionnels

Pour en terminer avec les tableaux, sachez qu’il est possible de définir des tableaux multidimensionnels. Pour cela, il suffit de définir les indices maximaux de chaque dimension lors de la définition du tableau. Ici par exemple, nous définissons un tableau à 3 dimensions :

Dim T(2,3,5) As Integer

Ce tableau contient 2*3*5 cases, soit 30 cases. Par exemple, pour affecter la valeur 12 à la première case du tableau, vous utiliserez cette instruction :

T(0,0,0) = 12
 
Commentaires