Partager via


Feuille de calcul Excel et �valuation d�expression

S’applique à: Excel 2013 | Office 2013 | Visual Studio

Le contenu des cellules de feuille de calcul Microsoft Excel est évalué dans l’un des quatre types de données de base :

  • Numbers
  • Boolean TRUE ou FALSE
  • Strings
  • Errors

Des tableaux de plusieurs types peuvent �galement �tre saisis dans des formules en tant qu�arguments de fonctions ou valeurs �tendant plusieurs cellules dans une formule de tableau.

Lorsqu�un utilisateur (ou une macro de commande) saisit un �l�ment dans une cellule, Excel essaie d�interpr�ter l�entr�e et affiche un message d�erreur s�il n�y parvient pas. Si l�entr�e commence par un pr�fixe de cha�ne (un guillemet simple), Excel place tous les caract�res d�entr�e dans la cellule comme pr�vu, sans ajouter de modification. (Le préfixe de chaîne n’est pas affiché.) Si l’entrée commence =par , +ou -, Excel tente d’interpréter l’entrée comme une formule. Si la syntaxe est incorrecte ou si l’évaluation est arrêtée, une erreur s’affiche et la cellule est mise en mode édition. Dans le cas contraire, Excel tente d�identifier, convertir et �valuer les op�rateurs, ainsi que les noms de fonction et leurs arguments.

Les opérandes sont évalués de gauche à droite avant l’application de l’opérateur. Les fonctions sont évaluées en commençant par les opérateurs ayant la priorité la plus élevée et les plus profonds (les plus imbriqués). Si les arguments de fonction ou opérandes ne peuvent pas être convertis en types attendus, l’évaluation échoue et entraîne une erreur #VALUE!. Lorsqu’un jeton (qui n’est pas une valeur littérale) n’est pas reconnu comme une fonction, un nom défini ou une étiquette définie, l’évaluation échoue et entraîne une erreur #NAME?.

Si l�entr�e ne commence pas par l�un de ces �l�ments, Excel effectue une v�rification par rapport aux mod�les connus d�entr�e, tels que des dates, des heures, des devises, des pourcentages ou des nombres, et r�alise une interpr�tation en cons�quence. Vous pouvez effectuer cette op�ration en suivant des param�tres r�gionaux. Si aucune de ces interpr�tations n�est pertinente, Excel consid�re � nouveau l�entr�e comme une cha�ne et la place dans la cellule sans la modifier.

Excel prend en charge d�autres types de donn�es, dont les plus visibles sont les r�f�rences de plage. Excel convertit les r�f�rences vers les valeurs des cellules auxquelles il est fait r�f�rence lors de l��valuation des arguments pour les op�rateurs et fonctions qui ne prennent pas d�arguments de r�f�rence, ou lorsque l�expression dans une formule de cellule est r�duite � une r�f�rence.

Excel offre la possibilit� de r�duire une cha�ne de caract�res valide � l�un des quatre types de donn�es de feuille de calcul standard avec la fonction XLM EVALUATE et son API�C �quivalente xlfEvaluate. Entre autres choses, cette fonction permet d��valuer simplement les plages nomm�es dans le code de DLL. Elle diffère du comportement décrit précédemment uniquement par le fait qu’au lieu d’afficher des messages d’erreur ou d’activer la modification de cellule, elle renvoie une erreur #VALUE! en cas d’échec de l’évaluation de l’expression.

Nombres

Tous les nombres de feuille de calcul dans Excel sont repr�sent�s en interne comme une virgule flottante double pr�cision de 8�octets, y compris tous les nombres entiers. Toutefois, l�impl�mentation de ces nombres dans Excel n�est pas enti�rement compatible avec IEEE, comme indiqu� dans le tableau suivant.

Type Maximum Minimum
Double de 8�octets IEEE
1.7976931348623157E+308
2.2250738585072014E-308
Feuille de calcul (renvoy�e par la fonction ou coller une valeur)
1.7976931348623157E+308
2.22507385850721E-308
Feuille de calcul (saisie manuelle)
9.99999999999999E+307
2.22507385850721E-308

