Les Tests et les Boucles

Notions à retenir

  • Les tests IF et SELECT CASE permettent d’exécuter des actions selon des conditions spécifiques
  • Les boucles FOR, DO WHILE et FOR EACH automatisent la répétition d’instructions
  • Ces structures de contrôle sont essentielles pour créer des macros VBA dynamiques et efficaces

Les structures de tests en VBA

La condition IF

La structure IF permet d’exécuter du code selon qu’une condition soit vraie ou fausse. La syntaxe est : IF condition THEN action ELSE action_alternative END IF

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

Les tests multiples SELECT CASE

SELECT CASE évalue une expression et exécute le code correspondant à chaque cas défini. Cette structure est plus lisible que des IF imbriqués multiples.

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

Les boucles en VBA

La boucle FOR avec compteur

La boucle FOR répète les instructions un nombre défini de fois grâce à un compteur qui s’incrémente automatiquement.

Sub compteur()
xNbre = InputBox("Quel valeur entrer ?")
 For i = 1 To 5
 ActiveCell.Value = xNbre
 ActiveCell.Offset(0, 1).Select
 Next i
End Sub

La boucle DO WHILE

DO WHILE exécute les instructions tant que la condition spécifiée reste vraie. La boucle s’arrête dès que la condition devient fausse.

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

La boucle FOR EACH

FOR EACH parcourt chaque élément d’une collection ou d’une sélection et applique les instructions à chacun d’eux.

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

Laisser un commentaire

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

− 5 = 2
Powered by MathCaptcha

Retour en haut