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 -
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 !
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:
- Enregistrer en format odt sans les macros incluses dans le fichier
- Fichier odt - Guide
- Fichier bin - Guide
- Format epub - Guide
- Format factory - Télécharger - Conversion & Codecs
- Audacity enregistrer son pc - Guide
3 réponses
L'objectif est d'envoyer initialement le fichier avec sa macro, car ce nest pas destiné a tourner sur ma machine.
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
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