|
Structure de tableau
On a
souvent besoin de travailler sur un ensemble de données.
Un
exemple géographique : les températures moyennes des 12 mois de
l'année.
On
pourrait déclarer 12 variables identiques :
Dim Temp1, Temp2,
Temp3, Temp4, … … …, Temp12 as Single
On
dispose d'une structure de données appelée
Tableau qui permet de conserver dans une seule "entité"
plusieurs valeurs de même type.
Le nom
du tableau est une variable qu'il est recommandé de préfixer par Tab.
Le nombre
de valeurs de types identiques est à déclarer entre parenthèses.
Exemple 1 :
Dim TabTemp(12) As Single
|
Numéro |
1 |
2 |
3 |
4 |
5 |
… |
|
Température |
6 |
5,5 |
7 |
11,5 |
15 |
… |
L'accés à
la case numéro 3 se fait par TabTemp(3) qui vaut
7.
Exemple 2 :
Dim TabMajuscules(65 to 90) As String
|
Numéro |
65 |
66 |
67 |
… |
89 |
90 |
|
Majuscule |
A |
B |
C |
… |
Y |
Z |
Boucles en nombre défini
Cette boucle est utilisée si l’on
connait à l’avance le nombre de fois qu’elle sera parcourue.
Syntaxe :
For
Compteur = Début To
Fin [Step Incrément]
Instructions
[
... Exit For]
[Instructions]
Next
[Compteur]
Le test est effectué
au début de la boucle.
La variable numérique Compteur est
incrémentée à chaque fin de boucle
du nombre indiqué par l’incrément. Si l’incrément n’est pas
spécifié il est fixé à 1.
Si la valeur de
Fin est inférieure à la valeur de
Début l’incrément est négatif.
La valeur de
Compteur peut être utilisée (par
exemple pour numéroter le passage dans la boucle) mais ne doit pas être
modifiée dans le corps de la boucle.
Exemple :
For
i = 1 To 50
TabInitial(i) = 0 ‘
Initialisation de chaque case à 0
Next
i
Remplissage d'un tableau
Pour
remplir un tableau on le balaye avec une boucle
For … To …
Next (car le nombre de cases est connu à l'avance).
Exemple 1 :
Dim
TabTemp(12) As Single
Dim
Compteur As Integer
For
Compteur = 1 To 12
TabTemp(Compteur)=InputBox("Température
N° " & Compteur)
Next
Compteur
Exemple 2 :
Dim
TabTirageLoto(6) As Integer
Dim
Compteur As Integer
For
Compteur = 1 To 6
TabTirageLoto
(Compteur)=Rnd * 48 + 1
Next
Compteur
' Il y a
une imperfection dans ce tirage des 6 numéros du Loto !
Traitement des valeurs d'un tableau
On
suppose rentrées les 12 températures dans un tableau de Single
appelé TabTemp.
On veut
rechercher la température maximale dans ce tableau de 12
températures.
Il s'agit
donc de balayer ce tableau et de conserver la valeur maximale dans une
variable.
Au départ
on suppose que la température maximale est la première du tableau.
Dim
Compteur As Integer
Dim
TempMaxi As Single
TempMaxi=TabTemp(1)
For
Compteur = 2 To 12
If
TabTemp(Compteur)>TempMaxi Then TempMaxi=TabTemp(Compteur)
Next
Compteur
A la fin
du processus la variable TempMaxi contiendra la valeur recherchée.
Déclarations publiques et procédures
publiques
Si une
variable est déclarée au début d'une procédure événementielle par
l'instruction Dim elle n’est alors valide
que pour cette procédure. L'existence et la valeur de la variable
disparaissent avec l'instruction End Sub.
Toute
référence à cette variable en dehors de cette procédure événementielle
provoquera une erreur de compilation.
Si une
variable est déclarée avant toute
procédure événementielle par l'instruction Public
elle est valide dans toutes les procédures de la feuille.
Exemple :
Public
NomDuJoueur As String ‘ cette variable
sera utilisable
' dans toutes les
procédures événementielles de la feuille.
La
déclaration d'un tableau ne "supporte" pas le mot réservé
Public. Il faudra alors utiliser le mot
réservé Dim même si c'est une déclaration
publique.
Exemple :
Dim
TabNotes(5) As Single
‘ Ce tableau sera
utilisable dans
'toutes les procédures
événementielles de la feuille.
Si une
procédure non-événementielle est déclarée avant
toute procédure événementielle par l'instruction
Public elle sera utilisable dans toutes les proc. ev. de la
feuille.
Exemple :
Public
Sub SaisieTempérature()
Température = InputBox("Taper
une température")
Somme = Somme +
Température
End Sub
'Cela présuppose une
déclaration initiale des variables publiques
'Température et Somme.
Cette
procédure sera exécutée à chaque appel par son nom :
SaisieTempérature.
|