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