PaliSkill
Introduction au VBA

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

À faire

Quel 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

À faire

Voici 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).

Quitter le module