Astuce VBA : un opérateur ternaire ?
La plupart des langages de programmation disposent d'un opérateur ternaire (qui permet d'écrire une condition très simplement sur une seule ligne), généralement sous la forme suivante :
ma_condition ? si_vrai : si_faux
Cet opérateur n'existe malheureusement pas en VBA mais une fonction qui s'en rapproche beaucoup permet d'écrire une condition sur une ligne.
Il s'agit de la fonction IIf.
Exemple simple 1
Pour mieux comprendre, voici une condition If simple :
Sub condition()
age = 20
If age >= 18 Then
texte = "majeur"
Else
texte = "mineur"
End If
End Sub
En utilisant la fonction IIf, il est possible de simplifier l'écriture comme ceci :
Sub condition()
age = 20
texte = IIf(age >= 18, "majeur", "mineur")
End Sub
Exemple simple 2
Il s'agit de la même condition que précédemment, avec l'affichage du résultat dans une MsgBox cette fois-ci :
Sub condition()
age = 20
If age >= 18 Then
texte = "majeur"
Else
texte = "mineur"
End If
MsgBox "Maurice est " & texte & " !"
End Sub
L'utilisation de la fonction IIf permet ici de simplifier encore plus l'écriture en ajoutant la condition directement dans la valeur de la MsgBox :
Sub condition()
age = 20
MsgBox "Maurice est " & IIf(age >= 18, "majeur", "mineur") & " !"
End Sub
