Comment simplifier les conditions en VBA

Cette page regroupe plusieurs exemples de simplifications que vous pouvez appliquer lors de l'écriture de vos codes VBA lorsque vous avez à faire à des conditions.

Si vous pensez que la ligne suivante n'est pas valide en VBA, ces exemples devraient vous intéresser !

resultat = texte1 = texte2

Condition simple

Cette première condition renvoie ici Oui si la valeur vaut True :

Sub exemple()

    valeur = True

    If valeur = True Then
        MsgBox "Oui"
    End If

End Sub

Dans une condition, il est inutile de préciser = True car la condition cherche de toute façon à définir si la condition est vraie :

Sub exemple()

    valeur = True

    If valeur Then
        MsgBox "Oui"
    End If

End Sub

Si la condition If est mise sur une seule ligne, vous n'avez pas besoin d'ajouter End If à la fin :

Sub exemple()

    valeur = True

    If valeur Then MsgBox "Oui"

End Sub

Attribuer True ou False à une variable

Cette nouvelle condition est utilisée ici pour attribuer la valeur True à la variable resultat si les 2 textes sont identiques ou False si ce n'est pas le cas :

Sub exemple()

    texte1 = "XLP"
    texte2 = "XLP"
    
    If texte1 = texte2 Then
        resultat = True
    Else
        resultat = False
    End If

End Sub

Cette condition peut être écourtée à l'aide de la fonction IIf qui permet de renvoyer une valeur ou une autre en fonction d'une condition :

Sub exemple()

    texte1 = "XLP"
    texte2 = "XLP"
    
    resultat = IIf(texte1 = texte2, True, False)

End Sub

Mais lorsque la fonction IIf renvoie les valeurs True et False, elle devient redondante car le test texte1 = texte2 renvoie déjà True ou False :

Sub exemple()

    texte1 = "XLP"
    texte2 = "XLP"
    
    resultat = (texte1 = texte2)

End Sub

Cette ligne peut encore être simplifiée en retirant les parenthèses superflues :

Sub exemple()

    texte1 = "XLP"
    texte2 = "XLP"
    
    resultat = texte1 = texte2

End Sub

Autre exemple avec un test qui doit déterminer si les valeurs sont différentes :

Sub exemple()

    texte1 = "XLP"
    texte2 = "XLP"
    
    differences = texte1 <> texte2

End Sub

True, False, 1, 0

Dans une condition, le test = 1 équivaut à = True mais d'autres valeurs peuvent également valoir True.

Les conditions suivantes sont toutes vraies :

Sub exemple()
    
    valeur = True
    If valeur Then MsgBox "VRAI"
    
    valeur = 1
    If valeur Then MsgBox "VRAI"
    
    valeur = 5
    If valeur Then MsgBox "VRAI"
    
    valeur = -5
    If valeur Then MsgBox "VRAI"
    
    valeur = "10"
    If valeur Then MsgBox "VRAI"

End Sub

A l'inverse, les valeurs 0, "0" et "" répondent positivement au test = False.