Les nombres IEEE inf�rieurs � la normale (c�est-�-dire, ceux compris dans les plages 2.2250738585072009E�308 � 4.9406564584124654E�324) ne sont pas pris en charge dans les feuilles de calcul Excel, mais sont pris en charge par VBA�Doubles.

Si une fonction DLL renvoie IEEE +/- infini ou un double non valide, Excel les convertit en #NUM!. Les nombres inf�rieurs � la normale ou inf�rieurs au nombre normal positif minimal dans Excel sont convertis en z�ro positif. La valeur IEEE z�ro n�gatif est prise en charge, autrement dit, elle peut �tre renvoy�e par une fonction DLL et est affich�e en tant que -0. (L�op�rateur < ne recherche pas de z�ro n�gatif, donc =A1<0 attribue la valeur TRUE si A1 contient une valeur z�ro n�gative).

Notez que certains formats de nombre ont des limites plus �troites que celles-ci, par exemple, les dates et les heures. La division entière est, en définitive, une division de virgule flottante et peut, dans des cas extrêmes, générer un résultat non entier où le résultat précis doit être un entier.

Chaînes Unicode longues

Toutes les chaînes que l’utilisateur voit dans Excel ont été stockées en interne sous forme de chaînes Unicode pour de nombreuses versions. Les chaînes de feuille de calcul Unicode peuvent contenir jusqu’à 32 767 caractères (215 - 1) caractères et contenir n’importe quel caractère Unicode valide.

Lors de la premi�re introduction de l�API�C, les cha�nes de feuille de calcul �taient des cha�nes d�octets limit�es � une longueur de 255�caract�res, et l�API�C refl�tait ces limitations. Avec Excel 2007, l’API C est mise à jour pour gérer les chaînes Unicode longues Excel. Cela signifie que les fonctions DLL inscrites de la bonne façon peuvent accepter des arguments Unicode et retourner des chaînes Unicode.

Remarque

Les chaînes d�octets sont toujours enti�rement prises en charge dans l�API C pour la compatibilit� descendante. Toutefois, elles ont toujours la m�me limite de 255�caract�res.

Renvoi d�erreurs

Excel consid�re comme des erreurs les cellules dans lesquelles il ne peut pas convertir les arguments de fonction ou d�op�rateur en type correct, ou dans lesquelles il ne reconna�t pas une fonction ou un nom d�fini. Ces deux sc�narios ont �t� d�crits pr�c�demment. Lorsque les op�rateurs et fonctions de feuille de calcul int�gr�s �chouent, cela g�n�re aussi des erreurs qui informent l�utilisateur du type d��chec. Vous devez disposer de vos propres fonctions de complément, renvoyant des erreurs cohérentes avec le comportement dans Excel.

#NULL!

L’erreur #NULL! est renvoyée par certaines fonctions d’informations XLM. Par exemple, l�appel de GET.DOCUMENT(78), ou de la fonction d�API�C �quivalente xlfGetDocument avec l�argument�78, lorsqu�aucune imprimante n�est install�e, g�n�re le renvoi de cette erreur. Elle peut �galement �tre renvoy�e par certaines fonctions lorsque, par exemple, elles �valuent une cha�ne vide.

Vous pouvez renvoyer cette erreur � partir de votre fonction de compl�ment lorsqu�aucune des autres erreurs ne semble appropri�e.

#DIV/0!

L’opérateur de division Excel renvoie l’erreur #DIV/0! lorsque le dénominateur est égal à zéro ou à un nombre est trop petit pour être représenté comme non nul par Excel. Certaines fonctions qui, par d�finition, impliquent une division peuvent �galement renvoyer cette erreur. Par exemple, AVERAGE renvoie cette erreur si aucune des entr�es ne peut �tre convertie en nombre.

Vous devez envisager le renvoi de cette erreur uniquement � partir de votre fonction de compl�ment pour indiquer qu�une division par z�ro a �t� d�tect�e.

