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.