Lorsque vous avez besoin d'un emplacement pour mettre une seule voiture, il n'y à pas de problème : Vous louez un seul garage. Quand vous avez besoin d'une seule variable, pas de problème non plus. Mais si tout à coup vous avez 10 ou 50 voitures à caser, chacune dans un garage, vous pouvez recherchez 10 ou 50 garages différents, mais ce sera long et difficile. Vous allez plutôt essayer de louer un parking composé de garages les uns à côté des autres.
Le parking aura un nom, et chaque garage le composant sera numéroté. En programmation, c'est pareil : Si vous avez besoin de plusieurs variables les unes à côté des autres (par exemple, la température du 1.1.2000, du 2.1.2000, du 3.1.2000, etc. jusqu'au 31 janvier), vous pourriez donc déclarer 31 variables qui s'appelleront par exemple 1Janvier, 2Janvier, 3Janvier, etc. jusqu'à 31Janvier... N'est-ce pas lourd ?
En fait, on pourrait simplement faire comme le parking : C'est à dire déclarer une variable qui s'appellerait Janvier, et qui serait suivie d'un numéro pour savoir de quel jour il s'agit, comme ceci : Janvier[1], Janvier[2], etc. jusqu'à Janvier[31]. Cette variable Janvier s'appelle un TABLEAU. Il faut donc, dans ce cas, DECLARER un TABLEAU.
Exemple basique
Sub Tableau()
Dim Armoire(3)
Armoire(1) = "Assiette"
Armoire(2) = "Verre"
Armoire(3) = "Serviette"
MsgBox Armoire(1)
MsgBox Armoire(2)
MsgBox Armoire(3)
End Sub
Exemple de tableau typé
Sub tableauV2()
Dim Tableau(1 To 10) As Integer
' Tableau(3) = "test" Génère une erreur
Tableau(4) = 775
End Sub
Il est possible de déclarer un tableau à un nombre d'éléments non défini, et ensuite, dynamiquement, lui donner des dimensions concrètes grâce à ReDim
Sub TableauV3()
Dim Tableau()
NombreCase = Val(InputBox("Combien d'éléments voulez-vous ?"))
ReDim Tableau(15)
End Sub
Remplissage d'un tableau de taille personnalisée avec toujours 33 dans chaque élément
Sub TableauV4()
Dim Etagere() As Integer
Dim NombreCase As Integer
NombreCase = Val(InputBox("Combien d'éléments voulez-vous ?"))
ReDim Etagere(NombreCase)
For compteur = 1 To NombreCase
NombreCase (compteur = 33)
Next
End Sub
Remplissage d'un tableau de taille personnalisée avec l'aide de l'utilisateur
Sub TableauV5()
Dim Etagere() As Integer
Dim NombreCase As Integer
NombreCase = Val(InputBox("Combien d'éléments voulez-vous ?"))
ReDim Etagere(NombreCase)
For compteur = 1 To NombreCase
NombreCase = InputBox("Entrez le nombre N°" & compteur
& " : ")
Next
End Sub
Même chose, avec ensuite affichage des choix de l'utilisateur
Sub TableauV6()
Dim Etagere() As Integer
Dim NombreCase As Integer
NombreCase = Val(InputBox("Combien d'éléments voulez-vous ?"))
ReDim Etagere(NombreCase)
For compteur = 1 To NombreCase
Etagere(compteur) = InputBox("Entrez le nombre N°" &
compteur & " : ")
Next
For compteur = 1 To NombreCase
Selection.TypeText Etagere(compteur)
Selection.TypeParagraph
Next
End Sub
Maintenant, en plus il donne le plus grand des chiffres
Sub TableauV7()
Dim Etagere() As Integer
Dim NombreCase As Integer
NombreCase = Val(InputBox("Combien d'éléments voulez-vous ?"))
ReDim Etagere(NombreCase)
For compteur = 1 To NombreCase
Etagere(compteur) = InputBox("Entrez le nombre N°" &
compteur & " : ")
Next
For compteur = 1 To NombreCase
Selection.TypeText Etagere(compteur)
Selection.TypeParagraph
Next
Dim LePlusGrand As Integer
LePlusGrand = 0
For compteur = 1 To NombreCase
If Etagere(compteur) > LePlusGrand Then
LePlusGrand = Etagere(compteur)
End If
Next
Selection.TypeText "Le plus grand est " & LePlusGrand
End Sub
Exercice : Trouver également le plus petit et la moyenne de tous les nombres