Macros partagées

Bonjour tout le monde.

Ma question, aujourd'hui, est simple.

J'ai écrit un certain nombre de scripts.

J'aimerais maintenant qu'ils soient visibles par plusieurs fichiers différents.

Je ne trouve pas comment faire, mais peut-être que ce n'est pas possible.

Y a t-il un rapport avec la mention /** @OnlyCurrentDoc */ mise automatiquement en début de fichier?

D'avance merci et bonne journée.

J'ai pas l'impression qu'il y ait un rapport. Enlever ce commentaire ne change rien. Il est peut-être justement là pour attirer notre attention sur le fait que ce que l'on va écrire ne sera vu que par le document en cours... pour les novices comme moi...

Bonjour,

C'est justement l'objet des bibliothèques que l'on voit maintenant apparaître dans l'éditeur de script.

Pour cela, il faut créer une nouvelle librairie avec le ou les scripts que tu as développés, et ensuite importer cette librairie à chaque fois que tu en as besoin. C'est la théorie, car je n'ai pas encore essayé !

Hello!

J'essaierai ça dès que j'ai un moment.

Et je te dis si ça fonctionne. (à priori, effectivement le mot "librairie" signifie bien cela).

Merci et bonne journée.

Alors j'ai trouvé ça comme avertissement:

Warning: A script that uses a library doesn't run as quickly as it would if all the code were contained within a single script project. Although libraries can make development and maintenance more convenient, use them sparingly in projects where speed is critical. Because of this issue, library use should be limited in add-ons.

ça m'a un peu refroidi mais malgré cela j'ai testé quand même et je n'ai pas remarqué de différence notoire dans le temps de réponse. (bon il faut dire que j'ai une connection internet particulièrement rapide).

Sinon, une fois qu'on a compris comment ça fonctionne, ça tourne bien. Je pense que je vais garder 2 versions différentes (une directe et une qui passe par la librairie) au cas où cet avertissement sur le temps de réponse s'avère exact.

a+

Bon... je reviens sur ce que j'ai dit.

On peut effectivement partager des scripts écrits sur un fichier A avec le fichier B.

Il faut gérer l'ID, la version, faire un déploiement (sur le fichier A) puis ajouter la "bibliothèque" (en français) dans le fichier B.

Il faut ensuite référencer, dans le script du fichier B toutes les fonctions que l'on veut utiliser (dans des coquilles vides) et dès lors, elles deviennent exécutables dans le fichier B.

Sauf que...

le but de tout cela, c'est de pouvoir faire évoluer les-dites fonctions et bénéficier de ces évolutions partout où elles sont référencées, sinon à quoi bon?

Or, je viens d'ajouter un "alert" dans l'une de mes méthodes du fichier A. L'alert est déclenchée dans le fichier A mais pas dans le fichier B.

Je me suis dit qu'il fallait re-déployer. Comme ça m'est proposé, je l'ai fait mais ça ne résout rien.

S'il faut que je coupe le lien avec la librairie et que je le re-crée, à chaque fois qu'une modif est faite.... autant passer par ctrl-A, ctrl-C ,ctrl-V. Ce sera plus vite géré.

A moins que j'ai loupé quelque chose d'important?

A ce stade, je pense qu'il y a encore une marge de progrès côté GSheets ... https://stackoverflow.com/questions/10500764/is-it-possible-to-have-one-script-for-multiple-spreadsh...

Attends... ils disent:

"Switch on the "development mode" so every change made do the library will immediately take affect in the spreadsheets using this library."

je vais vérifier, si c'est juste ça, ça ira...

Oui!

C'était juste ça... bon bin c'est tout bon pour moi, on peut clore ce topic.

Merci à toi et bonne journée.

Merci pour ce test ... qui va faire avancer le schmilblick

Tu l'as dit!

Bonjour pimbotin je cherchais justement à faire cette manip, càd partager à tous les utilisateurs de mon domaine, dans tous leurs gsheet existants, des scripts développés de mon côté...mais je me perds en essayant de suivre ton commentaire...je me perds entre nouveau projet, nouvelle bibliothèque, bref, je n'y arrive pas :(

Merci bcp!

Salut. J'avais justement besoin de faire la manip moi-même (une 2ième fois). ça tombe bien.

Du coup, je t'ai fait quelques copies d'écran... ça sera peut-être plus parlant.

1) Dans mon cas, le code source se trouve dans un fichier nommé MacrosBudgetPivot.

Comme je le montre dans la 1ère image, il faut déjà aller chercher son id.

image1

2) Ensuite, je veux utiliser ce code dans un fichier qui se nomme Macros Budget Foyer. Je me place dans l'éditeur de ce fichier, je vire tout l'ensemble du vieux code que je ne veux plus et je vais ajouter une librairie / bibliothèque.

Sur l'image 2, je te montre où indiquer l'id que tu as récupéré sur l'étape d'avant.

image2

3) Je dois créer les références (coquilles vides) des méthode que je veux utiliser. Autant leur donner le même nom. (image 3)

image3
4) Pour ne pas avoir à me soucier des versions et de leur déploiement

(que je trouve assez fastidieux), je déclare le mode "Développeur", ce

qui me permet d'avoir en permanence les toutes dernières versions.

Peut-être que tu préféreras ne pas utiliser ça si tu veux toujours avoir

une version stable et sûre.

image4

A toi de jouer, bon courage...

Merci beaucoup pour ce tuto! Je vais essayer de mettre en oeuvre d'ici ce we, je te dirai!

Rechercher des sujets similaires à "macros partagees"