Désactiver le "Mode Design" via une macro

Bonjour,

Je souhaiterais qu’à l’ouverture d’un document le “mode design” soit automatiquement désactivé via une macro. Mon document contient une autre macro activable via un bouton, et si le “mode design” est activé, le bouton est inatteignable (cliquer dessus sélectionne les cellules sous-jacentes).

Le “mode design” peut être activé / désactivé via View > Toolbars > Form Controls, puis en cliquant le “toggle button” “Design Mode” (l’équerre).

  • Peut-on utiliser une macro pour s’assurer que le “Mode Design” soit désactivé à l’ouverture du document ?
  • Le paramètre ON / OFF du Mode Design est-il lié à un document, ou à un poste de travail ?

Cordialement,

Bonjour @kawsay

Le paramétrage indiqué est lié au formulaire et donc au document. Il n’est pas nécessaire en conséquence d’utiliser une macro. Tu peux faire rapidement le test avec un classeur pour lequel le mode ébauche est activé par défaut et le même avec le mode “utilisation” par défaut. Ouvrir alternativement les deux et vérifier :slight_smile:

J’ajoute que si ton objectif est de ne pas dépendre de l’environnement des utilisateurs, prévoir une macro est “pire” car rien ne prouve que l’exécution des macros soit autorisé chez eux…

Cordialement

Bonsoir @kawsay

Selon cet échange, avez-vous simplement essayé de désactiver ToolsFormsOpen in Design Mode ?


Pour montrer à la communauté que la question a trouvé sa réponse, cliquez sur ✓ à côté de la “bonne” réponse, et “votez” en cliquant sur la flèche ^ de toute réponse utile. Ce sont les mécanismes utilisés pour communiquer la qualité des questions et réponses sur ce site. Merci!

Pour tout complément d’information, utilisez les boutons situés en dessous de votre question et éditez votre question ou simplement ajouter un commentaire. SVP ! Ne répondez pas à votre propre question à moins d’y apporter une réelle réponse.

Cordialement, Michel

Bonjour,

Votre problème a-il été résolu par la réponse apportée ? Si oui, merci de cocher sur ✓ dans la marque ronde à gauche de la bonne réponse.

Si non, merci de préciser comment la résolution a été apportée ou si le problème reste présent.

Cordialement, Michel

J’ai effectivement essayé cette manipulation, elle fonctionne parfaitement mais ne correspond pas à mon besoin (je me suis mal exprimé).

Le but est de désactiver ce paramètre sur d’autres postes que le mien, d’où le souhait d’utiliser une macro VB.

Nous disposons d’un formulaire réalisé via Calc, un bouton valide le formulaire mais n’est pas clicable si le document est ouvert en “Mode Design”. En vue de l’illectronisme de nos utilisateurs, il serait souhaitable de ne pas leur incomber le paramétrage de LO

Bonjour,
j’ai eu le meme souci que j’ai résolu comme ceci.
Dans mes macros, je rajoute celle ci.

Sub on_ApplicationStart( oEvent As Object )
   REM Should be connected to the "Start Application" event of LibreOffice.
   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 = "SwitchControlDesignMode"
   args1(0).Value = false

   dispatcher.executeDispatch(document, ".uno:SwitchControlDesignMode", "", 0, args1())
End Sub

Ca fonctionne bien, sauf si le document (un template par exemple) est disponible sur un site web. Le fait que l’ods ouvert bascule en edit mode va remettre le design mode en off. La solution? Proposer un ots (template), dans ce cas ci.
Testé sur linux, windows, fonctionne à tout coup, avec un utilisateur qui ouvre donc le document ots (accepte les macros) et peut donc cliquer sur les boutons (= macro) sans passer par la case oter le design mode.

Si l’on veut que ca fonctionne sur un .ods, stocké sur un site web, il suffit que la personne utilisant libreoffice associe, dans la partie “customize”, l’event “modified status was changed” avec cette macro stockée dans les macros de l’utilisateur “My Macros”.