L'informatique à votre portée
L'informatique prêt-à-porter

Faites appel à moi pour vos formations
sur les dpts 81, 31, 82, 11 et 67 (Strasbourg)
Confiez moi vos développements Office

FacebookTwitterGoogle BookmarksLinkedin

Do.......Loop

4 mars 2014
Imprimer E-mail

Ces instructions permettent de répéter un bloc d'instructions indéfiniment :

  • jusqu'à ce qu'une condition soit vraie, vous utilisez alors Until devant la condition
  • tant qu'une condition est vraie, vous utilisez alors While devant la condition.

Vous pouvez obliger votre code a exécuter le bloc d'instruction au moins 1 fois, dans ce cas les instructions se présentent ainsi :

JusqueTant que
Do
      Bloc d'instructions
Loop Until conditions
Do
      Bloc d'instructions
Loop While conditions

Pour vérifier la condition dès le début dans la boucle, elle peut donc ne pas être exécuter une seule fois, utilisez les instructions ainsi :

JusqueTant que
Do Until conditions
      Bloc d'instructions
Loop
Do While conditions
      Bloc d'instructions
Loop

Tapez puis lancez les exemples suivants,  :

Le message s'afficheLe message ne s'affiche pas car aucune boucle est effectuée
Sub BoucleLoop()
   Dim N As Byte

   N = N + 1
   Do
     MsgBox "Message d'essai"
   Loop Until N = 1
End Sub

Sub BoucleLoop()
   Dim N As Byte

   N = N + 1
   Do Until N = 1
     MsgBox "Message d'essai"
   Loop
End Sub

Sub BoucleLoop()
   Dim N As Byte

   N = N + 1
   Do
     MsgBox "Message d'essai"
   Loop While N < 1
End Sub

Sub BoucleLoop()
   Dim N As Byte

   N = N + 1
   Do While N < 1
     MsgBox "Message d'essai"
   Loop
End Sub

Vous pouvez sortir prématurément d'une boucle en utilisant l'instruction Exit Do, les 2 exemples suivants vous montrent l'utilisation de cette instruction :
Sub BoucleLoop()
  Dim N As Byte

  Do
    N = N + 1
    MsgBox "Message d'essai numéro " & N
  Loop Until N = 5
End Sub

Sub BoucleLoop()
  Dim N As Byte

  Do
    N = N + 1
    MsgBox "Message d'essai numéro " & N
    If N = 2 Then Exit Do
  Loop Until N = 5
End Sub

Ce code affiche 5 fois le messageCelui-ci l'affiche 2 fois