Lancer un dialogue natif par macro

Bonjour,

(encore une question que macrotisation)

comment peut-on lancer un dialogue interne de LibO par macro ?

Par exemple, je voudrais lancer l'éditeur de propriétés (accessible via Fichier > Propriétés) depuis une macro.

Merci d'avance,

Bonsoir,

comment peut-on lancer un dialogue interne de LibO par macro ?

Par exemple, je voudrais lancer l'éditeur de propriétés (accessible via
Fichier > Propriétés) depuis une macro.

Trouvé (comme souvent, dans l'excellentissime bible de Marcelly & Godard) [encore une histoire de lunettes qu'on cherche quand on les a sur les yeux...]

J'avais bien pensé au dispatcher et tenté l'enregistreur de macros mais il n'enregistrait pas ce que je voulais... En fait, c'est bien par le dispatcher qu'il faut passer mais en direct.

Le code est le suivant (testé sous LibO 5.0.1 officielle, Debian 8.1 Jessie, Cinnamon) :

8< -----------------------------------------------
Sub SetDocumentProperties()
'Call the LibO document properties dialog

  Dim oWindow As Variant
  Dim oDisplay As Object
  Dim l_Args()

  oWindow = StarDesktop.CurrentFrame
  oDisplay = createUnoService("com.sun.star.frame.DispatchHelper")

  oDisplay.executeDispatch(oWindow, ".uno:SetDocumentProperties", "", 0, l_Args)

  Set oDisplay = Nothing

End Sub 'SetDocumentProperties
----------------------------------------------- >8

Pour trouver la commande dispatcher kivabien (SetDocumentProperties), yaka se plonger dans les arcanes de LibO, sous /opt/libreoffice5.0/share/config/soffice.cfg/modules (ou équivalent sur un autre OS que Linux). Ici, puisqu'il s'agit de l'interface générale de LO, il faut chercher dans le sous-répertoire sglobal/menubar et lire le fichier menubar.xml. Et ouala !

Encore merci à Bernard et à Laurent !

Bonsoir,

merci à toi aussi de nous mettre la réponse sous le nez.

Pour Mac OS et LibreOffice 4.4., le chemin est /Applications/LibreOffice.app/Contents/Resources/config/soffice.cfg/modules/sglobal/menubar
Voilà qui va me mettre le pied à l'étrier pour apprendre à faire quelques bricoles.

C_Lucien