Évaluation d’expression et de feuille de calcul Excel (traduction automatique)

Dernière modification : vendredi 13 mars 2009

S’applique à : Excel 2010 | Office 2010 | VBA | Visual Studio

Dans cet article
Numéros
Longues chaînes Unicode
Renvoie des erreurs

Important

Cet article a été traduit automatiquement, voir l’avertissement. Vous pouvez consulter la version en anglais de cet article ici.

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

  • Numbers

  • Boolean TRUE ou FALSE

  • Strings

  • Errors

Tableaux de type mixte de ces types peuvent également être saisis dans les formules en tant qu'arguments des fonctions ou les valeurs s'étendant sur plusieurs cellules dans une formule matricielle.

Lorsqu'un utilisateur (ou une macro de commande) entre un élément dans une cellule, Excel essaie d'interpréter l'entrée et affiche un message d'erreur si elle ne peut 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 tel que prévu, sans modification. (Le préfixe de la chaîne n'est pas affiché.) Si l'entrée commence par =, **+**ou -, Excel tente d'interpréter l'entrée sous forme de formule. Si la syntaxe est incorrecte ou évaluation est arrêtée, une erreur s'affiche et la cellule est mises en mode édition. Dans le cas contraire, Excel tente d'identifier, de convertir et d'évaluer les opérateurs et les noms de fonctions et leurs arguments.

Opérandes sont évalués de gauche à droite avant de l'opérateur est appliqué. Fonctions sont évaluées en commençant par les opérateurs de plus haute priorité et le plus interne (plus imbriqués). Si les arguments de fonction ou les opérandes ne peut pas être convertis pour les types attendus, évaluation échoue et génère une erreur #VALUE!. Lorsqu'un jeton (qui n'est pas une valeur littérale) n'est pas reconnu en tant que fonction ou un nom défini ou une étiquette, évaluation échoue et génère une erreur #NAME?.

Si l'entrée ne démarre pas avec les tâches suivantes, Excel vérifie par rapport aux modèles connus d'entrée tels que les dates, heures, des montants en devise, des pourcentages ou des nombres et interprète en conséquence. Cela s'effectue dans un moyen de paramètres régionaux spécifiques. Si aucune de ces interprétations de sens, Excel revient à considérer l'entrée sous forme de chaîne et le place dans la cellule inchangée.

Excel prend en charge les autres types de données la plus visible est une référence de plage. Excel convertit les références aux valeurs des cellules référencée lors de l'évaluation des arguments pour les opérateurs et fonctions qui ne prennent pas les arguments de référence, ou lorsque l'expression dans une formule de cellule est réduit à une référence.

Excel expose la possibilité de réduire une chaîne de caractères valide à l'un des types de données feuille de calcul quatre base avec la EVALUATE de fonction XLM et ses xlfEvaluate équivalent API C. Cette fonction offre, entre autres choses, un moyen simple pour évaluer des plages nommées dans le code de la DLL. Cette fonction diffère du comportement décrit plus haut uniquement dans la mesure où au lieu d'afficher des messages d'erreur ou activation de l'édition de cellule, elle renvoie une erreur de #VALUE! en cas d'échec de l'évaluation d'expression.

Numéros

Tous les numéros de feuille de calcul dans Excel sont représentées en interne par 8 octets virgule flottante à double précision, y compris tous les entiers. Toutefois, la mise en oeuvre de ces chiffres dans Excel n'est pas entièrement IEEE conforme, comme illustré dans le tableau suivant.

Type

Maximal

Configuration minimale

Double de 8 octets IEEE

7976931348623157E + 308

2.2250738585072014E–308

Feuille de calcul (renvoyé par la fonction ou coller une valeur)

7976931348623157E + 308

2.22507385850721E–308

Feuille de calcul (entrée manuelle)

99999999999999E + 307

2.22507385850721E–308

IEEE subnormal numéros (autrement dit, dans la plage 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 + / – l'infini ou un double non valide, Excel convertit en #NUM!. Subnormal tous les numéros et les nombres inférieurs à la normale positive minimale dans Excel sont convertis en zéro positif. IEEE zéro négatif est pris en charge, en d'autres termes, il peut être renvoyé par une fonction DLL et se nomme -0. (L'opérateur de < ne vérifie pas un zéro négatif, et par conséquent, =A1<0 correspond à TRUE si A1 contient un zéro négatif).

Notez que certains formats de nombre ont des limitations plus étroites que ces éléments, par exemple, les dates et les heures. Division d'entier flotte, en fait, division en virgule et peut, dans les cas extrêmes, générer un résultat non entière dans laquelle le résultat précis doit être un entier.

Longues chaînes Unicode

Toutes les chaînes de que l'utilisateur voit dans Excel ont de nombreuses versions maintenant été stockés en interne en tant que chaînes Unicode. Les chaînes Unicode de feuille de calcul peuvent être jusqu'à 32 767 (215-1) caractères de longueur et peut contient n'importe quel caractère Unicode valide.

Lors de l'API c a d'abord été introduite, chaînes de la feuille de calcul ont été de chaînes d'octets limitées à une longueur de 255 caractères et l'API c reflétées ces limitations. Avec Excel 2007, l'API c est mis à jour pour gérer des chaînes Unicode longues de Excel. Cela signifie que les fonctions DLL inscrites dans la bonne façon peuvent accepter des arguments Unicode et renvoient les chaînes Unicode.

Notes

Chaînes d'octets sont toujours entièrement pris en charge dans l'API c pour la compatibilité ascendante, mais ils ont toujours la même limite de 255 caractères.

Renvoie des erreurs

Excel évalue les cellules à des erreurs dans le cas où il ne peut pas convertir les arguments de fonction ou l'opérateur vers le type approprié, ou s'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 les fonctions de feuille de calcul intégrée échouent, elles aussi provoquer des erreurs qui informent l'utilisateur du type de défaillance. Vous devez avoir vos propres fonctions de complément à renvoyer des erreurs qui sont cohérents avec le comportement dans Excel.

# NULL !

L'erreur #NULL! est renvoyée par certaines fonctions d'informations XLM. Par exemple, l'appel GET.DOCUMENT(78) ou le xlfGetDocument de fonction API C équivalent avec argument 78, lorsqu'il n'y a aucune imprimante installée provoque cette erreur est renvoyée. Elle peut également être renvoyée par certaines fonctions lorsque, par exemple, ils évaluent une chaîne vide.

Vous pouvez souhaiter retourner cette erreur à partir de votre fonction macro complémentaire lorsque aucun des autres erreurs semble approprié.

#DIV/0!

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

Vous n'envisagez de renvoi de cette erreur à partir de votre fonction macro complémentaire pour indiquer qu'une division par zéro a été détectée.

# VALEUR !

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

Certaines fonctions renvoient cette erreur si un argument ne peut pas être converti dans le code de fonction. Par exemple, DATEVALUE("30-Feb-2007") échoue avec cette erreur malgré l'argument du type approprié. Dans ce cas, il s'agit de la fonction a renvoyé une erreur à partir de son code. Certaines fonctions renvoient cette erreur, même si les types valeur et les plages sont autorisés, par exemple FIND("a","xyz") retourne cette erreur.

Vous devez envisager de retourner à partir de votre fonction macro complémentaire pour indiquer que les arguments sont de type incorrect, n'a pas peuvent être convertis au type correct ou en dehors des limites, bien que vous devez envisager de renvoi #NUM! arguments numériques hors des limites de cette erreur. Vous devez également envisager de renvoi lorsque les arguments de plage ou une matrice sont la forme incorrecte ou la taille de cette erreur.

# REF !

Excel génère l'erreur #REF! dans une expression lorsqu'elles sont copiées vers un emplacement où la référence relative qui en résulte est hors de limites. Par exemple, si la cellule B2 contient la formule =A1, copiez this dans résultats de B1 de cellule dans une formule =#REF!. Cette erreur est également générée dans les formules qui contiennent une référence qui est remplacée dans une opération couper-coller ou est supprimée dans une ligne, la colonne ou la suppression de la feuille de calcul. Certaines fonctions qui renvoient des références peuvent renvoyer 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 sont évalués à cette erreur.

Si votre fonction complément accepte des arguments de référence, vous devez envisager de renvoi de cette erreur si les références ne sont pas valides ou si vous sont transmis à une erreur de référence. La section XLOPER/XLOPER12s dans Gestion de la mémoire dans Excel (traduction automatique) décrit comment créer des fonctions qui peuvent accepter et renvoyer les arguments de référence.

# NOM ?

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 complément tente d'accéder à un nom défini, et il n'est pas défini, vous devez envisager de renvoi de cette erreur.

# NUM !

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

#N/A

L'erreur #N/A est souvent généré pour indiquer qu'un résultat réussi ou significatif n'est pas disponible. Par exemple, la correspondance avec le troisième argument zéro retourne cette erreur si une correspondance exacte est introuvable. Cette erreur peut également être générée à l'aide de la fonction NA et spécifiquement détecté avec la fonction ISNA. Il est donc une erreur couramment utilisée dans les feuilles de calcul pour indiquer une plage de conditions spécifiques à l'application.

Notes

Avertissement traduction automatique : cet article a été traduit par un ordinateur, sans intervention humaine. Microsoft propose cette traduction automatique pour offrir aux personnes ne maîtrisant pas l’anglais l’accès au contenu relatif aux produits, services et technologies Microsoft. Comme cet article a été traduit automatiquement, il risque de contenir des erreurs de grammaire, de syntaxe ou de terminologie.

Voir aussi

Concepts

Concepts de programmation Excel (traduction automatique)

Programmation avec l’API C dans Excel 2010 (traduction automatique)

Évaluation des noms et autres expressions de formule de feuille de calcul (traduction automatique)

Documentation de référence sur les fonctions de l’API du SDK XLL Excel 2010 (traduction automatique)