Agnès Simonet a écrit :
nimel a écrit :

Bonjour, voici la question du jour,

Avant de me lancer dans la prochaine étape de mon projet, je voudrais tout simplement savoir si c'est possible :
- Dans Calc sélectionner une plage de cellules (ça je sais faire)
- La copier dans le presse-papier(la grande inconnu !)
- Créer un nouveau document Writer d'après modèle (j'ai lu ça quelque part) - Y coller cette plage de cellules, au mieux sous forme de tableau Calc au pire sous forme de tableau texte (aye aye !)
Enfin bref, l'équivalent di Ctrl+C, aller dans Writer puis Ctrl+Maj+V

J'ai essayé d'avoir une piste avec l'enregistreur de macros mais le script s'arrête à la création d'un nouveau document.
Nicole de Bordeaux


Bonsoir,
Encore moi !

Chaque étape que tu décris est réalisable :
* copier dans le presse-papier
Je crois que ce que fait l'enregistreur de macro est la meilleure solution :
dim document   as object
dim dispatcher as object
'accéder au document (calc)
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
'copier dans le presse-papier
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

*créer un nouveau document : il te reste à retrouver l'info :-)

* coller le contenu du presse-papier
là aussi on s'inspire de l'enregistreur :
'accéder au document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
'collage spécial Draw8
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SelectedFormat"
args1(0).Value = 85
dispatcher.executeDispatch(document, ".uno:ClipboardFormatItems", "", 0, args1())

Chaque étape fonctionne mais le problème c'est que le document n'est pas le même dans les 2 étapes. Or si tu groupes les morceaux dans une même macro (liée au document calc par exemple)il faudra bien un moyen de lui dire que l'étape du collage concerne le document writer. Et là je ne sais pas faire si ce document vient juste d'être crée. Il faudrait qu'il ait été enregistré pour qu'on puisse le désigner via son nom.

Voilà. Je ne suis pas sûre que ça aide.
Agnès S.


Bonjour Agnès,
J'ai contourné le pb en utilisant l'enregistreur (qui donne exactement ton code) et en séparant les macros, une de départ dans le document Calc qui se termine par la création d'un document d'après modèle, et une d'arrivée dans le document Writer, qui se déclenche sur l'évènement "activation du document" et qui fait le coller. Ça marche, sauf que ce satané tableau se colle au début du document et non là ou je positionne le curseur d'écriture (avec ton code issu de "dans la jungle..."). Pourquoi tant de haine !


---------------------------------------------------------------------
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org

Répondre à