Les Tests et les Boucles

Une des bases en VBA est de savoir faire des choix en fonction de résultats ou de procédures appellées, mais aussi de réaliser des boucles pour répétér les actions autant que de besoin.

Nous allons voir les codes les plus utiles pour ce genre de choses.

 

1) Les tests :

 Avec condition : IF

Le principe est simple : IF condition THEN action ELSE action facultative END IF. Si la condition se réalise alors on effectue l’action programmée, ou alors une autre si la condition n’est pas remplie.
Un exemple de code, utilisant également les MSGBOX vues dans un article précédent :

Sub age()
xAge = InputBox (« Quel est votre age ? »)
   If xAge>= 18 Then
       MsgBox « Vous êtes majeur »
   Else
       MsgBox « Vous êtes mineur »
   End If
End Sub

– Des tests multiples : SELECT CASE

Ici, le test se réalise en fonction d’une condition que vous avez définie et délimitée. Par exemple, pour savoir si votre score est bon dans une échelle de notation de 1 à 10, on considérera que le programme vous félicite si le score est supérieur ou égale à 8, vous encouragera de 5 à 8 et vous demandera des efforts si vous êtes en-dessous de 5.

Sub score()
xScore = InputBox (« Quel est votre score ? »)
Select Case xScore
     Case Is < 5
           MsgBox « Faîtes des efforts ! »
     Case 5 to 7
           MsgBox « Bravo, continuez ! »
     Case Is >= 8
           MsgBox « Félicitations ! »
End Select
End Sub

 

2) Les boucles :

 Avec un compteur : FOR

Ici, les actions intégrées dans la boucle se répètent un nombre de fois prévu par le compteur. Par exemple, une valeur à copier 5 fois dans 5 cellules adjacentes.

Sub compteur()
xNbre = Input(« Quel valeur entrer ? »)
     For i = 1 To 5
          Activecell.value = xNbre
          Activecell.offset (0,1).select
     Next i
End Sub

 Tant que : DO WHILE

Cette boucle exécute les instructions entre Do While et Loop tant que la condition spécifiée est vraie. Par exemple, incrémenter de 1 jusqu’à ce que le résultat soit égale à 10.

Sub tant_que()
Do While activecell.Offset(-1,0) <> 10
     Activecell.value = Activecell.Offset(-1,0).value + 1
     Activecell.offset(1,0).select
Loop
End Sub

 Boucle dans un ensemble : FOR EACH

Pour chaque élément d’une sélection, appliquer les instructions. Par exemple, changer la casse d’une cellule dans un tableau.

Sub ensemble()
For Each i In Selection
      i.value = UCase(I.value)
Next i
End Sub

Voilà déjà de quoi faire pour tester et répéter des actions. On peut aussi imaginer utiliser certaines boucles FOR pour créer un Timer, sur le principe de Cache-Cache : compte jusque 100 avant de venir me chercher… Vous voyez : C’est enfantin !

 

Bonne boucle !



Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.