1.1 La structure : If...Then...Else...end If
Voici un exemple de structure simple avec l'instruction
If :
If condition Then
Instructions 1
else
Instructions 2
End if
Interprétation : Si la condition est vérifiée alors les instructions 1 sont exécutées sinon
les instructions 2 sont exécutées à la place. (Notez que l'on peut utiliser des
opérateurs logiques
And (et) et
Or
(ou) pour que plusieurs conditions doivent d'abord être vérifiées avant de pouvoir
exécuter les instructions suivantes.). Le mot
Else et les
instructions qui suivent ne sont pas obligatoire.
Voici un autre exemple de structure avec
If mais un peu plus complexe:
If Condition 1 Then
Instruction 1
ElseIf Condition 2 Then
Instruction 2
Else
Instructions X
End If
Interprétation : Si la condition 1 est vérifiée alors les instructions 1 sont exécutées.
Sinon si la condition 2 est vérifiée alors les instructions 2 sont exécutées. Sinon,
si aucune de ces deux conditions ne sont vérifiées alors les instructions X sont exécutées.
Il existe une autre structure simplifiée de
If mais qui moins
utilisée:
Variable = IIf (Condition, instructions 1, instructions 2)
Interprétation : Si la condition est vérifiée alors les instructions 1 sont
exécutées sinon les instructions 2 sont exécutées à la place.
L'instruction
IIf(Immediate If) est utile lorsque qu'il n'y a
que une ou deux instructions en fonction d'une condition. Par ailleurs, la
valeur retournée par la condition est affectée à une variable.
1.2 La structure Select Case...End Select
Lorsque l'on doit effectuer toute une série de tests, il est préférable d'utiliser
la structure Select Case...End Select au lieu de If...Then...End if.
Ainsi, les deux exemples suivants sont équivalents :
Select Case Semaine
Case 1
Jour = "Lundi"
Case 2
Jour = "Mardi"
Case 3
Jour = "Mercredi"
Case 4
Jour = "Jeudi"
Case 5
Jour = "Vendredi"
Case 6
Jour = "Samedi"
Case 7
Jour = "Dimanche"
Else
MsgBox "erreur", vbOKOnly , "Note"
End Select
If Semaine = 1 Then
Jour = "Lundi"
ElseIf Semaine = 2 Then
Jour = "Mardi"
ElseIf Semaine = 3 Then
Jour = "Mercredi"
ElseIf Semaine = 4 Then
Jour = "Jeudi"
ElseIf Semaine = 5 Then
Jour = "Vendredi"
ElseIf Semaine = 6 Then
Jour = "Samedi"
ElseIf Semaine = 7 Then
Jour = "Dimanche"
Else
MsgBox "erreur", vbOKOnly , "Note"
End If
Interprétation : Si la variable Semaine vaut 1, alors la variable Jour reçoit la
valeur Lundi. Si la variable Semaine vaut 1, alors la variable Jour reçoit la
valeur Mardi. (Etc...). Si la variable Semaine ne reçoit aucune valeur comprise
entre 1 et 7, alors un message indiquant une erreur est affiché.
2.1 La structure For..Next
La structure For...Next is utile lorsqu'on doit répéter plusieurs fois la même
instruction.
Exemple :
For J = 1 To 10
T(J) = J
Next
Interprétation : Dans cette boucle, l'instruction "T(J)=J"
est répétée 10 fois c'est à dire jusqu'à ce que J soit égale à 10. A chaque passage,
l'instruction "T(J)=J" affecte à T(J) les valeurs 1 à 10.
Pour que l'instruction soit exécutée une fois sur deux, vous pouvez utiliser
l'instruction
Step :
For J = 1 To 10 Step 2
T(J) = J
Next
Interprétation : Dans cette boucle, l'instruction "T(J)=J"
affecte à T(J) les valeurs 1,3,5,7,9.
2.2 La structure For Each...Next
Cette structure est moins utilisée que la précédente. Elle sert surtout à
exécuter des instructions portant sur un tableau.
Exemple :
Dim Semaine(1 to 7) As String
Dim Jour As Variant
Semaine(1) = "Lundi"
'Etc...
For Each Jour In Semaine()
Combo1.AddItem Jour
Next
Interprétation : Pour chaque Jour de la Semaine, on ajoute
à la liste combinée, la valeur de la variable Jour jusqu'à ce que l'indice de la
semaine soit égale à 7.
2.3 Les structures Do...Loop et While...Wend
Avec ces boucles, le nombre de fois où sont répétées les instructions est
indéfini.
Les deux exemples qui suivent sont équivalents :
i = 1
Do
T(i) = i
i = i + 1
Loop Until i > 10
i = 1
While i < 10
T(i) = i
i = i + 1
Wend
Interprétation : La variable i est initialisée à 1 au départ.
Les instructions qui suivent sont exécutées jusqu'à ce que i soit supérieure à 10.
A chaque passage, on affecte à la variable T d'indice i la valeur de i.
Il existe d'autres variantes de ces boucles et qui sont chacune équivalentes :
Do
Instructions
Loop While Condition
Do Until Condition
Instructions
Loop
Do While Condition
Instructions
Loop