Table des matières:
Vidéo: ⏩ Excel codes VBA, Transferts de données d'une feuille automatiquement 2024
La plupart des langages de programmation supportent les tableaux, y compris VBA. Un tableau est un groupe de variables qui partagent un nom. Vous faites référence à une variable spécifique dans le tableau en utilisant le nom du tableau et un numéro d'index entre parenthèses. Par exemple, vous pouvez définir un tableau de 12 variables de chaîne pour contenir les noms des mois de l'année. Si vous nommez le tableau MonthNames , vous pouvez vous référer au premier élément du tableau en tant que MonthNames (1), le second élément en tant que MonthNames (2), et ainsi de suite.
Déclaration de tableaux
Avant de pouvoir utiliser un tableau, vous devez le déclarer . Aucune exception. Contrairement aux variables normales, VBA est très strict sur cette règle. Vous déclarez un tableau avec une instruction Dim ou Public, tout comme vous déclarez une variable régulière. Cependant, vous devez également spécifier le nombre d'éléments dans le tableau. Pour ce faire, spécifiez le premier numéro d'index, le mot-clé To et le dernier numéro d'index - tous entre parenthèses. L'exemple suivant montre comment déclarer un tableau de 100 entiers:
Dim MyArray (1 à 100) As Integer
Lorsque vous déclarez un tableau, vous pouvez choisir de ne spécifier que l'index supérieur. Si vous omettez l'index inférieur, VBA suppose qu'il est 0. Par conséquent, les deux instructions suivantes déclarent le même tableau de 101 éléments:
Dim MyArray (0 à 100) en tant que Integer Dim MyArray (100) en tant qu'entier
Si vous voulez que VBA suppose que 1 (plutôt que 0) est l'index inférieur pour vos tableaux, incluez l'instruction suivante dans la section Déclarations en haut de votre module:
Option Base 1
Cette instruction force VBA à utiliser 1 comme premier numéro d'index pour les tableaux qui déclarent uniquement l'index supérieur. Si cette instruction est présente, les instructions suivantes sont identiques, les deux déclarant un tableau de 100 éléments:
Dim MyArray (1 à 100) en tant que Integer Dim MyArray (100) Entier
Tableaux multidimensionnels
Les tableaux créés dans les exemples précédents sont tous des tableaux unidimensionnels. Pensez aux tableaux unidimensionnels comme une seule ligne de valeurs. Les tableaux que vous créez dans VBA peuvent contenir jusqu'à 60 dimensions - bien que vous ayez rarement besoin de plus de deux ou trois dimensions dans un tableau. L'exemple suivant déclare un tableau 81-integer avec deux dimensions:
Dim MyArray (1 à 9, 1 à 9) As Integer
Vous pouvez considérer ce tableau comme occupant une matrice 9 x 9 - parfait pour stocker tous nombres dans un puzzle de Sudoku.
Pour faire référence à un élément spécifique de ce tableau, vous devez spécifier deux numéros d'index (similaires à sa "ligne" et à sa "colonne" dans la matrice).L'exemple suivant montre comment affecter une valeur à un élément de ce tableau:
MyArray (3, 4) = 125
Cette instruction attribue une valeur à un seul élément du tableau. Si vous pensez à la matrice en termes de matrice 9 x 9, cela affecte 125 à l'élément situé dans la troisième ligne et la quatrième colonne de la matrice.
Voici comment déclarer un tableau tridimensionnel, avec 1 000 éléments:
Dim My3DArray (1 à 10, 1 à 10, 1 à 10) As Integer
Vous pouvez penser à un tableau tridimensionnel tableau en tant que cube. Visualiser un tableau de plus de trois dimensions est plus difficile.
Tableaux dynamiques
Vous pouvez également créer des tableaux dynamiques . Un tableau dynamique n'a pas de nombre prédéfini d'éléments. Déclarez un tableau dynamique avec un ensemble vide de parenthèses:
Dim MyArray () As Integer
Avant de pouvoir utiliser ce tableau, vous devez utiliser l'instruction ReDim pour indiquer à VBA le nombre d'éléments dont dispose le tableau. Généralement, le nombre d'éléments dans le tableau est déterminé lorsque votre code est en cours d'exécution. Vous pouvez utiliser l'instruction ReDim autant de fois que vous le souhaitez, en changeant la taille du tableau aussi souvent que nécessaire. L'exemple suivant montre comment modifier le nombre d'éléments dans un tableau dynamique. Il suppose que la variable NumElements contient une valeur que votre code a calculée.
ReDim MyArray (1 à NumElements)
Lorsque vous redimensionnez un tableau à l'aide de ReDim, vous effacez toutes les valeurs actuellement stockées dans les éléments du tableau. Vous pouvez éviter de détruire les anciennes valeurs en utilisant le mot clé Preserve. L'exemple suivant montre comment vous pouvez conserver les valeurs d'un tableau lorsque vous redimensionnez le tableau:
ReDim Preserve MyArray (1 à NumElements)
Si MyArray a actuellement dix éléments, et que vous exécutez l'instruction précédente avec NumElements égal à 12, le les dix premiers éléments restent intacts et le tableau peut contenir deux éléments supplémentaires (jusqu'au nombre contenu dans la variable NumElements). Si NumElements est égal à 7 cependant, les sept premiers éléments sont conservés, mais les trois autres éléments rencontrent leur disparition.