Utilisation des fonctions FONCTION.APPELANTE et REGISTRE

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

Important : Attention    Une modification incorrecte du Registre peut endommager gravement votre système d’exploitation et nécessiter sa réinstallation. Microsoft ne peut pas garantir qu’il soit possible de résoudre les problèmes dus à une modification incorrecte du Registre. Avant de modifier le Registre, sauvegardez les données les plus précieuses. Pour obtenir les informations les plus récentes sur l’utilisation et la protection du Registre de votre ordinateur, voir l’Aide de Microsoft Windows.

Cet article décrit la syntaxe de la formule et l'utilisation des fonctions FONCTION.APPELANTE, REGISTRE et REGISTRE.NUMERO dans Microsoft Excel.

Remarque : Les fonctions FONCTION.APPELANTE et REGISTRE ne sont pas disponibles dans Excel Online.

Contenu de cet article

Description

Types de données

Remarques

Information supplémentaires sur les types de données

Types de données F et G

Type de données K

Type de données O

Type de données P

Type de données R — Appel de fonctions Microsoft Excel à partir de DLL

Fonctions volatiles et recalcul

Modification sur place — Fonctions déclarées void

Description

Vous trouverez ci-après une description des types de données de l’argument et des valeurs renvoyées, utilisés par les fonctions FONCTION.APPELANTE, REGISTRE et REGISTRE.NUMERO. Les arguments et les valeurs renvoyées diffèrent légèrement selon votre environnement d’exploitation ; ces différences sont signalées dans le tableau des types de données.

Haut de la page

Types de données

Dans les fonctions FONCTION.APPELANTE, REGISTRE et REGISTRE.NUMÉRO, l’argument type_texte spécifie le type de données de la valeur renvoyée et celui de tous les arguments pour la fonction ou la ressource de code (ou DLL). Le premier caractère de l’argument type_texte concerne le type de données de la valeur renvoyée. Les caractères suivants indiquent les types de données de tous les arguments. Par exemple, une fonction DLL qui renvoie un nombre à virgule flottante et accepte un nombre entier et un nombre à virgule flottante comme arguments requiert la valeur « BIB » comme argument type_texte

Le tableau suivant contient la liste complète des codes de type de données que Microsoft Excel identifie, avec leur description, la façon dont l’argument ou la valeur renvoyée sont transférés et la déclaration caractéristique de ce type de données en langage de programmation C.

Code

Description

Transféré par

Déclaration en C

A

Valeur logique
(FAUX = 0), VRAI = 1)

Valeur

short int

B

Nombre à virgule flottante de 8 octets selon la norme IEEE

Valeur
(Windows)

Référence (Macintosh)

double
(Windows)

double * (Macintosh)

C

Chaîne terminée par le caractère nul (longueur maximale de la chaîne = 255 caractères)

réf

char *

D

Chaîne à octets comptés (le premier octet contient la longueur de la chaîne, longueur maximale de la chaîne = 255 caractères)

réf

Unsigned char *

E

Nombre à virgule flottante de 8 octets selon la norme IEEE

réf

double *

F

Chaîne terminée par le caractère nul (longueur maximale de la chaîne = 255 caractères)

Référence (modifier sur place)

char *

G

Chaîne à octets comptés (le premier octet contient la longueur de la chaîne, longueur maximale de la chaîne = 255 caractères)

Référence (modifier sur place)

unsigned char *

H

Nombre entier de 2 octets non signé

Valeur

unsigned short int

I

Nombre entier de 2 octets signé

Valeur

short int

J

Nombre entier de 4 octets signé

Valeur

long int

k

Matrice

réf

FP *

L

Valeur logique
(FAUX = 0, VRAI = 1)

réf

short int *

m

Nombre entier de 2 octets signé

réf

short int *

N

Nombre entier de 4 octets signé

réf

long int *

O

Matrice

réf

Trois arguments sont transférés :
unsigned short int *
unsigned short int *
double [ ]

P

Structure de données OPER de Microsoft Excel

réf

OPER *

R

Structure de données XLOPER de Microsoft Excel

réf

XLOPER *

Haut de la page

Remarques

  • Les déclarations en langage C s’appuient sur l’hypothèse que votre compilateur utilise par défaut des doubles de 8 octets, des nombres entiers courts de 2 octets et des nombres entiers longs de 4 octets.

  • Dans l’environnement de programmation de Microsoft Windows, tous les pointeurs sont des pointeurs longs (type far). Par exemple, vous devez déclarer le code du type de données D comme étant unsigned char far * dans Microsoft Windows.

  • Dans les DLL et les ressources de code, toutes les fonctions sont appelées en se conformant à la convention d’appel du Pascal. La plupart des compilateurs C vous permettent d’utiliser cette convention en ajoutant le mot clé « Pascal » à la déclaration de la fonction, comme le montre l’exemple suivant : pascal void main (rows,columns,a)

  • Si une fonction utilise un type de données transféré par référence pour la valeur qu’elle renvoie, vous pouvez transférer un pointeur nul comme étant la valeur renvoyée. Microsoft Excel interprétera le pointeur nul comme étant la valeur d’erreur #NOMBRE!

Haut de la page

Information supplémentaires sur les types de données

Cette section contient des informations détaillées sur les types de données F, G, K, O, P et R, ainsi que des informations supplémentaires sur l’argument type_texte.

Types de données F et G

À l’aide des types de données F et G, une fonction peut modifier un tampon de chaîne alloué par Microsoft Excel. Si le code du type de la valeur renvoyée est F ou G, Microsoft Excel ne prend pas en compte la valeur renvoyée par la fonction. Dans ce cas, celui-ci recherche dans la liste des arguments de la fonction le premier type de données correspondant (F ou G) et prend comme valeur renvoyée le contenu effectif du tampon de chaîne alloué. Comme Microsoft Excel alloue 256 octets à l’argument, la fonction peut renvoyer une chaîne plus longue que celle qu’elle a reçue.

