Bonjour
Ce sont des (rares) cas où l’utilisation de l’enregistreur de macros est intéressant (il faut avoir autorisé son emploi dans Outils
▸Options
▸LibreOffice
▸Avancé
▸Fonctionnalités optionnelles
).
Tu obtiens des instructions pour le point 1 comme :
dispatcher.executeDispatch(document, ".uno:PasteOnlyText", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:PasteOnlyValue", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:PasteOnlyFormula", "", 0, Array())
et pour le point 2 :
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "DocName"
args1(0).Value = ""
args1(1).Name = "Index"
args1(1).Value = 32767
args1(2).Name = "Copy"
args1(2).Value = true
dispatcher.executeDispatch(document, ".uno:Move", "", 0, args1())
[Ajout 04-02-20 08:15]
@jumeni a écrit:
l’enregistrement de macro ne me donne pas le résultat attendu. Le résultat obtenu est très aléatoire…
Je ne dirais pas cela. Le résultat est conforme à ce que j’énonçais et non aléatoire. En revanche il faut tenir compte de ses limites (voir l’aide), et bien préparer l’enchaînement des actions à réaliser pour n’enregistrer que ce qui est indispensable. Il est enfin possible de “nettoyer” le résultat, notamment en supprimant la création de variables inutiles et en "dé-commentant " certaines instructions.
Voir l’exemple CopierColler.ods joint qui fait le collage spécial : texte, nombre, date & format (ne colle pas la formule)
Cordialement