VBA : les structures de contrôle
25 septembre 2007
Présentation du problème
Si le programme doit exécuter un bloc d’instructions en nombre prédéfini on utilise la boucle For ... To ... Next.
Exemple :
For i = 1 To 49
TabLoto(i) = i ‘chaque case contient son numéro
Next i
Si le nombre de passages dans la boucle est inconnu au départ, mais dépend d’une condition dont la réalisation est imprévisible cette structure n’est pas adaptée.
Exemple 1 :
Demander le mot de passe tant que la réponse n’est pas le bon mot de passe.
Demander le mot de passe jusqu’à ce que la réponse soit le bon mot de passe.
Exemple 2 :
Demander la saisie d’une note tant que la réponse n’est pas un nombre entre 0 et 20.
Demander la saisie d’une note jusqu’à ce que la réponse soit un nombre entre 0 et 20.
Boucle tant que
Syntaxe première version :
Do While Condition
Instructions
[... Exit Do]
[Instructions]
Loop
La condition est ici testée au début c’est à dire à l’entrée de la boucle.
Avec While (tant que) la boucle est répétée tant que la condition est vraie.
Si la condition n’est pas vraie au départ les instructions de la boucle ne sont pas exécutées.
Exemple :
Do While MotProposé <> MotDePasse
MotProposé = InputBox("Donnez votre mot de passe")
Loop
Cela présuppose MotProposé initialisé par une valeur autre que MotDePasse
(par exemple la valeur par défaut "").
Syntaxe deuxième version :
Do
Instructions
[... Exit Do]
[Instructions]
Loop While Condition
La condition est alors testée à la fin de la boucle.
Avec While (tant que) la boucle est répétée tant que la condition est vraie.
Les instructions de la boucle sont donc exécutées au moins une fois.
Exemple :
Do
MotProposé = InputBox("Donnez votre mot de passe")
Loop While MotProposé <> MotDePasse
Cet exemple ne présuppose aucune initialisation de MotProposé.
Boucle jusqu’à ce que
Syntaxe première version :
Do Until Condition
Instructions
[... Exit Do]
[Instructions]
Loop
La condition est ici testée au début c’est à dire à l’entrée de la boucle.
Avec Until (jusqu’à) la boucle est répétée jusqu’à ce que la condition soit vraie.
Si la condition est vraie au départ les instructions de la boucle ne sont pas exécutées.
Exemple :
Do Until MotProposé = MotDePasse
MotProposé = InputBox("Donnez votre mot de passe")
Loop
Cela présuppose MotProposé initialisé par une valeur autre que MotDePasse
(par exemple la valeur par défaut "").
Syntaxe deuxième version :
Do
Instructions
[... Exit Do]
[Instructions]
Loop Until Condition
La condition est alors testée à la fin de la boucle.
Les instructions de la boucle sont donc exécutées au moins une fois.
Avec Until (jusqu’à) la boucle est répétée jusqu’à ce que la condition soit vraie.
Exemple :
Do
MotProposé = InputBox("Donnez votre mot de passe")
Loop Until MotProposé = MotDePasse
Cet exemple ne présuppose aucune initialisation de MotProposé.
Boucle For ... Each ... Next
C’est une extension de la boucle For ... To ... Next.
Syntaxe :
For Each Elément In Ensemble
Instructions
[ ... Exit For]
[Instructions]
Next [Elément]
Ensemble est le plus souvent un tableau.
Exemple :
Dim TabHasard(100) As Integer
Dim Cellule As Integer
Dim Réponse As String
Randomize
For Each Cellule In TabHasard
Cellule = Rnd * 100 + 1
Next
For Each Cellule In TabHasard
Réponse = Réponse & Cellule & " "
Next
MsgBox (Réponse)
[ Imprimer
cet article ] [ Haut ]
|