Visual Basic For Applications
Comment utiliser la fonction If en VBA ?

Apprenez à utiliser la fonction If et découvrez d’autres fonctions bien pratiques qui pourront vous être utiles.

La fonction VBA IF : les fonctions conditionelles

Dans Excel, les fonctions conditionnelles sont une partie intégrante du code VBA. Donnant le même résultat que la formule SI sur une feuille classique d’Excel, elles permettent de donner différentes instructions en fonction de paramètres variables pour conditionner un comportement.

Les maîtriser est indispensable pour pouvoir construire des codes fiables et efficaces. Combiner avec les boucles VBA, vos possibilités vont décupler.

Deux principales fonctions conditionnelles en VBA sont particulièrement utiles puisqu’elles peuvent être utilisées pour faire presque n’importe quoi : La fonction If et la fonction Case.







La fonction If en VBA

Du même principe que la formule SI(), cette fonction permet de faire des conditions. Relativement simple à utiliser, elle est composée de plusieurs éléments. Les instructions If et Then sont indispensables :

  • If CONDITION : instruction de départ qui indique qu’elle est la variable à prendre en compte ainsi que la condition,
  • Then : indique la fin des conditions et doit être inscrit sur la même ligne que le If,
  • Else ou Elsif (optionnel) : permet d’indiquer la conscéquence si la condition initiale n’est pas remplie et le Elsif d’ajouter une condition supplémentaire,
  • End If : instruction de fin.

Dans le cas ou un Elsif est utilisé, une condition doit être ajoutée après l’instruction et un nouveau Then ajouté sur la même ligne.

La fonction If peut être conbinée avec les opérateurs logiques AND et OR pour développer une condition

If couleur = "Rouge" then
 
	msgbox("La couleur est" & couleur)
 
Elsif couleur = "Bleu" then
 
	msgbox("La couleur est" & couleur)
 
Else
 
	msgbox("Il n'y a pas de couleur indiquée")
 
End If 'instruction de fin

En traduisant l’exemple ci-dessus on obtient : Si la couleur est égale à rouge alors, le message indique que la couleur est rouge, sinon si la couleur est bleu, le message indique bleu, et sinon le message indique qu’il n’y a pas de couleur.

Astuce

La fonction End If n’est pas indispensable si vous n’avez qu’une seule instruction et si vous l’inscrivez directement à la suite du THEN comme dans la macro à la fin de cet article.



La fonction Case en VBA

La fonction Case est une autre fonction à condition en VBA mais qui est moins commune que la fonction If. Elle est pourant assez simple à utiliser et relativement claire à lire.

Cette fonction est constituée de plusieurs éléments :

  • Select Case VARIABLE : instruction de départ qui indique qu’elle est la variable à prendre en compte,
  • Case CONDITION : il y a autant de case que de conditions et une seule condition par case,
  • Case Else (optionnel) : même principe que le ELSE de la fonction IF,
  • End Select : instruction de fin.

Vous trouverez un exemple de l’utilisation d’un Case dans notre macro VBA qui tranforme la premère lettre en majuscule. Cette macro utilise également la fonction IF. Les deux types d’instructions de conditions sont utilisés dans le code pour prendre en compte des conditions et effectuer des actions si elles sont remplies ou non.



La fonction IIf en VBA

D’autres types de fonctions conditionnelles existent et peuvent être utilisées. Elles sont généralement de type « booléan ». C’est-à-dire qu’elles effectuent une action si une condition est vraie ou fausse.

La fonction IIf est à mi-chemin entre une fonction booléenne et la fonction If.

Cette fonction permet de déterminer si une condition est vraie ou fausse. Dans chacun des 2 cas, elle renvoie la valeur de votre choix.

La synthaxe de la fonction est la suivante :

  • IIf EXPRESSION : instruction de départ qui indique qu’elle est l’expression à valider ou non. Comme pour la fonction If elle utilise les symboles « >= »: par exemple: A1<10,
  • Valeur si vrai : valeur renvoyée si l’expression est validée,
  • Valeur si faux : valeur renvoyée si l’expression est fausse.

Par exemple, la fonction Iff ci-dessous renvoie positif si le nombre contenu dans la cellule A1 est positif. Le résultat est donné en cellule A2.

range("A2")=IIf(range("A1")>0,"Positif","Négatif")

Lire notre prochain article sur le bloc With particulièrement utile.

Notez nous !
[Moyenne : 4.8]