#VALUE!

Excel renvoie l’erreur #VALUE! si un argument de fonction ou d’opérateur ne peut pas être converti en type requis. Dans le cas d’arguments de fonction qui ne peuvent pas être convertis, par exemple =LN("X"), Excel n’appelle pas le code de la fonction. Il s�agit d�un point important � retenir lors de l��criture et du d�bogage de vos propres fonctions de compl�ment.

Certaines fonctions retournent cette erreur si un argument ne peut pas être converti dans le code de la fonction. Par exemple, DATEVALUE("30-Feb-2007") échoue avec cette erreur bien que l’argument soit du type approprié. Dans ce cas, c’est la fonction qui retourne l’erreur à partir de son code. Certaines fonctions retournent cette erreur même si les types de valeurs et les plages sont autorisés, par exemple FIND("a","xyz") , retourne cette erreur.

Vous devez envisager de renvoyer cette erreur à partir de votre fonction de complément pour indiquer que les arguments sont du mauvais type, qu’ils n’ont pas pu être convertis vers le type approprié ou qu’ils sont hors limites, même si vous devez envisager de retourner #NUM ! pour les arguments numériques hors limites. Vous devez également envisager de renvoyer cette erreur lorsque les arguments de plage ou de tableau ont une forme ou une taille incorrecte.

#REF!

Excel génère l’erreur #REF! au sein d’une expression lorsqu’elle est copiée vers un emplacement où la référence relative obtenue sort des limites. Par exemple, si la cellule B2 contient la formule =A1, la copie de celle-ci dans la cellule B1 entraîne une formule =#REF !. Cette erreur est �galement g�n�r�e dans les formules contenant une r�f�rence qui est remplac�e dans une op�ration de couper-coller ou qui est supprim�e lors de la suppression d�une ligne, d�une colonne ou d�une feuille de calcul. Certaines fonctions qui peuvent retourner des références peuvent retourner cette erreur, par exemple. OFFSET(A1,-1,-1) Les noms de feuille de calcul dont les d�finitions contiennent des r�f�rences qui deviennent non valides se voient attribuer cette erreur.

Si votre fonction de compl�ment utilise des arguments de r�f�rence, vous devez envisager de renvoyer cette erreur si les r�f�rences ne sont pas valides, ou si vous avez transmis une erreur de r�f�rence. La section sur XLOPER/XLOPER12s dans Gestion de la m�moire dans Excel d�crit la fa�on de cr�er des fonctions qui peuvent accepter et renvoyer des arguments de r�f�rence.

#NAME ?

Excel génère l’erreur #NAME? lorsqu’une expression contient un jeton qui n’est pas reconnu comme une fonction ou un nom défini. Si votre fonction de complément essaie d’accéder à un nom défini qui n’est pas défini, vous devez envisager de renvoyer cette erreur.

#NUM!

La plupart des fonctions numériques et mathématiques intégrées dans Excel retournent l’erreur #NUM ! lorsqu’une entrée numérique est hors de la plage autorisée, par exemple. LN(0) Vous devez envisager de renvoyer cette erreur à partir de votre fonction de complément pour indiquer qu’une entrée numérique est non valide ou hors de la plage.

#N/A

L�erreur #N/A est souvent renvoy�e pour indiquer qu�un r�sultat r�ussi ou explicite n�est pas disponible. Par exemple, MATCH avec le troisi�me argument z�ro renvoie cette erreur si une correspondance exacte est introuvable. Cette erreur peut �galement �tre g�n�r�e � l�aide de la fonction NA, et si elle est sp�cifiquement d�tect�e par la fonction ISNA. Il s�agit donc d�une erreur couramment utilis�e dans les feuilles de calcul pour indiquer une plage de conditions propres � l�application.

Voir aussi

Concepts de programmation Excel

Programmation avec l�API�C dans Excel

�valuer les noms et les autres Expressions de formule de feuille de calcul

R�f�rence des fonctions XLL SDK API Excel 2013