Leçon 1 / 8 — Chapitre 2: Logique conditionnelle et boucles
Structures conditionnelles : Si... Alors... Sinon
Une macro qui fait toujours la même chose, sans tenir compte du contexte, a vite ses limites. Les structures conditionnelles permettent à ton code de prendre une décision selon la situation, exactement comme la formule SI() sur une feuille de calcul, mais avec plus de puissance.
La syntaxe de base :
Sub VerifierStock()
Dim quantite As Integer
quantite = 4
If quantite = 0 Then
MsgBox "Rupture de stock !"
ElseIf quantite < 5 Then
MsgBox "Attention : stock faible, il faut recommander."
Else
MsgBox "Stock suffisant."
End If
End Sub
If ... Then teste une condition. Si elle est vraie, le bloc qui suit s'exécute. ElseIf permet d'ajouter d'autres cas, et Else couvre tout ce qui reste. On termine toujours par End If.
Exemple ancré dans un contexte réel : une pharmacie de quartier veut classer automatiquement ses clients selon leur montant d'achat mensuel, pour appliquer une remise fidélité.
Sub CalculerRemise()
Dim montantAchat As Double
Dim tauxRemise As Double
montantAchat = 85000
If montantAchat >= 100000 Then
tauxRemise = 0.1
ElseIf montantAchat >= 50000 Then
tauxRemise = 0.05
Else
tauxRemise = 0
End If
MsgBox "Remise applicable : " & (tauxRemise * 100) & "%"
End Sub
Les opérateurs de comparaison à connaître : =, <> (différent), <, >, <=, >=. Tu peux aussi combiner des conditions avec And (et) et Or (ou), par exemple If montantAchat > 50000 And quantite > 10 Then.
À vous de jouer
À faireQuel mot-clé VBA permet de tester un cas supplémentaire après un premier If, sans ouvrir un nouveau bloc If séparé ?
Réalisez la tâche, puis saisissez votre réponse ci-dessous pour vérification.
💡 Un seul mot-clé VBA.
À vous de jouer
À faireVoici un extrait de code :
Sub TestLivraison()
Dim poidsColis As Double
Dim zoneLivraison As String
poidsColis = 35
zoneLivraison = "Express"
If poidsColis > 30 And zoneLivraison = "Express" Then
MsgBox "Supplément appliqué"
Else
MsgBox "Tarif standard"
End If
End Sub
Que va afficher le MsgBox lors de l'exécution ?
Réalisez la tâche, puis saisissez votre réponse ci-dessous pour vérification.
💡 Une ligne de code VBA complète (If ... Then).