Do While et Do Until
Parfois, on ne sait pas combien de tours seront nécessaires : on veut continuer tant qu'il reste des données, ou jusqu'à trouver ce qu'on cherche. Do While et Do Until répètent tant qu'une condition le demande.
Télécharger la fiche PDF gratuiteSans inscription, mise en page prête à imprimer01Définition
Do While répète un bloc tant que la condition est vraie. Do Until répète jusqu'à ce que la condition devienne vraie.
02Les quatre formes
' Test au début : peut ne faire aucun tour Do While condition ' instructions Loop Do Until condition ' instructions Loop ' Test à la fin : fait toujours au moins un tour Do ' instructions Loop While condition Do ' instructions Loop Until condition
Do While x <> "" et Do Until x = "" font exactement la même chose : choisissez la forme qui se lit le plus naturellement.
03Exemples à copier
Avancer jusqu'à la première cellule vide
Sub Numeroter() Dim i As Long i = 2 Do While Cells(i, 2).Value <> "" Cells(i, 1).Value = i - 1 i = i + 1 ' indispensable : sinon la boucle ne s'arrête jamais Loop End Sub
Redemander tant que la saisie est incorrecte
Sub DemanderQuantite() Dim saisie As String Do saisie = InputBox("Quantité (nombre entier) ?") If saisie = "" Then Exit Sub Loop Until IsNumeric(saisie) Range("B2").Value = CLng(saisie) End Sub
Sortir en cours de route avec Exit Do
Dim i As Long i = 2 Do Until Cells(i, 3).Value = "" If Cells(i, 3).Value > 10000 Then MsgBox "Premier gros montant en ligne " & i Exit Do End If i = i + 1 Loop
04Pièges à éviter
Si la condition ne change jamais, la macro tourne sans fin et Excel semble figé. Appuyez sur Échap ou Ctrl + Pause pour l'interrompre, puis vérifiez que la variable testée évolue bien à chaque tour.
Une boucle qui s'arrête à la première cellule vide s'arrête aussi au premier trou dans les données. Si le tableau peut contenir des lignes vides, calculez plutôt la dernière ligne et utilisez For Next.
Vous croiserez While ... Wend dans de vieux codes. Elle fonctionne, mais ne permet pas de sortir avec Exit : préférez Do While.
05Questions fréquentes
Quelle est la différence entre Do While et Do Until en VBA ?
Do While répète un bloc tant que la condition est vraie. Do Until répète jusqu'à ce que la condition devienne vraie.
Quel est le piège le plus fréquent avec les boucles Do While et Do Until ?
La boucle infinie. Si la condition ne change jamais, la macro tourne sans fin et Excel semble figé. Appuyez sur Échap ou Ctrl + Pause pour l'interrompre, puis vérifiez que la variable testée évolue bien à chaque tour.
La fiche « Do While et Do Until » est-elle gratuite ?
Oui. La fiche est en accès libre et gratuit, sans inscription : vous pouvez la lire en ligne et télécharger sa version PDF. Elle fait partie du cours VBA gratuit de mesetudesdecas.fr, qui compte 21 fiches.
Passez de la fiche à la mise en situation
Les études de cas mesetudesdecas.fr placent vos apprenants face à un vrai besoin d'entreprise. L'étude de cas XL-05 fait automatiser un devis commercial de bout en bout, macros comprises, avec énoncé, corrigé et pas-à-pas du formateur.
Découvrir l'étude de cas XL-05Toutes les fiches du cours VBA gratuit
Voir aussi le cours gratuit sur les formules Excel
Fiche V1.2 | Dernière mise à jour : 29/10/2026 | Clément Delobel, formateur Excel et VBA