

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
6 messages in org.openoffice.fr.progRe: [prog] appel de macros| From | Sent On | Attachments |
|---|---|---|
| Philippe | Aug 26, 2005 5:55 am | |
| Bernard Marcelly | Aug 26, 2005 7:32 am | |
| Philippe | Aug 26, 2005 8:49 am | |
| Bernard Marcelly | Aug 26, 2005 9:55 am | |
| Philippe | Aug 26, 2005 11:40 am | |
| Philippe | Aug 26, 2005 11:37 pm |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | Re: [prog] appel de macros | Actions... |
|---|---|---|
| From: | Philippe (plap...@nordnet.fr) | |
| Date: | Aug 26, 2005 11:40:39 am | |
| List: | org.openoffice.fr.prog | |
Bernard Marcelly a écrit :
Bonjour Philippe, Message du 2005-08-26 17:50:
Permet-elle d'appeler une macro d'un document à partir d'une macro d'un autre document.
Rien de changé par rapport à la version 1.1
Dans votre livre, vous dites que c'est possible moyennant une acrobatie logicielle ? faut-il par exemple passer par le shell ?
J'ai déjà répondu récemment dans le contexte COM avec Delphi. Il faut utiliser le dispatcher. En Basic cela donne ceci.
Supposons ouvert un document appelé MessageBox.sxw contenant une bibliothèque maBibli, avec dans son Module1 cette macro: Sub afficher(texte as string) MsgBox(texte) End Sub
Ouvrons un deuxième document contenant cette macro: Sub lancerMacroAilleurs dim fenetreDoc as object, dsp as object fenetreDoc = StarDesktop.CurrentFrame dsp = CreateUnoService("com.sun.star.frame.DispatchHelper") rem -- ici une ligne très longue !!! dsp.executeDispatch(fenetreDoc, "macro://MessageBox/maBibli.Module1.afficher(Hello OOo!)", "", 0, Array())
msgbox("macro lancée") End Sub
Lancer la macro "lancerMacroAilleurs". On verra s'afficher "Hello OOo!" puis à la fermeture de la boîte, le message "macro lancée". On voit que la macro "afficher" a interprété tout le texte comme un seul argument. Les arguments d'appel de la macro sont séparés par des virgules, chaque argument étant toujours récupéré par la macro comme un String. La macro appelée ne peut pas renvoyer d'information à son appelant (en tous cas, je n'ai pas trouvé comment faire).
Bernard
Merci pour votre patience Bernard, effectivement la solution était déjà postée dans votre message du 22/8 Reste à regler le problème du renvoi d'information à l'appelant. Existe-t-il un service au niveau de soffice qui permet de savoir quels sont les docs ouverts? et un moyen d'accéder à un doc déja ouvert ? Philippe







