Utilisation de Do... Instructions de boucle

Utiliser Do... Instructions de boucle pour exécuter un bloc d’instructions un nombre indéfini de fois. Les instructions sont répétées lorsqu’une condition a la valeur True ou jusqu’à ce qu’une condition prenne la valeur True.

Instructions répétées lorsqu’une condition a la valeur True

Il existe deux façons d’utiliser whilemot clé pour case activée une condition dans un do... Instruction de boucle. Vous pouvez case activée la condition avant d’entrer dans la boucle, ou vous pouvez la case activée une fois que la boucle s’est exécutée au moins une fois.

Dans la procédure suivanteChkFirstWhile, vous case activée la condition avant d’entrer dans la boucle. Si myNum est défini sur 9 au lieu de 20, les instructions à l’intérieur de la boucle ne s’exécuteront jamais. Dans la ChkLastWhile procédure, les instructions à l’intérieur de la boucle ne s’exécutent qu’une seule fois avant que la condition ne devienne False.

Sub ChkFirstWhile() 
    counter = 0 
    myNum = 20 
    Do While myNum > 10 
        myNum = myNum - 1 
        counter = counter + 1 
    Loop 
    MsgBox "The loop made " & counter & " repetitions." 
End Sub 
 
Sub ChkLastWhile() 
    counter = 0 
    myNum = 9 
    Do 
        myNum = myNum - 1 
        counter = counter + 1 
    Loop While myNum > 10 
    MsgBox "The loop made " & counter & " repetitions." 
End Sub

Instructions répétées jusqu’à ce qu’une condition devienne True

Le mot clé Until permet de vérifier une condition dans une instruction Do...Loop. Vous pouvez case activée la condition avant d’entrer dans la boucle (comme indiqué dans la ChkFirstUntil procédure), ou vous pouvez la case activée une fois que la boucle s’est exécutée au moins une fois (comme indiqué dans la ChkLastUntil procédure). L’exécution en boucle continue tant que la condition conserve la valeur False.

Sub ChkFirstUntil() 
    counter = 0 
    myNum = 20 
    Do Until myNum = 10 
        myNum = myNum - 1 
        counter = counter + 1 
    Loop 
    MsgBox "The loop made " & counter & " repetitions." 
End Sub 
 
Sub ChkLastUntil() 
    counter = 0 
    myNum = 1 
    Do 
        myNum = myNum + 1 
        counter = counter + 1 
    Loop Until myNum = 10 
    MsgBox "The loop made " & counter & " repetitions." 
End Sub

Sortie d’un do... Instruction de boucle à partir de l’intérieur de la boucle

Vous pouvez quitter un do... Effectuez une boucle à l’aide de l’instruction Exit Do . Par exemple, pour quitter une boucle sans fin, utilisez l’instruction Exit Do dans le bloc d’instructions True d’un if... Puis... Instruction Else ou instruction Select Case . Si la condition a la valeur False, la boucle s’exécute normalement.

Dans l’exemple myNum suivant, une valeur qui crée une boucle sans fin est affectée. L’instruction If...Then...Else recherche cette condition, puis l’arrête, ce qui empêche la boucle sans fin.

Sub ExitExample() 
    counter = 0 
    myNum = 9 
    Do Until myNum = 10 
        myNum = myNum - 1 
        counter = counter + 1 
        If myNum < 10 Then Exit Do 
    Loop 
    MsgBox "The loop made " & counter & " repetitions." 
End Sub

Remarque

Pour arrêter une boucle sans fin, appuyez sur Échap ou sur Ctrl+Attn.

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.