|
Publicité ' | ||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : février 2007 Messages : 50 ![]() |
Bonjour ,
j' ai créé un document Word dans le quel existe une fonction privée (module NewMacros, function ecrire_date() ). Je cherche à appeler cette fonction depuis une autre fonction, elle commune à tous les documents : Code :
Comme je suis débutant en VBA, je confond les objets, les documents, etc... je pense qu' il faut inclure/importer quelque chose, mais je ne sais pas quoi faire. Pouvez-vous m' aider svp ? Merci d' avance. |
||
|
|
00
|
|
|
#2 |
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
Désolé mais je ne comprends pas ton code. Le mieux serait que tu nous dises point par point et dans l'ordre chronologique ce que tu veux faire
1 - ? 2 - ? 3 - ? ... |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : février 2007 Messages : 50 ![]() |
ok je vais en dire un peu plus
la fonction ecrire_param est définie pour tous les documents Word (normal.dot). Je l' appelle depuis c++ (automation), après avoir lancé word avec une autre fonction, et ça marche. Je voudrais, depuis la fonction ecrire_param, ouvrir le document "Dossier de candidature TLSE_signets.doc", ça marche correctement. Ensuite, appeler la fonction "ecrire_date" de ce document (c' est une macro que j' ai enregistrée pour ce document) et c' est là que j' ai mon erreur, et que je définisse ecrire_date comme sub ou function ne change rien, j' ai l' erreur ci-dessus. J' espère avoir été assez clair En tout cas merci pour la rapidité de cette première réponse ! |
|
|
00
|
|
|
#4 | ||
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
Donc, depuis un fichier donné, tu souhaites lancer une procédure placée dans un autre fichier, avec ou sans paramètre... Si c'est bien ça, alors, j'ai eu à le faire hier.
Pour exécuter une macro sans paramètre : Code :
Application.Run "'LeFichierAmacro.xls'!NomDeLaLaMacro" Code :
|
||
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : février 2007 Messages : 50 ![]() |
bon j' ai testé :
Code :
Application.Run "'C:\\Marc\\documents word\\test\\Dossier de candidature TLSE_signets.doc'!ecrire_date" Je sais pas trop comment faire avec une fonction, par l' aide en ligne tu entends le fichier VBAWRD9.CHM que j' ai dans mon répertoire microsoft office ? Si oui je n' ai pas trouvé l' équivalent avec une fonction. Sinon je ne sais pas de quoi tu parles. Mais bon puisque j' arrive à le faire avec une sub, et que je n' ai pas besoin de valeur de retour, considérons le problème comme résolu Merci beaucoup ! EDIT désolé d' enlever le tag résolu que j' avais mis mais j' ai une question supplémentaire de syntaxe : comment appeler la sub avec un/des arguments ? sub ecrire_date (param As String) ... Je n' arrive pas à trouver de syntaxe qui convienne. |
|
|
00
|
|
|
#6 |
|
Futur Membre du Club
![]() Inscription : février 2007 Messages : 50 ![]() |
lol désolé, je ne sais pas trop comment fonctionne le forum
Je peux mettre le tag résolu et reposter avec mon nouveau problème (presque le même), ou alors continuer ce thread. Je continue à chercher, j' ai essayé avec : Application.Run macroname:="'C:\\Marc\\documents word\\test\\Dossier de candidature TLSE_signets.doc'!ecrire_date", varg1:="azer" et function ecrire_date(param As Variant) mais ça ne marche pas |
|
|
00
|
|
|
#7 | |
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
Pour passer des paramètres, tu dois respecter la syntaxe que dadavyvy a eu la gentillesse de m'indiquer, hier, et placer tes paramètres dans des variables. Faut s'y plier, sans quoi, on est puni
PS - Je garde ça dans un coin Citation:
|
|
|
|
00
|
|
|
#8 |
|
Futur Membre du Club
![]() Inscription : février 2007 Messages : 50 ![]() |
bon okok, je mets le tag, je vais chercher dans mon coin et reposerai une question si nécessaire
En tout cas merci pour ton aide |
|
|
00
|
|
|
#9 |
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
Pourquoi ? Ça ne fonctionne toujours pas ?
|
|
|
00
|
|
|
#10 |
|
Futur Membre du Club
![]() Inscription : février 2007 Messages : 50 ![]() |
non
EDIT c' est bon j' ai trouvé tout seul Merci dadavyvy alors :p |
|
|
00
|
|
|
#11 | ||||
![]() ![]() michel TanguyInscription : août 2005 Messages : 3 317 ![]() |
bonjour
pour passer un paramètre dans la macro d'un autre document Word, la macro de destination doit être placée au niveau du module objet ThisDocument Code :
Procédure dans le deuxieme document (NomDocument.doc), à placer dans le module ThisDocument: Code :
michel |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com