Haut de la page

Type de données K

Le type de données K utilise un pointeur sur une structure FP de taille variable. Vous devez définir cette structure dans la DLL ou dans la ressource de code, comme suit :

typedef struct _FP
{
unsigned short int rows;
unsigned short int columns;
double array[1]; /* Actually, array[rows][columns] */
} FP;

La déclaration double array[1] alloue l’espace nécessaire pour stocker une matrice à un seul élément. Le nombre d’éléments de la matrice réelle est égal au nombre de lignes multiplié par le nombre de colonnes.

Haut de la page

Type de données O

Le type de données O peut être utilisé uniquement comme un argument, et non comme une valeur renvoyée. Il transfère trois éléments : un pointeur sur le nombre de lignes dans une matrice, un autre sur le nombre de colonnes dans une matrice et un troisième sur une matrice bidimensionnelle contenant des nombres à virgule flottante.

Au lieu de renvoyer une valeur, une fonction peut modifier une matrice transférée par le type de données O. Pour ce faire, vous pouvez utiliser « >O » comme argument type_texte. Pour plus d’informations, voir la rubrique « Modification sur place — Fonctions déclarées void », plus bas dans cette section.

Le type de données O a été créé pour des raisons de compatibilité directe avec les DLL Fortran, qui transfèrent les arguments par référence.

Haut de la page

Type de données P

Le type de données P est un pointeur sur une structure OPER. Celle-ci contient 8 octets de données, suivis par un identificateur de 2 octets indiquant le type de données. Avec le type de données P, une fonction ou une ressource de code DLL peut accepter et renvoyer tout type de données Microsoft Excel.

La structure OPER se définit comme suit :

typedef struct _oper

{
union
{
double num;
unsigned char *str;
unsigned short int bool;
unsigned short int err;
struct
{
struct _oper *lparray;
unsigned short int rows;
unsigned short int columns;
} array;
} val;
unsigned short int type;
} OPER;

Le champ type contient l’une des valeurs suivantes.

Style

Description

Champ Val à utiliser

1

Numérique

num

2

Chaîne (le premier octet contient la longueur de la chaîne)

str

4

Logique de Boole

bool

16

Erreur : les valeurs d’erreur sont les suivantes :

0#NULL!

7#DIV/0!

15#VALEUR!

23#RÉF!

29#NOM ?

36#NOMBRE!

42#N/A

err

64

Matrice

array

128

Argument manquant

256

Cellule vide

Les deux dernières valeurs peuvent être utilisées uniquement comme des arguments et non comme des valeurs renvoyées. La valeur « argument manquant » (128) est transférée lorsque l’appelant omet un argument. La valeur « cellule vide » (256) est transférée lorsque l’appelant communique une référence à une cellule vide.

Haut de la page

Type de données R — Appel de fonctions Microsoft Excel à partir de DLL

Le type de données R est un pointeur sur une structure XLOPER, version améliorée de la structure OPER. Dans les versions 4.0 et ultérieures de Microsoft Excel, vous pouvez utiliser le type de données R pour écrire des DLL et des ressources de code appelant des fonctions de Microsoft Excel. Avec la structure XLOPER, une fonction DLL peut transférer des références de feuilles en plus des données et mettre en place un contrôle de flux. Une description complète du type de données R et de l’API de Microsoft Excel dépasse le cadre de cette rubrique. Le Guide du développeur Microsoft Office XP contient des informations détaillées sur le type de données R, l’interface API de Microsoft Excel et autres aspects techniques de Microsoft Excel.

Haut de la page

Fonctions volatiles et recalcul

En règle générale, Microsoft Excel calcule une fonction DLL (ou une ressource de code) uniquement lorsqu’elle est entrée dans une cellule, lorsque l’un de ses antécédents change ou que la cellule est calculée lors de l’exécution d’une macro. Dans une feuille de calcul, vous pouvez rendre volatile une fonction ou une ressource de code DLL, ce qui signifie qu’elle sera recalculée à chaque recalcul de la feuille de calcul. Pour rendre une fonction volatile, mettez un point d’exclamation (!) comme dernier caractère de l’argument type_texte.

Par exemple, dans Microsoft Excel pour Windows, la formule de feuille de calcul suivante est recalculée à chaque recalcul de la feuille de calcul :

Call("Kernel32","GetTickCount","J!")

Haut de la page

Modification sur place — Fonctions déclarées void

Dans l’argument type_texte, vous pouvez utiliser un chiffre unique n pour le code de type renvoyé, n étant un nombre compris entre 1 et 9. Il indique à Microsoft Excel de modifier sur place la variable désignée par le n-ième argument de l’argument type_texte, au lieu de renvoyer une valeur. Cette option est également connue sous le nom de modification sur place. Le n-ième argument doit être un type de données transféré par référence (C, D, E, F, G, K, L, M, N, O, P ou R). La fonction ou la ressource de code DLL doit également être déclarée avec le mot clé « void » en langage C (ou le mot clé « procédure » en langage Pascal).

Par exemple, une fonction DLL qui accepte une chaîne terminée par le caractère nul et deux pointeurs sur des nombres entiers comme arguments peut modifier la chaîne sur place. Utilisez « 1FMM » comme argument type_texte et déclarez la fonction comme void.

Les versions de Microsoft Excel antérieures à la version 4.0 utilisaient le caractère > pour modifier sur place le premier argument ; il n’existait aucun moyen de modifier un autre argument que le premier. Le caractère > équivaut à n = 1 dans les versions 4.0 et ultérieures de Microsoft Excel.

Haut de la page

Remarque : 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.

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

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×