La modération vous a écrit: TO : [OXT] Dossier de modeles avec macros
"macros" est inutile dans la section consacrée aux macros. Veillez à ne plus employer de terme implicite dans un titre.
Bonjour
Sur tous nos postes de travail, une extension est déployée, la macro principale est exécutée à chaque ouverture de session (dans le loginscript)
Code : Tout sélectionner
start /wait "Lancement LibreOffice Macro1" "%Pgm_LO%program\soffice.exe" "macro:///xxx_Config_Utilisateur()"
Code : Tout sélectionner
Lecture
jConfig = CreateUnoService("com.sun.star.util.PathSettings")
puis utilisation avec:
jConfig.getPropertyValue("Template_user"))
Comme nous avons changé d'emplacement il ajoute le nouveau dossier ou remplace l'ancien.
Remarque: le paramètre ("Menu") permet l'affichage des messages en interactif.
Code : Tout sélectionner
Sub xxx_ConfigModele_Exec( Optional Param1 As String )
Rem **********************************************************************
Rem Pour LibreOffice
Rem
Rem **********************************************************************
Rem Configuration des dossiers
Rem dans les options en LibreOffice - Chemins - Modèles
Rem Ajout \\ged\xxx
Rem Suppression \\xxx
Rem
Rem **********************************************************************
Rem
Dim NotreModele As String
Dim AncienModele As String
Dim jConfig As Object
Dim Index, IndexMin, IndexMax, IndexSuppr As Long
Dim AjoutjConfigTemplate_user As Boolean
Dim SupprjConfigTemplate_user As Boolean
Dim jConfigTemplate_user() As String
Dim MessageTitre As String
Dim MessageInfo As String
Dim Bavard As Boolean
Dim Debug As Boolean
If IsMissing( Param1 ) Then
Bavard = False
Debug = False
Else
Param1 = LCase(Param1)
Select Case Param1
Case "menu"
Bavard = True
Debug = False
Case "debug"
Bavard = True
Debug = True
Case Else
Bavard = False
Debug = False
End Select
EndIf
Rem Titre pour Message utilisateur
MessageTitre = "Information xxx - Dsi"
Rem Notre configuration
NotreModele = "file://ged/xxx/LibreOffice/Modeles"
Rem Notre ancienne configuration
AncienModele = "file://xxx/LibreOffice/Modeles"
Rem Lecture de la configuration des chemins
jConfig = CreateUnoService("com.sun.star.util.PathSettings")
Rem IndexMin est à 0 normalement
IndexMin = LBound(jConfig.getPropertyValue("Template_user"))
IndexMax = UBound(jConfig.getPropertyValue("Template_user"))
AjoutjConfigTemplate_user = False
If IndexMin > IndexMax Then
Rem Le tableau est vide
Rem Mise en place de notre dossier
jConfigTemplate_user = Array(NotreModele)
AjoutjConfigTemplate_user = True
Else
Rem Lecture de la configuration Template_user
jConfigTemplate_user() = jConfig.getPropertyValue("Template_user")
Rem On parcours le tableau pour vérifier les chemins configurés
AjoutjConfigTemplate_user = True
For Index = IndexMin To IndexMax
If LCase(jConfigTemplate_user(Index)) = LCase(NotreModele) Then
AjoutjConfigTemplate_user = False
EndIf
If LCase(jConfigTemplate_user(Index)) = LCase(AncienModele) Then
SupprjConfigTemplate_user = True
IndexSuppr = Index
EndIf
Next
Rem Cette partie ne fait pas de suppression
Rem juste ajout ou remplacement
If AjoutjConfigTemplate_user Then
If SupprjConfigTemplate_user Then
Rem Remplacement ancien dossier par nouveau
jConfigTemplate_user(IndexSuppr) = NotreModele
Else
Rem Ajout de notre dossier
Redim Preserve jConfigTemplate_user(IndexMax+1-IndexMin)
jConfigTemplate_user(IndexMax+1) = NotreModele
EndIf
EndIf
EndIf
If AjoutjConfigTemplate_user Then
Rem Validation de la configuration modifiée
jConfig.setPropertyValue("Template_user",jConfigTemplate_user)
If Bavard Then
MessageInfo = "Le chemin " & NotreModele & chr(13) & chr(13)
MessageInfo = MessageInfo & "est ajouté à votre configuration."
MsgBox(MessageInfo,64 ,MessageTitre)
End If
Else
If Bavard Then
MessageInfo = "Le chemin " & NotreModele & chr(13) & chr(13)
MessageInfo = MessageInfo & "est déjà présent dans votre configuration."
MsgBox(MessageInfo,64 ,MessageTitre)
End If
EndIf
If SupprjConfigTemplate_user Then
Rem Validation de la configuration modifiée
jConfig.setPropertyValue("Template_user",jConfigTemplate_user)
If Bavard Then
MessageInfo = "Le chemin " & AncienModele & chr(13) & chr(13)
MessageInfo = MessageInfo & "est enlevé de votre configuration."
MsgBox(MessageInfo,64 ,MessageTitre)
End If
Else
If Bavard Then
MessageInfo = "Le chemin " & AncienModele & chr(13) & chr(13)
MessageInfo = MessageInfo & "est absent de votre configuration."
MsgBox(MessageInfo,64 ,MessageTitre)
End If
EndIf
End Sub
Trouver comment autoriser mon dossier "NotreModele" a exécuter des macros.
Ajout : Par menu: Outils, Options puis LibreOffice, Sécurité. Bouton Sécurité des macros, onglet Sources de confiance et enfin Emplacements de fichier de confiance |
Merci de l'information
PS: Si quelqu'un trouve la réponse, j'aimerai aussi savoir par quel moyen (bibliothèque, pdf, ...).
Daniel