Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA FUNCTION Code erreur #NOM?

3 réponses
Avatar
Yapi
Bonjour à tous,

Un mystère que j'aimerai partager...

J'ai créé la fonction suivante dans un classeur:

Function CalcAnc(DateDeEntree As Date)

Dim zDate As Date
' Calcul de l'anciennete en fonction de la date d'entree

CalcAnc = Abs(DateDiff("YYYY", DateDeEntree, Date))
zDate = DateAdd("YYYY", CalcAnc, DateDeEntree)
If zDate > Date Then CalcAnc = CalcAnc - 1

End Function

et elle marche! Mais si je la copie dans un autre classeur, j'ai un message
d'erreur #NOM? lorsque je l'appelle!

La seule différence que je constate c'est, lorsque j'appelle la fonction
personnalisée dans la barre de formule, une proposition formulée différement
: dans le premier classeur : ='AUTOFORMATION VBA.xlsm'!CalcAnc(L4) et dans le
deuxième classeur :=SALAIRES.xlsm!Module1.CalcAnc(L5)

Honnêtement, je ne comprends vraiment pas ce qui se passe?!?

Merci pour votre aide

Yapi

3 réponses

Avatar
Yapi
Juste un petit complément : dans le cas qui me pose problème, j'ai le message
"Cette fonction ne possède pas d'argument"



Bonjour à tous,

Un mystère que j'aimerai partager...

J'ai créé la fonction suivante dans un classeur:

Function CalcAnc(DateDeEntree As Date)

Dim zDate As Date
' Calcul de l'anciennete en fonction de la date d'entree

CalcAnc = Abs(DateDiff("YYYY", DateDeEntree, Date))
zDate = DateAdd("YYYY", CalcAnc, DateDeEntree)
If zDate > Date Then CalcAnc = CalcAnc - 1

End Function

et elle marche! Mais si je la copie dans un autre classeur, j'ai un message
d'erreur #NOM? lorsque je l'appelle!

La seule différence que je constate c'est, lorsque j'appelle la fonction
personnalisée dans la barre de formule, une proposition formulée différement
: dans le premier classeur : ='AUTOFORMATION VBA.xlsm'!CalcAnc(L4) et dans le
deuxième classeur :=SALAIRES.xlsm!Module1.CalcAnc(L5)

Honnêtement, je ne comprends vraiment pas ce qui se passe?!?

Merci pour votre aide

Yapi


Avatar
Daniel
Bonjour.
Ta fonction, c'est comme une macro. Si tu veux l'utiliser dans un autre
classeur que le sien, écris :
=NomDuClasseur!Fonction(...)
Cordialement.
Daniel
"Yapi" a écrit dans le message de news:

Bonjour à tous,

Un mystère que j'aimerai partager...

J'ai créé la fonction suivante dans un classeur:

Function CalcAnc(DateDeEntree As Date)

Dim zDate As Date
' Calcul de l'anciennete en fonction de la date d'entree

CalcAnc = Abs(DateDiff("YYYY", DateDeEntree, Date))
zDate = DateAdd("YYYY", CalcAnc, DateDeEntree)
If zDate > Date Then CalcAnc = CalcAnc - 1

End Function

et elle marche! Mais si je la copie dans un autre classeur, j'ai un
message
d'erreur #NOM? lorsque je l'appelle!

La seule différence que je constate c'est, lorsque j'appelle la fonction
personnalisée dans la barre de formule, une proposition formulée
différement
: dans le premier classeur : ='AUTOFORMATION VBA.xlsm'!CalcAnc(L4) et dans
le
deuxième classeur :=SALAIRES.xlsm!Module1.CalcAnc(L5)

Honnêtement, je ne comprends vraiment pas ce qui se passe?!?

Merci pour votre aide

Yapi


Avatar
Yapi
Bonjour Daniel,

En fait, dans mon cas précis je tire ma fonction du même classeur sauf que,
lorsque je vais dans mes fonctions personnalisées, il m'indique le chemin
complet au lieu de simplement proposer le nom de la fonction. En plus elle ne
fonctionne pas puisqu'elle n'identifie pas l'argument!!! Comment expliquer
que cette fonction marche par copier/coller sur un autre classeur?

As-tu une idée tel qu'un paramètrage par exemple???


Bonjour.
Ta fonction, c'est comme une macro. Si tu veux l'utiliser dans un autre
classeur que le sien, écris :
=NomDuClasseur!Fonction(...)
Cordialement.
Daniel
"Yapi" a écrit dans le message de news:

Bonjour à tous,

Un mystère que j'aimerai partager...

J'ai créé la fonction suivante dans un classeur:

Function CalcAnc(DateDeEntree As Date)

Dim zDate As Date
' Calcul de l'anciennete en fonction de la date d'entree

CalcAnc = Abs(DateDiff("YYYY", DateDeEntree, Date))
zDate = DateAdd("YYYY", CalcAnc, DateDeEntree)
If zDate > Date Then CalcAnc = CalcAnc - 1

End Function

et elle marche! Mais si je la copie dans un autre classeur, j'ai un
message
d'erreur #NOM? lorsque je l'appelle!

La seule différence que je constate c'est, lorsque j'appelle la fonction
personnalisée dans la barre de formule, une proposition formulée
différement
: dans le premier classeur : ='AUTOFORMATION VBA.xlsm'!CalcAnc(L4) et dans
le
deuxième classeur :=SALAIRES.xlsm!Module1.CalcAnc(L5)

Honnêtement, je ne comprends vraiment pas ce qui se passe?!?

Merci pour votre aide

Yapi