OVH Cloud OVH Cloud

Macro qui ne voit pas une autre macro

8 réponses
Avatar
JièL Goubert
Saltatous et surtout aux macroteurs ;-)

j'ai une macro1 qui en appelle une macro2. jusque la rien d'anormal.

sub macro1
call macro2
end sub

Sauf que si cette macro2 est dans le un .dot mis dans le dossier de
démarrage, ben macro1 ne la voit plus et j'ai une erreur "sub ou fontion
non défini"

Si je vais dans le menu Outils, Macro, Exécuter, je peux alors
parfaitement exécuter la macro2

La question est donc : pourquoi macro1 ne voit pas macro2 ?

Qu'est-ce que je fais de mal ? pourquoi tant de N ?

Merci beaucoup d'avance si vous avez des pistes de recherche.
Si je ne suis pas clair ou s'il manque des zinfos, faites le moi savoir.

--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr

8 réponses

Avatar
Geo

Saltatous et surtout aux macroteurs ;-)

j'ai une macro1 qui en appelle une macro2. jusque la rien d'anormal.

sub macro1
call macro2
end sub

Sauf que si cette macro2 est dans le un .dot mis dans le dossier de démarrage, ben
macro1 ne la voit plus et j'ai une erreur "sub ou fontion non défini"

Si je vais dans le menu Outils, Macro, Exécuter, je peux alors parfaitement exécuter la
macro2


Macro2 déclarée en private ?

--
A+

Avatar
JièL Goubert
Bonjoir© Geo

Le 27/01/2006 11:12 vous avez écrit... :

Saltatous et surtout aux macroteurs ;-)

j'ai une macro1 qui en appelle une macro2. jusque la rien d'anormal.

sub macro1
call macro2
end sub

Sauf que si cette macro2 est dans le un .dot mis dans le dossier de
démarrage, ben macro1 ne la voit plus et j'ai une erreur "sub ou
fontion non défini"

Si je vais dans le menu Outils, Macro, Exécuter, je peux alors
parfaitement exécuter la macro2


Macro2 déclarée en private ?


merci Geo, mais non, elle est tout ce qu'il y a de normal
en fait c'est macro1 qui est private

une autre idée ? Merci.

--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr


Avatar
Geo


Sauf que si cette macro2 est dans le un .dot mis dans le dossier de démarrage, ben
macro1 ne la voit plus et j'ai une erreur "sub ou fontion non défini"

Si je vais dans le menu Outils, Macro, Exécuter, je peux alors parfaitement exécuter
la macro2


Macro2 déclarée en private ?


merci Geo, mais non, elle est tout ce qu'il y a de normal
en fait c'est macro1 qui est private

une autre idée ? Merci.


Il semble qu'il faille écrire :
call NomDuModule.NomDuSub


--
A+



Avatar
Guy Moncomble
Bonjour à tous,
dans le message ,

| Saltatous et surtout aux macroteurs ;-)
|
| j'ai une macro1 qui en appelle une macro2. jusque la rien d'anormal.
|
| sub macro1
| call macro2
| end sub
|
| Sauf que si cette macro2 est dans le un .dot mis dans le dossier de
| démarrage, ben macro1 ne la voit plus et j'ai une erreur "sub ou
| fontion non défini"
|
| Si je vais dans le menu Outils, Macro, Exécuter, je peux alors
| parfaitement exécuter la macro2
|
| La question est donc : pourquoi macro1 ne voit pas macro2 ?
|
| Qu'est-ce que je fais de mal ? pourquoi tant de N ?
|
| Merci beaucoup d'avance si vous avez des pistes de recherche.
| Si je ne suis pas clair ou s'il manque des zinfos, faites le moi
| savoir.

Peut-être parce qu'elle n'est pas référencée...

--
Guy Moncomble MVP
Avatar
JièL Goubert
Bonjoir(c) Guy Moncomble

Le 28/01/2006 17:30 vous avez écrit ceci :
Peut-être parce qu'elle n'est pas référencée...


