Bonjour,
Je planche sur une macro, mais je tourne en rond !
J’ai une page, avec un cadre. Dans ce cadre j’ai un tableau.
Je veux coller une image en mémoire dans ce tableau.
1- je colle avec cette fonction :
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
2- j’arrive a sélectionner mon cadre avec cette fonction :
dispatcher.executeDispatch(document, ".uno:JumpToNextFrame", "", 0, Array())

mais je n’arrive pas à entrer dans le cadre (et donc dans le tableau)

Je m'inspire de cette page 
https://wiki.documentfoundation.org/Development/DispatchCommands#Writer_slots_.28swslots.29

Une idée
Merci
Nicolas

Voici le script
REM  *****  BASIC  *****

sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
msgbox("l'image va être copiée depuis Draw") 

rem ----------------------------------------------------------------------
rem get access to the document
        document   = ThisComponent.CurrentController.Frame
        dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
rem on colle l'image en mémoire depuis Draw
        dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
rem ----------------------------------------------------------------------
rem on ancre comme caractère l'image
        dispatcher.executeDispatch(document, ".uno:SetAnchorToChar", "", 0, 
Array())
rem ----------------------------------------------------------------------
rem on coupe l'image qui est n'importe où après l'ancrage
        dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())
rem ----------------------------------------------------------------------
rem on se place en début de document, 2 pages, donc certains d'être en début de 
première page
        dispatcher.executeDispatch(document, ".uno:GoToStartOfPrevPage", "", 0, 
Array())
rem ----------------------------------------------------------------------
rem on deplace le curseur 2 fois à droite (on est dans un premier tableau)
        dim argsdroite(1) as new com.sun.star.beans.PropertyValue
        argsdroite(0).Name = "Count"
        argsdroite(0).Value= 2
        argsdroite(1).Name = "Select"
        argsdroite(1).Value= false
        dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, 
argsdroite())
rem ----------------------------------------------------------------------
rem on colle l'image en mémoire dans la cellule (elle est en tans que 
caractere, ancrage précédent)
        dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
rem ----------------------------------------------------------------------
Rem on detecte la prochaine frame
dispatcher.executeDispatch(document, ".uno:JumpToNextFrame", "", 0, Array())

rem et puis je seche ...

end sub

-- 
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés

Répondre à