Poser votre question
0

Macros diverses

posée 2020-02-02 12:39:25 +0200

Image Gravatar de juju81

Bonjour,

Dans le cadre du développement d'un outil professionnel, je souhaiterai faire des actions automatiques via des macros :

  1. Copier les valeurs situées sur une feuille 1 (colonnes A à F) sur une feuille 2 (colonnes I à N) en utilisant la fonction "collage spécial".

  2. Copier une feuille X vers un nouveau classeur tout en conservant la mise en page et la protection de la feuille.

Merci pour votre aide !

Bonne journée

éditer requalifier signaler fermer fusionner supprimer

2Réponses

0

répondue 2020-02-02 13:58:28 +0200

Image Gravatar de pierre-yves samyn

updated 2020-02-04 08:25:16 +0200

Bonjour

Ce sont des (rares) cas où l'utilisation de l'enregistreur de macros est intéressant (il faut avoir autorisé son emploi dans OutilsOptionsLibreOfficeAvancé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

éditer signaler supprimer permalien plus
0

répondue 2020-02-03 20:54:54 +0200

Image Gravatar de juju81

Merci pour la contribution ! Mais l'enregistrement de macro ne me donne pas le résultat attendu. Le résultat obtenu est très aléatoire. Avez-vous une idée du code à inscrire pour obtenir le résultat suivant :

A partir d'un bouton situé sur l'onglet "Feuille 1", copier les cellules AA1:AF25 de la feuille 2 sur les cellules A1:F25 de la feuille 3.

Merci d'avance

éditer signaler supprimer permalien plus
S'identifier/S'inscrire pour répondre

Outils de question

1 suiveurs

Stats

Posée: 2020-02-02 12:39:25 +0200

Consultée: 40 fois

Mise à jour: Feb 04