Problème Macro et Bouton

Bonjour,

Je suis sous Windows 10 Famille version 22H2 et ma version de Libre Office est la Version: 7.3.4.2 (x64) / LibreOffice Community

Build ID: 728fec16bd5f605073805c3c9e7c4212a0120dc5
CPU threads: 12; OS: Windows 10.0 Build 19045; UI render: Skia/Vulkan; VCL: win
Locale: fr-FR (fr_FR); UI: fr-FR
Calc: CL

Après avoir créé une macro (qui met en forme du texte tout simplement), je l’ai enregistré sous Mes macros/Standard/Module1/Test…
Si je lance cette macro via Outils/Macros/Exécuter une macro, tout se passe nickel autant de fois que je lance la macro, parfait…
Maintenant, je viens de créer un bouton via Affichage/Barre d’outils/Contrôles de formulaire/Bouton en mode “Conception” puis en faisant clic droit sur ce bouton Propriétés du contrôle/Evénements/ j’ai assigné l’action Standard.Module1.Test à Exécuter l’action puis retiré le mode “Conception”…et là, quand je clique sur le bouton, et bien la macro ne s’exécute qu’à moitié, et encore, seule la première instruction est exécutée, le charfontname ???
Merci à vous
Olivier

REM  *****  BASIC  *****


sub Test
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(4) as new com.sun.star.beans.PropertyValue
args1(0).Name = "CharFontName.StyleName"
args1(0).Value = ""
args1(1).Name = "CharFontName.Pitch"
args1(1).Value = 2
args1(2).Name = "CharFontName.CharSet"
args1(2).Value = 0
args1(3).Name = "CharFontName.Family"
args1(3).Value = 5
args1(4).Name = "CharFontName.FamilyName"
args1(4).Value = "Arial"

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

rem ----------------------------------------------------------------------
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "FontHeight.Height"
args2(0).Value = 16
args2(1).Name = "FontHeight.Prop"
args2(1).Value = 100
args2(2).Name = "FontHeight.Diff"
args2(2).Value = 0

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

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

dispatcher.executeDispatch(document, ".uno:Bold", "", 0, args3())

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

dispatcher.executeDispatch(document, ".uno:Italic", "", 0, args4())

rem ----------------------------------------------------------------------
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "Color"
args5(0).Value = 16777215

dispatcher.executeDispatch(document, ".uno:Color", "", 0, args5())

rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "BackgroundColor"
args6(0).Value = 2777241

dispatcher.executeDispatch(document, ".uno:BackgroundColor", "", 0, args6())

rem ----------------------------------------------------------------------
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = "HorizontalAlignment"
args7(0).Value = com.sun.star.table.CellHoriJustify.CENTER

dispatcher.executeDispatch(document, ".uno:HorizontalAlignment", "", 0, args7())

rem ----------------------------------------------------------------------
dim args8(0) as new com.sun.star.beans.PropertyValue
args8(0).Name = "VerticalAlignment"
args8(0).Value = 2

dispatcher.executeDispatch(document, ".uno:VerticalAlignment", "", 0, args8())


end sub

En regardant de plus près, c’est en fait seulement les 3 dernières instructions qui sont exécutées BackgroundColor, HorizontalAlignment et VerticalAlignment, le reste n’est pas exécuté ???

Je viens d’attribuer la macro à un raccourci clavier et là, ça marche parfaitement ???

J’ai peut-être la réponse…dans les Propriétés de Contrôle/Général, la ligne “Répéter” était sur Non, j’ai mis “Oui” et là ça marche ? c’est tout simplement ça ? un peu bizarre ce comportement ?

Bonjour,

Il me semble que c’est une question du focus.
Comparez le résultat lorsque dans les Propriétés de Contrôle/Général,
la option “Focus sur clic” est definie sur “Qui” / “Non”.

Aide LO 7.3 - Prendre le focus lors du clic

1 Like

Merci cwolan, en effet, cela marche également en passant la valeur “Focus sur clic” sur Non au lieu de “Oui” initialement. Du coup, je ne sais plus si vaut mieux mettre ‘Répéter’ sur “Oui” ou ‘Focus sur clic’ sur “Non” ???