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

fonction personnalisée

13 réponses
Avatar
Dominique MARTIN
Bonjour,

J'ai créé un classeur de macro personnalisée Macroperso.xla.
J'ouvre Excel et je référence le classeur xla.
je peux utiliser dans une feuille de calcul les fonctions de Macroperso.xla
par exemple fCalcul(arg1).
Mais je n'arrive pas à utiliser cette fonction fCalcul(arg1) dans le code
vba:il me met fonction non définie.
Comment faire ?

Merci pour votre aide
Dominique

3 réponses

1 2
Avatar
Dominique MARTIN
bonjour,

Oui les fonctions sont bien écrites dans un module standard.

Dominique


Bonjour,

Je ne comprends pas.


Moi non plus.

Les fonctions sont écrites dans un module standard?

A+

Manu/

"Dominique MARTIN" a écrit dans
le message de news:
Bonjour,

Il n'y a pas de Option Private Module.
je vois bien le code de la fonction dans l'éditeur vba donc le projet est
bien référencé.
La fonction est bien déclarée Public Function.

=> je peux utiliser la fonction dans un classeur mais dans le code de ce
claseeur.
Je précise que je travaille avec Excel 2000.

Merci
Dominique


Bonjour,

Si les fonctions sont déclarées Public, si le module ou elles sont
placées
ne contient pas l'instruction Option Private Module et si la référence
pointe vers le bon fichier, alors les fonctions devraient être
accessibles
depuis ton autre projet.

Cordialement,

Manu/

"Dominique MARTIN" a écrit
dans
le message de news:
Bonjour,

c'est ce que j'ai fait.
On peut utiliser les fonctions dans la feuille de calcul mais pas dans
le
code VBA ou alors il faut utiliser une syntaxe que je ne connais pas.
nomfonction(argument) provoque l'erreur fonction non définie.

Dominique


Bonsoir,

Pour qu'un projet VBA puisse utiliser les fonctions définies dans un
autre
projet il faut ajouter une référence vers ce projet.

Dans VBE Outils>Références>Cocher le nom du projet contenant les
fonctions.

Cordialement,

Manu/

"Dominique MARTIN" a écrit
dans
le message de news:

Bonjour,

J'ai créé un classeur de macro personnalisée Macroperso.xla.
J'ouvre Excel et je référence le classeur xla.
je peux utiliser dans une feuille de calcul les fonctions de
Macroperso.xla
par exemple fCalcul(arg1).
Mais je n'arrive pas à utiliser cette fonction fCalcul(arg1) dans le
code
vba:il me met fonction non définie.
Comment faire ?

Merci pour votre aide
Dominique





















Avatar
tissot.emmanuel
Bonjour,

Pas d'autres idées, désolé de n'avoir pu t'aider.

Cordialement,

Manu/

"Dominique MARTIN" a écrit dans
le message de news:
bonjour,

Oui les fonctions sont bien écrites dans un module standard.

Dominique


Bonjour,

Je ne comprends pas.


Moi non plus.

Les fonctions sont écrites dans un module standard?

A+

Manu/

"Dominique MARTIN" a écrit
dans
le message de news:
Bonjour,

Il n'y a pas de Option Private Module.
je vois bien le code de la fonction dans l'éditeur vba donc le projet
est
bien référencé.
La fonction est bien déclarée Public Function.

=> je peux utiliser la fonction dans un classeur mais dans le code de
ce
claseeur.
Je précise que je travaille avec Excel 2000.

Merci
Dominique


Bonjour,

Si les fonctions sont déclarées Public, si le module ou elles sont
placées
ne contient pas l'instruction Option Private Module et si la référence
pointe vers le bon fichier, alors les fonctions devraient être
accessibles
depuis ton autre projet.

Cordialement,

Manu/

"Dominique MARTIN" a écrit
dans
le message de news:

Bonjour,

c'est ce que j'ai fait.
On peut utiliser les fonctions dans la feuille de calcul mais pas
dans
le
code VBA ou alors il faut utiliser une syntaxe que je ne connais
pas.
nomfonction(argument) provoque l'erreur fonction non définie.

