Enregistrer en format odt sans les macros incluses dans le fichier

Résolu
RemiBZH Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
RemiBZH Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai créé un fichier traitement de texte .odt avec des macros dedans (dans un module dans le fichier), car le fichier doit etre diffusé avec ses macros.
Ces macros permettent de modifier initialement le fichier (elles modifient des champs utilisateur dans le texte, ça marche très bien), mais ne sont plus utiles pour la suite. J'aimerais donc que le code propose de sauvegarder une version du document sans les macros. Mais je souhaite conserver le format odt (en .docx les champs utilisateurs ne passent pas)
J'ai retourné la fonction storetourl dans tous les sens, je nai pas trouvé.
Les utilisateurs n'ont pas le niveau pour aller chercher dans les menus le module et le supprimer, je cherche a faire quelque chose d'automatisé.

Merci d'avance pour vos réponses !



Configuration: Android / Chrome 79.0.3945.93
A voir également:

3 réponses

yclik Messages postés 3881 Date d'inscription   Statut Membre Dernière intervention   1 566
 
bonjour
Voir en enregistrant ou copier/coller la macro dans "mes macros" et la supprimer du document de départ
0
RemiBZH Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
L'objectif est d'envoyer initialement le fichier avec sa macro, car ce nest pas destiné a tourner sur ma machine.
0
RemiBZH Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Pour info, j'ai trouvé : il faut désassocier l'évènement "OnNEw" et supprimer la librairie.
Bon, j'ai pas tout compris, mais ça marche très bien !!


Sub Sauvegarder_sans_macro
oDoc = ThisComponent
DesassocierEvenement(oDoc, "OnNew")
SupprimerMacro(oDoc, "Standard")
Thiscomponent.store
End Sub

Sub DesassocierEvenement(oDoc As Object, sNomEvt As String)
oEvts = oDoc.getEvents()
If oEvts.hasByName(sNomEvt) Then
Dim aArgs(0) As New com.sun.star.beans.PropertyValue
oEvts.replaceByName(sNomEvt, aArgs)
End If
End Sub

Sub SupprimerMacro(oDoc As Object, sNomLib As String)
oLibs = oDoc.BasicLibraries
If oLibs.hasByName(sNomLib) Then
oLibs.removeLibrary(sNomLib)
End If
End Sub
0