Ah... et on la réference comment ?
Cette macro est dans un .DOT qui est dans le dossier de démarrage.
L'appel est dans un autre .dot qui est lancé à la création du doc basé sur
le dot. (vous suivez ?) ;-)

NB : ne me dis pas qu'il faut faire une modif dans les 12 millions de
.DOT, je ferais une crise cardiaque et je suis un peu loin de mon
cardilogue préféré...

Précision : lorsque cette dite macro est dans le normal.dot (partagés par
2 500 utilisateurs et en lecture seule...) ça fonctionne :-(

Merci de ton aide Guy

--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr/

Avatar
JièL Goubert
Bonjoir(c) Geo

Le 27/01/2006 16:51 vous avez écrit ceci :
une autre idée ? Merci.


Il semble qu'il faille écrire :
call NomDuModule.NomDuSub


aaaaarrrhhhhggggggggg et modifier 12 milliard de modèles ?! t'éfou ;-) ?
tu veux ma mort ?

Essaye encore ;-)
Merci

Je cherche la solution universelle qui permetrait que ça fonctionne en
faisant 1 voire 2, allez, si vous insistez, 3 modifs, mais par modifier 15
mille milliard de DOT.

Oui, je sais, j'abuse, mais bon c'est de vot' fot' si j'ai convaincu les
décideurs de ne plus mettre le normal.dot en lecture seule et partagés par
2 millions d'utilisateurs ;-)))))) maintenant il faut que je réussisse
(avec votre aide SVP merci bôcoup) à faire fonctionner ça.

--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr/


Avatar
Geo

et modifier 12 milliard de modèles ?! t'éfou ;-)


Oh ça se fait, même avec une macro, reste à voir si toutes les planètes
de la galaxie sont accesible de ton réseau.

Essaye encore ;-)


Je me demandais si les compléments (add-ins) ne permettraint pas de
faire ça. Mais j'y connais rien et comme Guy a une piste ... qui
m'intéresse aussi.

--
A+

Avatar
Guy Moncomble
Bonjour à tous,
dans le message ,

| Bonjoir(c) Guy Moncomble
|
| Le 28/01/2006 17:30 vous avez écrit ceci :
|| Peut-être parce qu'elle n'est pas référencée...
|
| Ah... et on la réference comment ?
| Cette macro est dans un .DOT qui est dans le dossier de démarrage.
| L'appel est dans un autre .dot qui est lancé à la création du doc
| basé sur le dot. (vous suivez ?) ;-)
|
| NB : ne me dis pas qu'il faut faire une modif dans les 12 millions de
| .DOT, je ferais une crise cardiaque et je suis un peu loin de mon
| cardilogue préféré...
|
| Précision : lorsque cette dite macro est dans le normal.dot (partagés
| par 2 500 utilisateurs et en lecture seule...) ça fonctionne :-(
|
| Merci de ton aide Guy

Je ne pense pas me tromper : si tu veux utiliser une macro, soit elle
est dans un modèle a priori toujours référencé comme normal.dot dans
tous les documents générés sur sa base, soit il faut référencer le
projet (document) qui contient le module qui contient la macro. A la
main, c'est très simple : f2 puis référence, puis cocher le projet.
C'est plus simple si tu as pris la précaution de nommer le projet de
manière explicite, sinon tu vas te retrouver avec un templateproject...

Mettre un projet dans le répertoire de démarrage ou activer
automatiquement une macro complémentaire est très simple, mais cela ne
permet pas d'utiliser la macro dans un projet : le référencement est
obligatoire. On peut par exemple faire :

ActiveDocument.VBProject.References.AddFromFile
Documents("modèletoto.dot").FullName

pour un document ouvert, mais j'aurais aussi bien pu référencer un
document du répertoire de démarrage ou n'importe quel autre.
Le plus simple est un référencement manuel du modèle appelant la macro,
puis un enregistrement qui conservear la référence.
--
Guy Moncomble MVP