Bonjour Mathieu,
Matthieu Coutiere a écrit :
Bonjour,
J'ai un document (liste.odt) qui contient une macro (remplir) que je veux lancer
à partir d'une application externe (disons donc que je remplis une liste).
En ligne de commande, je lance donc :
soffice /chemin/liste.odt macro://liste/Standard.Liste.remplir(paramètres)
Mais alors, si l'utilisateur enregistre le document, il écrase le fichier
"liste.odt" initial.
Pour contourner ce problème, il faudrait que j'utilise des templates.
Malheureusement, quand j'ouvre un template, le nom du fichier est "Untitled_K",
où K est inconnu a priori, si bien que la commande devrait être :
soffice /chemin/liste.ott macro://Untitled_K/Standard.Liste.remplir(paramètres)
mais je ne peux pas l'utiliser (puisque je ne connais pas K)
Y-a-t-il une solution simple ?
Suis-je containt à utiliser :
soffice /chemin/liste.ott
macro://chemin/liste.ott/Standard.Liste.remplir(paramètres)
Contraint, non. Invité, oui ;)
Et je pense que c'est la meilleur solution. En tous cas elle est aisé à
mettre en place et à gérer.
(et d'ailleurs, ça ne marche pas car je dois mélanger les c:\documents and
settings\moi et les /Standard.Liste... et je n'ai pas trouvé le bon format des
slash)
Merci de vos idées !
MC
PS : pour l'instant, j'enregistre le fichier (pas template) sous un nom
aléatoire. Ca résoud le problème mais ça n'est pas très joli...
Exemple (sous XP):
1°) soit un template nommé testmacrott.ott placé sous c:\
2°) soit la macro maMacro() placée dans la branche Mes macros sous
Standard dans Module1
Lancer le document avec appel de la macro à partir d'une commande telle que
"C:\Program Files\OpenOffice.org 1.9.128\program\soffice.exe"
c:\testmacrott.ott macro:///Standard.Module1.maMacro()
NB :
Tu noteras que les chemins systèmes sont classiques, mais que l'appel de
la macro se réalise avec * macro:/// *
Tu pourras également regarder ce document qui présente le principe de
lancement d'une macro via la ligne de commande (ou batch)
http://fr.openoffice.org/Documentation/How-to/Basic/batchmacro.sxw
Bonne continuation