La fonction `IIf` en VBA (Visual Basic for Applications) est utilisée pour évaluer une expression et retourner l’une des deux valeurs selon que l’expression est vraie ou fausse. C’est une fonction ressemblant à une expression conditionnelle courte qui permet de simplifier le code.
Voici la syntaxe de la fonction `IIf` :
IIf(Expression, ValeurSiVrai, ValeurSiFaux)
- Expression : C’est l’expression que vous voulez évaluer. Elle doit retourner un résultat de type booléen (Vrai ou Faux).
- ValeurSiVrai : La valeur qui est renvoyée si l’expression est évaluée à Vrai.
- ValeurSiFaux : La valeur qui est renvoyée si l’expression est évaluée à Faux.
Exemple d’utilisation :
Sub ExempleIIf()
Dim score As Integer
Dim result As String
score = 85
' Utilisation de IIf pour déterminer le résultat
result = IIf(score >= 50, "Réussi", "Échoué")
' Affiche "Réussi"
MsgBox result
End Sub
Points à considérer :
- Evaluation des deux parties : Les deux arguments `ValeurSiVrai` et `ValeurSiFaux` sont évalués, peu importe lequel est finalement retourné. Cela peut être problématique si l’une des parties provoque une erreur lorsque les conditions ne sont pas réunies.
- Utilisation dans des expressions courtes : `IIf` est essentiellement utile pour des conditions simples et des opérations courtes. Pour des conditions plus complexes, il serait préférable d’utiliser une structure conditionnelle `If…Else`.
- Alternative avec Select Case ou If…Else : Pour des situations complexes ou des besoins plus élaborés, il est souvent préférable d’utiliser `If…Else` ou `Select Case` pour un meilleur contrôle sur le flux du programme et pour éviter les problèmes d’évaluation mentionnés ci-dessus.
En résumé, `IIf` est très pratique pour simplifier des expressions conditionnelles simples, mais il faut être prudent quant à son utilisation quand les opérations potentielles sont susceptibles de provoquer des erreurs inattendues.