Accueil/Cours gratuits/Bibliothèque VBA/Conditions/If Then Else
Cours VBA gratuit | Conditions

If Then Else

Gratuit, sans inscription Niveau 1 / 3 | Découverte Lecture 8 min V1.2 | 29/10/2026

Une macro devient vraiment utile quand elle sait décider : colorer un retard en rouge, ignorer une ligne vide, appliquer une remise au-delà d'un certain montant. If Then Else est l'instruction qui lui donne ce pouvoir.

Télécharger la fiche PDF gratuiteSans inscription, mise en page prête à imprimer

01Définition

En une phrase

If Then Else exécute un bloc d'instructions seulement si une condition est vraie, et éventuellement un autre bloc si elle est fausse.

02Syntaxe

Les trois formes
' Sur une seule ligne
If montant > 1000 Then remise = 0.05

' En bloc
If montant > 1000 Then
    remise = 0.05
Else
    remise = 0
End If

' Avec plusieurs cas
If montant >= 5000 Then
    remise = 0.1
ElseIf montant >= 1000 Then
    remise = 0.05
Else
    remise = 0
End If

VBA teste les conditions dans l'ordre et s'arrête à la première vraie. Placez donc la condition la plus exigeante en premier.

03Opérateurs de comparaison et logiques

OpérateurSignification
=égal à
<>différent de
> , <supérieur, inférieur
>= , <=supérieur ou égal, inférieur ou égal
Andles deux conditions sont vraies
Orau moins une condition est vraie
Notinverse la condition

04Exemples à copier

Signaler les factures en retard

Colorer les retards
Sub SignalerRetards()
    Dim i As Long
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        If Cells(i, 4).Value < Date And Cells(i, 5).Value <> "Payée" Then
            Cells(i, 4).Interior.Color = RGB(252, 228, 214)
        End If
    Next i
End Sub

Vérifier une saisie

Refuser une cellule vide ou non numérique
If Range("B2").Value = "" Or Not IsNumeric(Range("B2").Value) Then
    MsgBox "Saisissez un montant en B2.", vbExclamation
    Exit Sub
End If

05Pièges à éviter

⚠️ PiègeOublier End If

Un If écrit en bloc doit se fermer par End If, sinon VBA refuse de lancer la macro : « Bloc If sans End If ».

⚠️ PiègeMajuscules et minuscules

Par défaut, "Paris" et "paris" sont différents pour VBA. Comparez avec LCase(Cells(i, 1).Value) = "paris" pour ignorer la casse.

⚠️ PiègeVBA évalue toute la condition

Avec And, VBA calcule les deux côtés même si le premier est faux. If Not c Is Nothing And c.Value > 0 plante quand c vaut Nothing : séparez en deux If imbriqués.

⚠️ PiègeTrop de ElseIf

Au-delà de trois ou quatre cas sur la même valeur, Select Case est beaucoup plus lisible.

06Questions fréquentes

Comment écrire une condition If Then Else en VBA ?

If Then Else exécute un bloc d'instructions seulement si une condition est vraie, et éventuellement un autre bloc si elle est fausse.

Quel est le piège le plus fréquent avec If Then Else ?

Oublier End If. Un If écrit en bloc doit se fermer par End If, sinon VBA refuse de lancer la macro : « Bloc If sans End If ».

La fiche « If Then Else » est-elle gratuite ?

Oui. La fiche est en accès libre et gratuit, sans inscription : vous pouvez la lire en ligne et télécharger sa version PDF. Elle fait partie du cours VBA gratuit de mesetudesdecas.fr, qui compte 21 fiches.

Pour les formateurs

Passez de la fiche à la mise en situation

Les études de cas mesetudesdecas.fr placent vos apprenants face à un vrai besoin d'entreprise. L'étude de cas XL-05 fait automatiser un devis commercial de bout en bout, macros comprises, avec énoncé, corrigé et pas-à-pas du formateur.

Découvrir l'étude de cas XL-05
Voir aussi

Toutes les fiches du cours VBA gratuit

Voir aussi le cours gratuit sur les formules Excel

Fiche V1.2 | Dernière mise à jour : 29/10/2026 | Clément Delobel, formateur Excel et VBA