4 messages in org.openoffice.fr.progVBA : créer un nouveau classeur execu...
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:VBA : créer un nouveau classeur executant les macros à partir d'un modèleActions...
From:BOTTIN Laurence - DGMT/SG/AG2 (laur@equipement.gouv.fr)
Date:Jan 11, 2007 6:00:42 am
List:org.openoffice.fr.prog

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.ALWAYS_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())

Question subsidiaire : Existe-t-il une bonne documentation en français sur l'API, l'abordant par le côté objet sur le principe du developper's guide. L'anglais n'est pas ma cup of tea et je découvre la programmation objet avec OOo.

Merci

Laurence