VBA IIF

Excel VBA IIF

Si vous êtes l'utilisateur régulier des macros VBA, vous devez avoir rencontré la fonction appelée «IIF» ou vous avez peut-être vu cette fonction sur Internet. À première vue, car vous devez avoir pensé que c'est une condition IF comme notre instruction IF régulière dans Excel. Mais ce n'est pas la même instruction IF que nous utilisons pour évaluer des tests logiques et obtenir des résultats basés sur les critères que nous donnons. Dans cet article, nous allons vous présenter la condition «VBA IIF» dans VBA.

Que fait la condition IIF dans VBA?

Ceci est très similaire à notre condition IF mais de nature légèrement différente. La condition «VBA IIF» teste l'expression ou le test logique fourni et renvoie TRUE ou FALSE comme résultat.

Syntaxe VBA IIF

Regardez la syntaxe de la fonction IIF.

  • Expression: Ce n'est rien d'autre que le test logique que nous aimerions effectuer.
  • Ture Part: Si le test logique est TRUE, quel devrait être le résultat de la partie TRUE.
  • Fausse partie: si le test logique est FALSE, quel devrait être le résultat de la partie FALSE.

Nous pouvons entrer nos propres résultats avec des parties TRUE & FALSE. Bien que les arguments ressemblent à ceux de la condition IF, ce sera légèrement différent. Nous verrons cela dans les exemples de la fonction Excel VBA IIF.

L'une des principales différences entre «IF» régulier et ce «IIF» est que nous pouvons réduire le code à une seule ligne avec IIF où avec la condition IF il faut un minimum de 5 lignes pour arriver au même résultat.

Exemple de fonction VBA IIF

Voici les exemples de la fonction VBA IIF dans Excel.

Vous pouvez télécharger ce modèle Excel VBA IIF ici - Modèle Excel VBA IIF

Exemple # 1 - VBA IIF

Ok, nous allons voir un exemple simple de fonction IIF. Nous allons maintenant tester si un nombre est supérieur ou inférieur à un autre nombre. Suivez les étapes ci-dessous pour écrire le code VBA.

Étape 1: démarrez la macro.

Étape 2: définissez la variable en tant que chaîne dans VBA.

Code:

 Sub IIF_Example () Dim FinalResult As String End Sub 

Étape 3: définissez deux autres variables comme Long dans VBA.

Code:

 Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long End Sub 

Étape 4: Maintenant, pour la variable «Numéro1», attribuez la valeur 105 et pour la variable «Numéro2», attribuez la valeur 100.

Code:

 Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 End Sub 

Étape 5: Maintenant, pour la première variable définie «FinalResult», nous allons affecter le résultat de la fonction IIF. Alors ouvrez l'IIF pour la variable.

Étape 6: indiquez l'expression sous la forme Number1> Number2.

Étape 7: Maintenant, si l'expression est TRUE, quel devrait être le résultat. J'attribuerai le résultat comme "Le numéro 1 est supérieur au numéro 2".

Étape 8: Maintenant, si l'expression est FAUX, quel devrait être le résultat. J'attribuerai le résultat comme «le numéro 1 est inférieur au numéro 2».

Désormais, la valeur de la variable sera l'une des valeurs ci-dessous.

Si True: "Le numéro 1 est supérieur au numéro 2"

Si faux: "Le numéro 1 est inférieur au numéro 2"

Étape 9: montrons le résultat dans une boîte de message dans VBA.

Code:

 Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 FinalResult = IIf (Number1> Number2, "Number 1 is Greater than Number 2", "Number 1 is Less than Number 2") MsgBox FinalResult End Sub 

Maintenant, exécutons le code et voyons le résultat.

Puisque la valeur du numéro 1 est 105, ce qui est supérieur à la valeur du numéro 2 de 100, nous avons obtenu le résultat comme «Le numéro 1 est supérieur au numéro 2». Puisque l'expression est TRUE, la condition IIF a renvoyé ce résultat.

Exemple # 2 - IF vs IIF

Vous devez vous demander quelle est la différence entre IF et IIF. Oui, il y a une différence de codage. Par exemple, regardez le code de condition IF.

Code:

 Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 If Number1> Number2 Then MsgBox "Number 1 is Greater than Number 2" Else MsgBox "Number 1 is Less than Number 2" End If End Sub 

En utilisant IF d'abord, nous avons appliqué un test logique.

 Si Numéro1> Numéro2 Alors 

Ensuite, si le test logique est vrai, nous avons appliqué le résultat.

MsgBox "Le numéro 1 est supérieur au numéro 2"

Ensuite, si le test logique est faux, nous avons appliqué les différents résultats.

MsgBox "Le numéro 1 est inférieur au numéro 2"

Les deux fonctions renvoient le même résultat mais avec IIF, nous pouvons coder sur une seule ligne uniquement, où l'instruction IF nécessite plusieurs lignes.

Exemple # 3 - Condition IIF imbriquée VBA

Like how we use nested IF to test multiple conditions similarly we can use multiple IIF as well. Take a look at the below code.

Code:

 Sub IIF_Example2() Dim FinalResult As String Dim Marks As Long Marks = 98 FinalResult = IIf(Marks > 90, "Dist", IIf(Marks > 80, "First", IIf(Marks > 70, "Second", IIf(Marks > 60, "Third", "Fail")))) MsgBox FinalResult End Sub 

The above IIF condition tests five logical tests and returns the result accordingly.