Autant pour moi mais ce que je veux dire c'est que tu n'as pas créé le process qui va avec.
Dans tous les cas la variable xls n'existe plus comme la dit Zeb, d'ou ma remarque sur le public dans la fonction.
---------------
S'il n'y a pas de solution c'est qu'il n'y pas de problème
Je l'avais essayé ayssi
avec après Module2.Macro1(monappli) j'avais essayé la chose mais j'ai la meme erreur
Sinon j'ai vu qu'il existé des ByRef, vu que c'est comme des pointeurs en C mais je vois pas comment et surtout ou le mettre.
MacroPrincipal est ton programme principal, c'est sur que tu peux faire 200 fonctions pareilles sans que tu y arrives de cette facon... MonAppli n'existe que dans la fonction.
C'était une exemple tu peux pas mettre en paramètre une variable de sortie dans macro1 comme tu l'a fait.
Sinon tu dois l'appeler comme ca :
Code :
Macro1(MacroTest(c))
Et encore j'ai un doute
Mais surtout j'en vois pas l'interet...
T'as Macro1 doit appeler ta MacroTest et récupérer le résultat dans une variable. Macro1 dans mon cas c'était MacroPrincipal.
---------------
S'il n'y a pas de solution c'est qu'il n'y pas de problème
L'interet est que je fais de l'automation et le truc c'est selon des condition il fera certaines action et des fois non voila pourquoi je fais ca mais en gros
Mon programme principal exécute MacroTest sui renvoie un objet Excel.Application et que je réutilise dans Macro1 selon les condition c'est ca que je veux faire car je ne fais que de l'automation
Et de plus le nombre de ligne est limité donc il me faut continuer en changeant de module
Tu peux créér une procedure par module si tu veux, ou bien toute dans un seul il n'y a pas de problème si tu les déclare public elles seront visibles partout.
Je vois pas de quelle limite tu parles.
Message édité par Freeman23 le 14-06-2007 à 11:58:03
---------------
S'il n'y a pas de solution c'est qu'il n'y pas de problème
bah une fois j'ai entréer trop de ligne dans mon code bah visual basic editore ne veut pas exécuter le programme
mais justement ma procédure est par module c'est pour ce que mon probleme existe mon objet Excel ne veut pas etre envoyer pour etre transmis
Il n'y a pas besoin de préciser les modules. Par contre tu dois mettre Public avant sub pour les déclarer public. (c'est peut etre par défaut...)
A la ligne 3 tu n'a pas besoin de parenthèse. Comprenez que les procedures ou actions n'ont pas besoin de parenthèse en VBA.
Si en virant les parenthèses, ca ne marche pas, essaie de déclarer xls dans Macro1 en tant qu'Object.
Par contre combien de ligne de code en tout, car ta limite ca me parait très suspect pour avoir fais des modules de plusieur millier de ligne je n'ai jamais eu ce problème.
---------------
S'il n'y a pas de solution c'est qu'il n'y pas de problème