Fonction IIf

Renvoie une ou deux parties, selon l’évaluation d’un expression.

Vous pouvez utiliser IIf partout où vous pouvez utiliser des expressions. Utilisez IIf pour déterminer si une autre expression est vraie ou fausse. Si l’expression est vraie, IIf renvoie une valeur ; s’il est faux, IIf renvoie une autre information. Vous spécifiez les valeurs que renvoie IIf.

Voir quelques exemples

Syntaxe

IIf (expr, truepart, falsepart)

La syntaxe de la fonction IIf comprend les arguments suivants :

Argument

Description

expr

Obligatoire. Expression que vous voulez évaluer.

truepart

Obligatoire. Valeur ou expression renvoyée si expr est True.

falsepart

Obligatoire. Valeur ou expression renvoyée si expr est False.


Remarques

VraiFaux renvoie toujours la valeur VraiPart et Fauxpart,même si elle renvoie l’un d’eux uniquement. C’est pourquoi vous devez surveiller les effets secondaires indésirables. Par exemple, si l’évaluation de valeur Fauxpart produit une erreur de division par zéro, une erreur se produit même si expr estTrue.

Exemples

Utiliser IIf sur un formulaire ou un état    Supposons que vous avez une table Clients qui contient un champ nommé CountryRegion. Dans un formulaire, indiquez si l’italien est la première langue du contact. Vous pouvez ajouter un contrôle et utiliser IIf dans sa propriété Source contrôle, comme c’est le cas :

