4 messages in org.openoffice.fr.progRE : [prog] VBA : créer un nouveau cl...
FromSent OnAttachments
BOTTIN Laurence - DGMT/SG/AG2Jan 11, 2007 6:00 am 
michel tanguyJan 11, 2007 9:51 am 
Bernard MarcellyJan 11, 2007 10:00 am 
BOTTIN Laurence - DGMT/SG/AG2Jan 12, 2007 1:06 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:RE : [prog] VBA : créer un nouveau classeur executant les macros à partir d'un modèleActions...
From:michel tanguy (bugb@club-internet.fr)
Date:Jan 11, 2007 9:51:14 am
List:org.openoffice.fr.prog

bonsoir

je ne suis pas sur d'avoir bien compris ta question mais si tu pilotes OOo depuis VB ou VBA tu peux faire un essai en remplaçant

com.sun.star.Document.MacroExecMode.ALWAYS_EXECUTE_NO_WARN

par sa valeur:

4 (il me semble)

Set ArgsDoc(0) = ServiceManager.Bridge_getStruct("com.sun.star.beans.PropertyValue") ArgsDoc(0).Name = "MacroExecutionMode" ArgsDoc(0).Value = 4

bonne soirée michel

<Bonjour, <Dans OOo si j'ouvre un nouveau classeur à partir d'un modèle, les macros <s'exécutent dans le nouveau classeur. <Par contre si à partir d'une application MS Office et de VB je créé un <nouveau classeur à partir d'un modèle, les macros ne sont pas actives. <Le problème vient de la ligne ArgsDoc(0).Value mais je ne sais pas du <tout comment utiliser une contante de l'API depuis vba.

<Voici un extrait du code :

<'ArgsDoc() tableau des propriétés d'ouvertures <'pour que les macros s'exécutent dans le classeur créé à partir du modèle Dim ArgsDoc(0) As Object ' Création service OpenOffice Set <ServiceManager = CreateObject("com.sun.star.ServiceManager") <Set Desktop =ServiceManager.createInstance("com.sun.star.frame.Desktop")

<Set ArgsDoc(0) = <ServiceManager.Bridge_getStruct("com.sun.star.beans.PropertyValue") <ArgsDoc(0).Name = "MacroExecutionMode" <ArgsDoc(0).Value = <ServiceManager.Bridge_getStruct("com.sun.star.Document.MacroExecMode.AL WAYS_EXECUTE_NO_WARN")

<'création d'un nouveau classeur à partir d'un modèle <adresseDoc = F_ConvertToURL(lstrNomModeleCalc) <Set monClasseur = Desktop.loadComponentFromURL(adresseDoc, "_blank", 0,

<Args())