Dominique


Bonsoir,

Pour qu'un projet VBA puisse utiliser les fonctions définies dans
un
autre
projet il faut ajouter une référence vers ce projet.

Dans VBE Outils>Références>Cocher le nom du projet contenant les
fonctions.

Cordialement,

Manu/

"Dominique MARTIN" a
écrit
dans
le message de news:

Bonjour,

J'ai créé un classeur de macro personnalisée Macroperso.xla.
J'ouvre Excel et je référence le classeur xla.
je peux utiliser dans une feuille de calcul les fonctions de
Macroperso.xla
par exemple fCalcul(arg1).
Mais je n'arrive pas à utiliser cette fonction fCalcul(arg1) dans
le
code
vba:il me met fonction non définie.
Comment faire ?

Merci pour votre aide
Dominique























Avatar
isabelle
bonjour Dominique,

c'est possible avec Evaluate,

x = Evaluate("=MotCentre(A1,"" "", "-")")

avec en A1 "mm zaza-pp"
x = "zaza"
____________________________________________________________
'Enregistrer cette macro en .xla, et l'ajouter au macro complémentaire.

Public Function MotCentre(ByVal Chaine$, _
Optional SeparateurX$ = " ", Optional SeparateurY$ = " ")
Dim posX, posY, nbcarT, nbcarX, MotIntérieurDélimité_X
nbcarT = Len(Chaine)
nbcarX = Len(SeparateurX)
posX = Application.Search(SeparateurX, Chaine)
posY = Application.Search(SeparateurY, Chaine, posX)
MotIntérieurDélimité_X = Right(Chaine, nbcarT - posX - nbcarX + 1)
On Error GoTo fin
MotCentre = Left(MotIntérieurDélimité_X, posY - posX - nbcarX)
Exit Function
fin:
MotCentre = MotIntérieurDélimité_X
End Function
____________________________________________________________

isabelle

Bonjour,

cette syntaxe ne fonctionne pas ici.
elle est utilisée pour un appel de procédure SUB et non Function.
ou alors je l'utilise mal.

Merci
Dominique


bonjour Dominique,

as tu nommé le fichier ?

Application.Run "MonFichier.XLS!MaFunction(arg..)"

isabelle

Bonjour,

Je ne comprends pas.
Il n'y a pas de Option Private Module.
je vois bien le code de la fonction dans l'éditeur vba donc le projet est
bien référencé.
La fonction est bien déclarée Public Function.

=> je peux utiliser la fonction dans un classeur mais dans le code de ce
claseeur.
Je précise que je travaille avec Excel 2000.

Merci
Dominique


Bonjour,

Si les fonctions sont déclarées Public, si le module ou elles sont placées
ne contient pas l'instruction Option Private Module et si la référence
pointe vers le bon fichier, alors les fonctions devraient être accessibles
depuis ton autre projet.

Cordialement,

Manu/

"Dominique MARTIN" a écrit dans
le message de news:
Bonjour,

c'est ce que j'ai fait.
On peut utiliser les fonctions dans la feuille de calcul mais pas dans le
code VBA ou alors il faut utiliser une syntaxe que je ne connais pas.
nomfonction(argument) provoque l'erreur fonction non définie.

Dominique


Bonsoir,

Pour qu'un projet VBA puisse utiliser les fonctions définies dans un
autre
projet il faut ajouter une référence vers ce projet.

Dans VBE Outils>Références>Cocher le nom du projet contenant les
fonctions.

Cordialement,

Manu/

"Dominique MARTIN" a écrit
dans
le message de news:
Bonjour,

J'ai créé un classeur de macro personnalisée Macroperso.xla.
J'ouvre Excel et je référence le classeur xla.
je peux utiliser dans une feuille de calcul les fonctions de
Macroperso.xla
par exemple fCalcul(arg1).
Mais je n'arrive pas à utiliser cette fonction fCalcul(arg1) dans le
code
vba:il me met fonction non définie.
Comment faire ?

Merci pour votre aide
Dominique
















1 2