💻 Cours de programmation en VBA 📊

🔁 Les boucles

Une boucle permet de répéter automatiquement une série d’instructions. Elle est utilisée lorsque l’on souhaite exécuter plusieurs fois le même traitement, sans avoir à recopier le code.

Le nombre de répétitions peut :

Attention : si aucune condition de sortie n’est prévue, une boucle peut devenir infinie. Cela peut bloquer Excel ou provoquer un plantage.

Pourquoi utiliser une boucle ?

Les deux codes ci-dessous produisent exactement le même résultat, mais le second est beaucoup plus efficace et lisible.


Sub SansBoucle()
    Cells(1, 1).Value = 1
    Cells(2, 1).Value = 2
    Cells(3, 1).Value = 3
    Cells(4, 1).Value = 4
    Cells(5, 1).Value = 5
End Sub

Sub AvecBoucle()
    Dim i As Integer

    i = 1
    While i <= 5
        Cells(i, 1).Value = i
        i = i + 1
    Wend
End Sub

La boucle permet ici de répéter la même instruction sans duplication de code.


Boucle While

La boucle While (en anglais « tant que ») répète les instructions tant que la condition est vraie. La condition est testée avant chaque itération.


While condition
    'Instructions exécutées tant que la condition est vraie
Wend

Exemple concret :


Dim i As Integer
i = 1

While i <= 100
    Cells(i, 1).Value = i
    i = i + 1
Wend

Dans cet exemple :

L’incrémentation est essentielle : sans elle, la condition resterait toujours vraie.


Boucle Do

La boucle Do fonctionne sur le même principe que While, mais elle est plus souple. La condition peut être testée :

Il est également possible d’utiliser :

Condition testée avant la boucle


Dim i As Integer
i = 1

Do While i <= 100
    Cells(i, 1).Value = i
    i = i + 1
Loop

Si la condition est fausse dès le départ, la boucle ne s’exécute pas.

Condition testée après la boucle


Dim i As Integer
i = 1

Do
    Cells(i, 1).Value = i
    i = i + 1
Loop While i <= 100

Dans ce cas, les instructions sont exécutées au moins une fois.

Utilisation de Until


Dim i As Integer
i = 1

Do Until i > 100
    Cells(i, 1).Value = i
    i = i + 1
Loop

La boucle continue tant que la condition n’est pas vraie.


Boucle For

La boucle For est utilisée lorsque le nombre de répétitions est connu à l’avance.

Elle repose sur une variable compteur qui évolue automatiquement.


For i = 1 To 20
    Cells(i, 1).Value = i
Next i

Dans cet exemple :

La boucle For est généralement la plus lisible lorsque l’on connaît le nombre d’itérations.


Quitter une boucle prématurément

Il est parfois nécessaire de sortir d’une boucle avant sa fin normale. VBA propose des instructions dédiées :


Exit For    'Quitte une boucle For
Exit Do     'Quitte une boucle Do ou While

Ces instructions sont souvent utilisées avec une condition :


For i = 1 To 100
    If Cells(i, 1).Value = "" Then
        Exit For
    End If
Next i

Dès que la condition est remplie, la boucle est interrompue immédiatement.