Les tableaux de valeurs sont utiles lorsque l'on manipule des données en tout
genre. Ainsi, dans un carnet d'adresses, vous pouvez stocker toutes les adresses
dans un tableau structuré.
Par exemple :
Dim Adresses (1 to 50 )
As String
Adresses(1) = "12, avenue de la Fayette, Paris"
........
Adresses(50) = "4, rue de la Paix, Paris"
Comme vous pouvez le constatez, la définition d'un tableau ressemble beaucoup à
celle d'une variable à la seule différence que vous devez donner une limite aux
nombres de valeurs contenues dans un tableau. Pour appeler une des variables du
tableau, il faut faire précéder de la variable, un numéro qui permet d'identifier
la variable spécifique recherchée parmi toutes celles du tableau. ce tableau est à
une dimension,
Voici un exemple à 2 dimensions:
Dim Adresses (1 to 50, 1 to 50) As String
Adresses(1,0) = "Vincent"
Adresses(1,1) = "12, Rue de la paix, Paris"
.....
Adresses(50,0) = "Philip"
Adresses(50,50) = "7, Boulevard de la Villette"
Notez qu'avec les fonctions LBound et UBound, vous pouvez obtenir les limites
inférieures et supérieures d'un tableau.
Il existe une autre façon de définir un tableau :
Dim Adresses(50) As String
Adresses(0) = "12, avenue de la Fayette, Paris"
........
Adresses(50) = "4, rue de la Paix, Paris"
Avec cette méthode, les limites du tableau ne sont pas définies. Notez que le nombre
d'adresses est de 50 mais la numérotation va de 0 à 49 et non de 1 à 50. Il existe
cependant un moyen pour que la numérotation commence à 1 : c'est en utilisant
l'instruction
Option Base (par exemple: Option Base = 1)
qu'il faut placer dans la section Déclarations.
Pour construire un tableau, on peut aussi utiliser la fonction
Array :
Exemple :
Dim Semaine, Jour As String
Semaine = Array("lundi", "mardi", "mercredi", "jeudi",
"vendredi", "samedi", "dimanche")
Jour = (3) 'retourne jeudi
Une autre méthode consiste en la création de tableaux dynamiques. Pour comprendre
cette méthode, prenons un exemple :
Dim Adresse() As String
Dim NbAdresses As Integer
'Nouvelle adresse
NbAdresses = nbAdresses + 1
Redim
Adresse (NbAdresses)
Adresse (NbAdresses) = "75, Rue Lecourbe, Paris"
Ainsi, à chaque fois que l'on lance cette procédure, le nombre total d'adresses
(NbAdresses) est incrémenté (augmenté) de 1 et la nouvelle adresse est placé
à la fin du tableau. en effet,
Redim a pour effet de
reformater le tableau, et donc, tout ceux qui était dans le tableau est aussi
effacé sauf la dernière valeur entrée.
Cependant, il existe un moyen de conserver les données déjà présentes dans le tableau.
Pour cela, on fait appel à l'instruction
Preserve :
Redim Preserve Adresse (NbAdresses)
Enfin, pour terminer, il est possible d'effacer toutes les données d'un tableau.
Pour cela, on utilise l'instruction
Erase suivi du nom du tableau.