=Si([PaysRégion]="Italie », « Italien », « Une autre langue »)

Lorsque vous ouvrez le formulaire en mode Formulaire, le contrôle affiche « Italien » chaque fois que la valeur du paysRégion est Italie et « Une autre langue » chaque fois que PaysRégion est une autre valeur.

Utiliser IIf dans des expressions complexes    Vous pouvez utiliser n’importe quelle expression comme faisant partie d’une instruction IIf. Vous pouvez également « imbrier » des expressions IIf, ce qui vous permet d’évaluer une série d’expressions dépendantes. Pour continuer avec l’exemple précédent, vous pouvez tester plusieurs valeurs PaysRégion, puis afficher la langue appropriée en fonction de la valeur qui existe :

=Si([PaysRégion]="Italie », « Italien », IIf([PaysRégion]="France », « Français », IIf([PaysRégion]="Allemagne », « Allemand », « Une autre langue »)))

Le texte « Une autre langue » est l’argument falsepart de la fonction IIf la plus interne. Étant donné que chaque fonction VraiFaux imbrmbrées est l’argument falsepart de la fonction VraiFaux qui la contient, le texte « Une autre langue » est renvoyé uniquement si tous les arguments expr de toutes les fonctions VraiFaux sont faux.

Supposons, par exemple, que vous travaillez dans une bibliothèque. La base de données de bibliothèque comporte une table nommée Archives qui contient un champ, Intitulé Échéance, contenant la date d’échéance d’un livre particulier. Vous pouvez créer un formulaire qui indique l’état d’un élément extrait d’un contrôle à l’aide de la fonction IIf dans la propriété Source contrôle de ce contrôle, comme c’est le cas :

=IIf([Échéance]<Date(),"EN RETARD »,IIf([Échéance]=Date(),"Échéance aujourd’hui »,"Pas encore Échéance »))

Lorsque vous ouvrez le formulaire en mode Formulaire, le contrôle affiche « EN RETARD » si la valeur de l’échéance est inférieure à la date du jour, « Échéance aujourd’hui » si elle est égale à la date du jour et « Pas encore échéance » sinon.

Remarque : Pour utiliser des opérateurs logiques tels que « Et » ou « Ou » dans l’argument expr de la fonction Si, vous devez mettre l’expression logique dans la fonction Eval. Consultez l’exemple de tableau ci-dessous.

Utiliser IIf dans une requête    

La fonction IIf est fréquemment utilisée pour créer des champs calculés dans les requêtes. La syntaxe est la même, à l’exception près que dans une requête,vous devez faire préfacer l’expression par un alias de champ et un signe deux-points (:) au lieu d’un signe égal(=). Pour utiliser l’exemple précédent, tapez ce qui suit dans la ligne Champ de la grille de création de requête :

Langue : IIf([PaysRégion]="Italie », « Italien », « Une autre langue »)

Dans ce cas, « Langue : » est l’alias du champ.

Pour plus d’informations sur la création de requêtes et de champs calculés, voir l’article Créer une requête Sélection simple.

Utiliser IIf dans un code VBA    

Remarque : Les exemples qui suivent illustrent l’utilisation de cette fonction dans un module Visual Basic pour Applications (VBA). Pour plus d’informations sur l’travail avec VBA, sélectionnez Référence du développeur dans la liste de listes en regard de Rechercher, puis entrez un ou plusieurs termes dans la zone de recherche.

Cet exemple utilise la fonction IIf pour évaluer le paramètre TestMe de la procédure CheckIt et renvoie le mot « Grande » si le montant est supérieur à 1 000 ; sinon, elle renvoie le mot « Petit ».

Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function

Autres exemples

Expression

Résultats

=IIf([AirportCode]="ORD »,"Chicago »,IIf([AirportCode]="ATL »,"Atlanta »,IIf([AirportCode]="SEA »,"Seattle »,"Other »)))

Si [AirportCode] est « ORD », retournez « Chicago ». Sinon, si [AirportCode] est « ATL », retournez « Atlanta ». Sinon, si [AirportCode] est « SEA », retournez « Seattle ». Sinon, renvoyer « Autre ».

=ValeurExpédité([DateExpédité]<Date(),"Expédié »,DateExpédité([DateExpédité]=Date(),"Expédition aujourd’hui »,"Non envoyé »))

Si [DateExédition] est antérieure à la date du jour, renvoyer « Expédié ». Sinon, si [DateRé livraison] est égal à la date du jour, renvoyez « Livraison aujourd’hui ». Sinon, renvoyer « Non complété ».

=IIf([PurchaseDate]<#1/1/2008#,"Ancien »,"Nouveau »)

Si [PurchaseDate] est antérieur au 01/01/2008, renvoyer « Ancien ». Sinon, renvoyer « Nouveau ».

=IIf(Eval([Volts] Entre 12 et 15 Et [Amp] Entre 0,25 et 0,3),"OK »,"Hors étalonnage »)

Si [Volts] est entre 12 et 15 et [Amp] est entre 0,25 et 0,3, renvoyer « OK ». Sinon, renvoyez « Hors étalonnage ».

=SiF(Eval([PaysRégion] Dans (« Canada »,"États-Unis »,"Mexique »)),"Amérique du Nord »,"Autre »)

Si [PaysRégion] est « Canada », « États-Unis » ou « Mexique », renvoyer « Amérique du Nord ». Sinon, renvoyer « Autre ».

=IIf([Moyenne]>=90,"A »,IIf([Moyenne]>=80,"B »,IIf([Moyenne]>=70,"C »,IIf([Moyenne]>=60,"D »,"F »))))

Si [Moyenne] est supérieure ou supérieure à 90, renvoyer « A ». Sinon, si [Moyenne] est supérieure ou supérieure à 80, renvoyer « B ». Sinon, si [Moyenne] est supérieure ou supérieure à 70, renvoyer « C ». Sinon, si [Moyenne] est supérieure ou supérieure à 60, renvoyer « D ». Sinon, renvoyer « F ».

Remarque : Si vous utilisez la fonction IIf pour créer un champ calculé dans une requête, remplacez le signe égal(=)par un alias de champ et un signe deux-points (:). Par exemple, État : IIf([DateExpédité]<Date(),"Expédié »,IIf([DateExpédité]=Date(),"Expédition aujourd’hui »,"Non tapé »))

Besoin d’aide ?

Développez vos compétences dans Office
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider