[Writer] [macro] Choix d’une puce

Bonjour à tous,

J’essaye désespérément de créer une macro qui me permettrait de choisir automatiquement le caractère de puce lors de la création d’une liste. J’ai pour l’instant effectué la démarche suivante

  1. Démarrer l’enregistreur de macros,
  2. Me rendre dans le menu « puces et numérotation »,
  3. Choisir « nombre : puce », « style de caractères : puce »
  4. Cliquer sur « caractère : sélectionner »,
  5. Choisir le caractère désiré (en l’occurrence, U+2013)
  6. Cliquer sur « valider »
  7. Fermer l’enregistreur et sauvegarder

Le paragraphe sur lequel j’ai procédé à l’enregistrement est bien mis en forme comme souhaité, mais la macro enregistrée ne donne pas satisfaction. Plus exactement, à son exécution, je me contente de voir s’ouvrir la fenêtre « puces et numérotation », et je dois à nouveau sélectionner le caractère désiré puis valider.

Le code généré par l’enregistreur automatique est le suivant :

sub EnumFR3
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "On"
args1(0).Value = true

dispatcher.executeDispatch(document, ".uno:DefaultBullet", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Page"
args2(0).Value = "customize"

dispatcher.executeDispatch(document, ".uno:OutlineBullet", "", 0, args2())


end sub

Pourriez-vous m’aider ?

Par avance, je vous remercie grandement.

Je n’ai aucune compétence en macro mais je m’interroge sur votre objectif. Est-ce qu’un style de paragraphe personnalisé (associé à une puce choisie par vous a priori) ne serait pas suffisant?

(réponse à cette question par un “commentaire” et non une “réponse”)

Bonjour, c’est en effet une solution partielle à laquelle je n’avais pas pensé, mais elle suppose que le style de paragraphe en question soit disponible dans le document en question. Il faut donc, dans chaque document, commencer par recréer le style pour que la macro devienne utilisable, à moins que le document ne soit nouveau et issu d’un modèle. C’est assez lourd…

Pas forcément. N’oubliez pas que les styles peuvent être importés à partir de n’importe quel document. Je suppose que les vôtres ont tous plus ou moins la même présentation et que, par conséquent, les styles sont les mêmes. Donc l’importation ne perturbera pas le document courant.

Quel est le rôle de la macro? S’il s’agit seulement de mettre en forme une liste, choisir le style depuis le menu déroulant est tout aussi rapide et plus simple. Si vote choix est motivé par l’activation de la macro avec un raccourci clavier, vous pouvez aussi associer un style à un raccouci.

Bonjour, je comprends tout-à-fait, mais justement l’inconvénient est que cela nécessite de réimporter les styles à chaque ouverture de document.
Le but était bien d’utiliser un raccourci clavier. J’ai suivi votre solution de création d’un style dans mon Default.ott, et je m’en passerai pour mes anciens documents. Dommage que Libreoffice ne permette pas de créer des styles qui seraient accessibles à tous les documents que l’on modifie, y compris les anciens…
Je clos la question, merci pour votre aide !

Cet accès est possible. Il faut pour cela baser les documents sur un “template” (=modèle), ce que vous semblez faire avec votre Default.ott. Si l’association est correctement faite, tout changement au modèle entraîne une question lors de l’ouverture du document “Voulez-vous mettre à jour les styles (et le reste aussi)?”. Pour cela, il ne faut pas double-cliquer sur le .ott, mais passer par Fichier>Nouveau>Modèles, c’est-à-dire que votre modèle a été intégré au dispositif par Fichier>Modèles>Gestion des modèles.