Cours VBA - Les Boucles
Cours VBA - Les Boucles
Cours VBA - Les Boucles
php
Les boucles permettent de rpter des instructions un certain nombre de fois, ce qui peut tre un gain de
temps considrable.
Sub boucle_while()
Cells(1, 1) = 1
Cells(2, 1) = 2
Cells(3, 1) = 3
Cells(4, 1) = 4
Cells(5, 1) = 5
Cells(6, 1) = 6
Cells(7, 1) = 7
Cells(8, 1) = 8
Cells(9, 1) = 9
Cells(10, 1) = 10
Cells(11, 1) = 11
Cells(12, 1) = 12
End Sub
Maintenant, imaginez qu'il faille numroter plusieurs centaines de lignes ... Vous comprenez donc l'intrt de crer des boucles.
Sub boucle_while()
While [condition]
'Instructions
Wend
End Sub
Tant que la condition est vraie, les instructions sont excutes en boucle (attention ne pas crer une boucle infinie).
Sub boucle_while()
While numero <= 12 'TANT QUE la variable numero est <= 12, la boucle est rpte
Cells(numero, 1) = numero 'Numrotation
numero = numero + 1 'Le numro est augment de 1 chaque boucle
Wend
End Sub
Avec cette boucle, si nous voulons numroter 500 lignes, il suffit alors de remplacer 12 par 500 ...
Cette boucle fonctionne de la mme manire que While Wend (tant que la condition est vraie, la boucle est excute) :
Sub boucle_do_while()
Do While [condition]
'Instructions
Loop
End Sub
1 of 2 16/10/2016 14:15
Cours VBA : les boucles http://www.excel-pratique.com/fr/vba/boucles.php
La condition peut galement tre place en fin de boucle Do Loop, ce qui implique que les instructions sont excutes au moins une fois :
Sub boucle_do_while()
Do
'Instructions
Loop While [condition]
End Sub
Plutt que de rpter la boucle tant que la condition est vraie, il est possible de quitter la boucle lorsque la condition est vraie en remplaant While par Until :
Sub boucle_do_while()
Do Until [condition]
'Instructions
Loop
End Sub
Sub boucle_for()
For i = 1 To 5
'Instructions
Next
End Sub
Sub boucle_for()
For i = 1 To 5
MsgBox i
Next
End Sub
Il est possible de quitter une boucle For prmaturment grce l'instruction suivante :
En voici un exemple :
Sub boucle_for()
Dim max_boucles As Integer
max_boucles = Range("A1") 'En A1 : une limite de rptitions de la boucle est dfinie
MsgBox i
Next
End Sub
2 of 2 16/10/2016 14:15