Enregistrer en format odt sans les macros incluses dans le fichier

Résolu/Fermé
RemiBZH Messages postés 3 Date d'inscription lundi 2 mars 2020 Statut Membre Dernière intervention 5 mars 2020 - 2 mars 2020 à 23:02
RemiBZH Messages postés 3 Date d'inscription lundi 2 mars 2020 Statut Membre Dernière intervention 5 mars 2020 - 5 mars 2020 à 20:59
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 3678 Date d'inscription vendredi 25 juillet 2014 Statut Membre Dernière intervention 4 octobre 2024 1 505
3 mars 2020 à 09:28
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 lundi 2 mars 2020 Statut Membre Dernière intervention 5 mars 2020
3 mars 2020 à 09:35
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 lundi 2 mars 2020 Statut Membre Dernière intervention 5 mars 2020
Modifié le 5 mars 2020 à 20:59
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