VBA : La boucle TANT QUE
mercredi20janvier
La seconde structure répétitive utilisée en algorithmie est la boucle TANT QUE, vous devez la choisir à chaque fois que le nombre d'itérations vous est inconnu au départ et que vous souhaitez évaluer votre condition en entrant dans la boucle. Sa notation générale pourrait s'écrire comme cela :
TANT QUE Condition FAIRE
Action(s)
Fin de TANT QUE
Voyons comment utiliser cette structure en langage VBA.
- 1 - Dans ce premier exemple nous demandons à l'utilisateur de saisir un nombre entier qui sera stocké dans un tableau. La saisie s'arrêtera lorsque l'utilisateur répondra N à la question "voulez vous entrez un autre nombre ?" Ainsi on n'ignore au départ le nombre d'entier qui sera saisie (cela dépend de l'utilisateur).
Sub MaBoucle_1()
Dim MonTableau(100) As Integer
Dim reponse As String
Dim x As Integer
x = 1
Do While reponse <> "N"
MonTableau(x) = InputBox("Entrez un nombre entier ?", "Bonjour", 0)
x = x + 1
reponse = UCase(InputBox("Voulez vous rejouer o/n ?", "Bonjour", "O"))
Loop
End Sub
- 2 - Bien évidement l'une des actions contenue dans la boucle doit être susceptible de modifier la condition d'entrée dans la boucle, ainsi dans ce deuxième exemple (surtout ne le tester pas) nous courons droit au désastre puisque rien ne viendra jamais modifier la valeur de la variable reponse.
Sub MaBoucle_2()
Dim MonTableau(100) As Integer
Dim reponse As String
Dim x As Integer
x = 1
Do While reponse <> "N"
MonTableau(x) = InputBox("Entrez un nombre entier ?", " ", 0)
x = x + 1
Loop
End Sub
- 3 - Il existe une autre syntaxe VBA pour l'écriture de la boucle tant que, dans ce troisième exemple nous allons colorier les cellules de la feuille de calcul à l'aide des 57 valeurs possibles de la propriété Interior.ColorIndex
Sub MaBoucle_3()
Dim nbCouleur As Byte
Dim ligne As Byte
nbCouleur = 0
ligne = 1
While ligne <= 57
Range("A" & ligne).Select
Selection.Interior.ColorIndex = nbCouleur
'changeons l'index de couleur et incrémentons la ligne pour espérer sortir de la boucle
nbCouleur = nbCouleur + 1
ligne = ligne + 1
Wend
End Sub
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire