Enregistrer bibliothèque Macros persos

Bonjour,

J'ai créé qq macros persos que je voudrais enregistrer dans une bilbliothèque de mon profil pour qu'elles ne soient pas perdues à chaque MAJ.

La boîte de dialogue n'accepte que les fichiers .bas mais je ne sais pas les créer.
Merci de vos conseils.

bonjour,

Les macros sont liées à ton document, donc pour les conserver, passe ton
document en "modèle", et fait de ce modèle ton modèle par défaut.
Ainsi à chaque création de document, tu disposeras de tes macros.

Yves

Merci.

Cette solution marche bien.

J'aurais cependant bien aimé installer une bibliothèque dans mon profil.

Cordialement
Sandy-Pascal Andriant

Je comprends pas bien ?
Ton document, c'est ta bibliothèque de macro, non ? tu peux le copier où tu
veux.
ou alors j'ai pas bien compris la question ?

tu veux extraire les macros de ton document pour avoir le code source sous
la main ?

Yves

Merci.

Cette solution marche bien.

J'aurais cependant bien aimé installer une bibliothèque dans mon profil.

D'autant que je ne retrouve plus l'usage des commandes liées à mes macros.

Cordialement
Sandy-Pascal Andriant

Jusqu'à présent, mes macros (pour Writer) étaient enregistrées dans
Mes macros > Standard

mais pour une raison que j'ignore, elles disparaissent de temps en temps.

Et il n'y au aucune bibliothèque déclarée dans
C:\Users\Mon Profil\AppData\Roaming\LibreOffice\4\user\uno_packages\cache\uno_packages

Heureusement que j'ai sauvegardé mes macros dans un fichier .odt.

J'aurais aimé que ces macros soient toujours accessibles que j'ouvre un modèle ou un simple doc.

Ta solution proposée fonctionne très bien dès que j'utilise le modèle dans lequel j'ai sauvegardé mes macros.
A l'ouverture, il m'est demandé d'activer les macros.

Après ajustement, mes boutons de commande sont actifs dans la barre.

Mais si j'ouvre un simple document, les commandes sont bien présentes dans la barre mais inactives bien entendu.
Or je voudrais pouvoir utiliser ces macros, en dehors du modèle spécifique, et ne plus avoir à les réinstaller régulièrement.

Voilà.
J'espère que ce long exposé aura permis de clarifier ma demande :wink:

Cordialement
Sandy-Pascal Andriant

J'avais simplement mal suivi la procédure :
https://help.libreoffice.org/Writer/Changing_the_Default_Template/fr

Tout va bien désormais.
Merci

Cordialement
Sandy-Pascal Andriant

Je suppose que c'est parce que ton modèle spécifique (avec tes macros),
n'est pas défini comme modèle par défaut.
donc un nouveau document (non ouvert via ton modèle) n'a pas les macros.

Dans la gestion des modèles, clic-droit dessus et définir par défaut (si
j'ai bon souvenir).
Yves

Oui merci,

C'est ce que j'ai fini par comprendre.
J'ai enregistré la page de base contenant mes macros comme modèle par défaut.

C'est OK maintenant.

Cordialement
Sandy-Pascal Andriant

Il me reste un dernier problème à régler.

Mes macros sont actives dès que j'ouvre un "Nouveau" document mais pas lorsque j'en ouvre un ancien, déjà enregistré.
Or c'est pour ceux-là que j'ai j'ai besoin de mes macros :-[

Cordialement
Sandy-Pascal Andriant

Bonjour Sandy-Pascal,

J'ai créé qq macros persos que je voudrais enregistrer dans une
bilbliothèque de mon profil pour qu'elles ne soient pas perdues à chaque
MAJ.

je vois une seule solution à long terme : disposer d'un outil d'installation automagique de tes bibliothèques. Il suffira donc de sauvegarder cet outil pour être assuré de pouvoir (re)installer n'importe où à tout moment.

Deux possibilités pour réaliser cet outil : la première serait de créer une extension qui installe le nécessaire, la seconde de créer un simple document "installeur".

Extension

L'avantage de l'extension est que tu peux, grâce à elle, installer non seulement une ou des bibliothèques mais aussi des barres d'outils, entrées de menus, aide associée, etc.

L'inconvénient c'est que c'est un travail (un peu) compliqué. Il peut néanmoins être largement facilité par l'emploi d'un outil remarquable (créé par le non moins remarquable Bernard Marcelly [publicité non payante]) : Extension Compiler.

Voir ici : http://berma.pagesperso-orange.fr/
Téléchargement là : http://berma.pagesperso-orange.fr/Files_en/ExtensionCompiler.ott
Le document-source est rédigé en anglais mais très facilement compréhensible, je pense.

Note : il existe d'autres outils pour aider à créer des extensions (voir ci-dessous) mais celui de BM est, AMHA, de loin le meilleur car il aide à comprendre les mécanismes sous-jacents. En d'autres termes, il ne masque pas la complexité, il la rend compréhensible.

Voir aussi l'extension BasicAddOnBuilder :
présenté ici : https://wiki.openoffice.org/wiki/Extensions_Packager
dispo là : http://extensions.openoffice.org/en/project/basicaddonbuilder-extensions-packager

Alternative

Si, cependant, tu es rebuté à l'idée de créer une ou des extensions (trop compliqué, pas le temps, marteau pilon vs mouche, etc.), tu peux tout simplement créer un document "installeur", sous Writer, par exemple. Note que ce document ne pourra installer que des bibliothèques brutes, donc pas de barres d'outils, de menus ou autres joyeusetés avancées.

Le principe : tu crées un document (Writer, mais ça marche aussi avec Calc) dans lequel tu incorpores ta ou tes bibliothèques (facile : copier/coller...). Ensuite, dans sa bibliothèque "Standard", tu lui ajoutes une macro recopieuse. Enfin tu crées un bouton qui lance la macro... Yapluka cliquer le bouton comme un malade pour installer la ou les bibliothèques.

Avantage : tu peux rédiger de la doc complémentaire dans le document lui-même.

Tu trouveras ici un exemple, tiré du monde réel, d'un installeur "quick and dirty" que j'ai créé et que j'utilise à titre professionnel :

https://framadrop.org/r/9wxTAQf5Pu#CBBUKp3h3ZOndyLDpKq0CY0Uumie4zH0wNzrXye9pjk=

Notes :
1. Le nom de la bibliothèque à recopier est écrit "en dur" dans le code de la macro d'installation (sub AddBasicLibrary, variables SrcLibraryName et DestLibraryName).
Ce serait "bien" de l'inscrire dans les propriétés du document... Rien de compliqué. Je ne l'ai pas fait car pas le besoin pour le moment. À vot' bon cœur.
2. La démo n'installe qu'une seule bibliothèque mais l'étendre pour plusieurs (si on ne veut pas créer autant d'installeurs) ne serait pas d'une complexité folle. À vot' bon cœur (bis).

J'ai créé cet installeur à partir d'informations trouvées là :
https://wiki.openoffice.org/wiki/Documentation/Administration_Guide/Using_Custom_Macros_and_Libraries

(voir en bas, au chapitre : "To Install a Custom OpenOffice.org Basic Library With a Macro")

En espérant que ça aidera.

Bien cordialement,

Bjr J-François,

Merci de cette documentation que je vais étudier avec soin pour choisir en toute connaissance l'option la mieux adaptée à mon besoin.
J'ai quand même besoin d'installer à chaque "disparition" une dizaine de macros... Même si ça ne nécessite qu'un copier-coller, c'est un peu agaçant à la longue.
La 1° fois que ça m'est arrivé je n'avais pas fait de copie et j'ai dû tout reconstruire.

Maintenant que mon projet s'est agrandi, ça m'embêterait fichtrement de tout refaire car même si ces macros ne sont pas parfaites - d'un point de vue strictement programmatique - elles correspondent tout à fait à mon besoin particulier et simplifient grandement tout un tas de manipulations répétitives.

Cordialement
Sandy-Pascal Andriant

Bjr J-François,

Merci de cette documentation que je vais étudier avec soin pour choisir en toute connaissance l'option la mieux adaptée à mon besoin.
J'ai quand même besoin d'installer à chaque "disparition" une dizaine de macros... Même si ça ne nécessite qu'un copier-coller, c'est un peu agaçant à la longue.
La 1° fois que ça m'est arrivé je n'avais pas fait de copie et j'ai dû tout reconstruire.

Maintenant que mon projet s'est agrandi, ça m'embêterait fichtrement de tout refaire car même si ces macros ne sont pas parfaites - d'un point de vue strictement programmatique - elles correspondent tout à fait à mon besoin particulier et simplifient grandement tout un tas de manipulations répétitives.

Cordialement
Sandy-Pascal Andriant

Sinon (c'est en tout cas ce que je fais) :
Dans l'interface de libreOffice Basic :
Outils -> Macros -> Gérer les boîtes de dialogues -> Clic sur l'onglet 'Bibliothèques' -> Clic sur la bibliothèque à sauvegarder -> Exporter -> Cocher 'Exporter comme extension' -> OK -> Enregistrer.
Il suffit alors de faire l'import, comme pour n'importe quelle extension, pour réavoir la bibliothèque de macros (dans LibreOffice Writer, par exemple : Outils -> Gestionnaires des extensions ..., ou plus simplement, cliquer deux fois sur le fichier sauvegardé)

Ceci ne permet pas de remettre en place des menus, mais on peut aussi créer des menus par macros.
Cordialement,
O.J.

Bonjour,

Merci pour cette nouvelle technique.

Le problème étant que ma suite de macros n'est pas enregistrée dans une bibliothèque mais dans un module de Standard. Je ne peux donc pas l'exporter.
Et je ne sais pas encore en faire une bibliothèque autonome.

Cordialement
Sandy-Pascal Andriant

Pour créer une bibliothèque autonome :
Dans l'interface de libreOffice Basic :
Outils -> Macros -> Gérer les boîtes de dialogues -> Bibliothèques -> Nouveau.
Puis faire un copier-coller du module standard.
Cordialement,
O.J.

Sinon (c'est en tout cas ce que je fais) :
Dans l'interface de libreOffice Basic :
Outils -> Macros -> Gérer les boîtes de dialogues -> Clic sur l'onglet 'Bibliothèques' -> Clic sur la bibliothèque à sauvegarder -> Exporter -> Cocher 'Exporter comme extension' -> OK -> Enregistrer.
Il suffit alors de faire l'import, comme pour n'importe quelle extension, pour réavoir la bibliothèque de macros (dans LibreOffice Writer, par exemple : Outils -> Gestionnaires des extensions ..., ou plus simplement, cliquer deux fois sur le fichier sauvegardé)

Ceci ne permet pas de remettre en place des menus, mais on peut aussi créer des menus par macros.
Cordialement,
O.J.

Bonjour,

Merci pour cette nouvelle technique.

Le problème étant que ma suite de macros n'est pas enregistrée dans une bibliothèque mais dans un module de Standard. Je ne peux donc pas l'exporter.
Et je ne sais pas encore en faire une bibliothèque autonome.
Cordialement
Sandy-Pascal Andriant

Pour créer une bibliothèque autonome :
Dans l'interface de libreOffice Basic :
Outils -> Macros -> Gérer les boîtes de dialogues -> Bibliothèques -> Nouveau.
Puis faire un copier-coller du module standard.
Cordialement,
O.J.

Tellement simple.

Merci bcp

Cordialement
Sandy-Pascal Andriant

En plus, une fois mon module transformé en bibliothèque tous les process sont accélérés.
J'ai tout gagné.
Grand merci

Cordialement
Sandy-Pascal Andriant