VBA FUNCTION Code erreur #NOM?

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Yapi
Le #4809701
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


Daniel
Le #4809681
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"
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


Yapi
Le #4809601
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"
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







Publicité
Poster une réponse
Anonyme