[Résolu][Bash]Appel de script dans "Mes Macros"

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
gerardmarquer
Membre OOrganisé
Membre OOrganisé
Messages : 94
Inscription : 26 août 2014 21:23

[Résolu][Bash]Appel de script dans "Mes Macros"

Message par gerardmarquer »

Bonjour à tous

Je corrige un peu ce message publié ce matin dans la tourmente des dernières minutes avant la fermeture du Cyber de mon quartier !!!

Grâce à la Bible de B.M. & L.G. je sais lancer depuis un shellscript bash l'exécution d'une Sub définie dans le Code Basic d'une Application déjà chargée en mémoire

Je voudrais pouvoir lancer de la même façon l'exécution d'une Sub définie dans "Mes Macros" de sorte qu'elle soit disponible quelle que soit l'Application chargée.

Dans "chronometre_relance", j'ai joint un exemple de script qui fonctionne parfaitement en binôme interactif avec une fonction Basic

Dans "any_globalscope_function_run", j'ai joint les diverses syntaxes essayées mais dont aucune ne fonctionne

Les deux fichiers joints ont l'extension "odt" mais c'est pour pouvoir être joints à ce post. Dans la vraie vie, ils n'ont pas d'extension.

Merci de vouloir bien éclairer ma lanterne
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par gerardmarquer le 08 nov. 2017 12:37, modifié 3 fois.
"Si tu trouves que tes résultats ne sont pas à la hauteur de tes efforts, rappelle-toi que le grand chêne a un jour été un gland... comme toi !!!"

LibreOffice 6.0.6.2 sous Kubuntu 18.04
LibreOffice 5 sous un Windows 7
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9858
Inscription : 28 août 2010 08:45

Re: [Basic]Appeler une Sub de "Mes Macros" depuis un script

Message par micmac »

Bonjour,
votre signature a écrit : LibreOffice 4.2.6.3 sous Linux 3.2.0-5 - KDE 14.04
Votre signature indique une version de LibreOffice qui n'est plus maintenue.
Est-ce une une erreur, un oubli, un choix, une obligation ?
Dans ce dernier cas, mentionnez-le dans votre signature par "Obligation de version".

Il est fortement recommandé d'être à jour de la dernière version : https://forum.openoffice.org/fr/forum/v ... m.php?f=38.

Dans votre signature il est nécessaire d'indiquer :
1- La version exacte de LibO (LibO 5.3.6 version officielle ou des dépôts par exemple) ;
2- La version exacte du système d'exploitation (Windows XP SP3, Vista SP2, Windows 7 SP1, Win 8.1, Win 10, Ubuntu 17.04, MacOS 10.12.6, par exemple).
Accès direct à votre signature pour la corriger.

Cordialement.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
OpenOffice > Outils > Options sur Windows = OpenOffice > Préférences sur macOS
Avatar de l’utilisateur
gerardmarquer
Membre OOrganisé
Membre OOrganisé
Messages : 94
Inscription : 26 août 2014 21:23

Re: [Basic]Appeler une Sub de "Mes Macros" depuis un script

Message par gerardmarquer »

Oh !!! Pardon !!!

Il y a des siècles que je n'étais plus revenu sur ce forum !!!

Je mettrai à jour les informations demandées aze-soune-aze-possibôôle !!!

Ma version de KDE est la dernière publiée en longue durée de maintenance (la 16.4, je crois) et la Version de LibreOffice est celle qui a été installée avec !!!

Bien cordialement à tous !!!
"Si tu trouves que tes résultats ne sont pas à la hauteur de tes efforts, rappelle-toi que le grand chêne a un jour été un gland... comme toi !!!"

LibreOffice 6.0.6.2 sous Kubuntu 18.04
LibreOffice 5 sous un Windows 7
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26014
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Basic]Appeler une Sub de "Mes Macros" depuis un script

Message par Dude »

Salut,

Le titre n'est pas bon car tu ne fais pas de Basic.
A corriger pour : [Bash] Appel de script dans "Mes Macros"

Ce dossier n'existe pas. Une macro s'appelle en ligne de commande via le paramètre éponyme.
Il suffit de lui passer la Bibliothèque, le module et le nom du script à exécuter :
no_problemo.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
gerardmarquer
Membre OOrganisé
Membre OOrganisé
Messages : 94
Inscription : 26 août 2014 21:23

Re: [Bash]Appeler une Sub de "Mes Macros" depuis un script b

Message par gerardmarquer »

Super !!! Merci Dude !!!

Je ne suis pas chez moi mais j'essayerai dès mon retour !!!

Si j'ai bien compris, ta réponse signifie donc qu'il n'est même pas utile qu'une Application LibreOffice soit chargée pour pouvoir exécuter une Sub quelconque de "Mes Macros" !!!
"Si tu trouves que tes résultats ne sont pas à la hauteur de tes efforts, rappelle-toi que le grand chêne a un jour été un gland... comme toi !!!"

LibreOffice 6.0.6.2 sous Kubuntu 18.04
LibreOffice 5 sous un Windows 7
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Bash] Appel de script dans "Mes Macros"

Message par Piaf »

Bonjour
gerardmarquer a écrit :Grâce à la Bible de B.M. & L.G.
Lis bien :)
A tester
Dans Mes macros et boîtes de dialogue > Standard > Module1

Code : Tout sélectionner

Sub bavard(c As String, n As Integer)
Dim f As Integer
f = FreeFile
open "/home/trucmuche/Documents/essaiMacro.txt" for Output As f
Write #f, Time & " bavard a dit : " & n & " " & c
close #f
msgbox "bavard a terminé"
end sub
Le bash

Code : Tout sélectionner

#!/bin/bash
export DISPLAY=":0.0"
cmdMacro="macro:///Standard.Module1.bavard(un,15)"
/opt/libreoffice5.3/program/soffice --headless "$cmdMacro"
exit 0
Comme précisé, si aucun document Office n'est ouvert, le message box ne s'affiche pas, si un document est ouvert il s'affiche, dans les deux cas la macro est exécutée.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
gerardmarquer
Membre OOrganisé
Membre OOrganisé
Messages : 94
Inscription : 26 août 2014 21:23

Re: [Bash] Appel de script dans "Mes Macros"

Message par gerardmarquer »

Ah !!! Merci Piaf !!!

D'autant que j'ai l'impression que la manip' proposée par Dude ne fonctionne qu'avec OpenOffice

Et moi je "suis" sous LibreOffice et je n'ai pas réussi à savoir dans quel dossier sont rangées "Mes Macros" : A l'aide du gestionnaire de fichiers et à partir du dossier racine, j'ai lancé toutes les recherches que j'ai pu imaginer de lancer et exploré tous les dossiers trouvés par les recherches successives et je n'ai rien trouvé qui puisse ressembler à un dossier de macros LibreOffice

Et ça, je l'ai fait sur mes deux machines, celle sous Kubuntu périmé et celle sous Xfce dernier cri.

J'a cherché "libreoffice" et même "openoffice", "macros", "standard", "soffice" et sûrement d'autres trucs que je n'ai plus en tête... obtenu des listes très courtes et d'autres très longues... que dalle !!!

Quelqu'un aurait-il une réponse à cette question : Où ce démon cachottier de LibreOffice stocke-t-il ses propres macros globales et celles des Utilisateurs ???
"Si tu trouves que tes résultats ne sont pas à la hauteur de tes efforts, rappelle-toi que le grand chêne a un jour été un gland... comme toi !!!"

LibreOffice 6.0.6.2 sous Kubuntu 18.04
LibreOffice 5 sous un Windows 7
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Bash] Appel de script dans "Mes Macros"

Message par Piaf »

Bonjour
L'exemple de mon message précédent fonctionne sous LibO.
/opt/libreoffice5.3/ est à adapter à ta configuration.
A priori dans le répertoire opt du système de fichier.
opt.png
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
gerardmarquer
Membre OOrganisé
Membre OOrganisé
Messages : 94
Inscription : 26 août 2014 21:23

Re: [Bash] Appel de script dans "Mes Macros"

Message par gerardmarquer »

Bonjour à tous et à Piaf en particulier !!!

Je suis sur les machines du Cyber équipées d'un LibreOffice 5.0.6.2

J'ai un peu grimpé dans l'arbre et le seul dossier où j'ai trouvé quelque chose ressemblant à du code BASIC est le dossier :

racine/usr/lib/libreoffice/share/basic

Là j'ai trouvé des dossiers dont les noms ressemblent fort aux Librairies de la GlobalScope : FormWiard, Gimmicks, Template, ImportWizard et contenant des fichiers d'extension xba, lesquels contiennent des Macros Function et Sub écrites en BASIC.

Il semblerait donc que les chemins soient éminemment variables selon les Versions de LO !!

Désolé, je n'ai pas encore pu prendre le temps d'essayer le code que Piaf m'a transmis il y a quelques jours. Je vais m'y employer dès zojordoui !!!
"Si tu trouves que tes résultats ne sont pas à la hauteur de tes efforts, rappelle-toi que le grand chêne a un jour été un gland... comme toi !!!"

LibreOffice 6.0.6.2 sous Kubuntu 18.04
LibreOffice 5 sous un Windows 7
Avatar de l’utilisateur
gerardmarquer
Membre OOrganisé
Membre OOrganisé
Messages : 94
Inscription : 26 août 2014 21:23

Re: [Bash] Appel de script dans "Mes Macros"

Message par gerardmarquer »

Bonjour, bonjour, bonne journée, bon après-midi à tout le monde et que la vie vous soit belle, profitez-en mes petits amis, de mauvaises langues m'ont dit que peut-être nous ne serions plus là, à l'aube du vintéunième sièk pour continuer la belle aventure de la vie en compagnie des aut' bestioles vivant actuellement à la surface de notre adorable petite boule bleue !!!!!

Première petite remarque désagréable pour bien commencer ce bel après-midi semi-hivernal :
En fait, même si le balisage n'était pas bon (j'avais balisé "BASIC", ne sachant pas, malgré mes recherches, que "Bash" était une balise reconnue), le titre original de cette série était plus exact que le titre corrigé par Dude (je suppose que c'est lui l'auteur du crime) parce que ce sujet est bien "Appeler une macro Basic depuis un script" et non pas "appeler un script dans "Mes Macros"", chose que je sais faire, tout béotien que je suis, depuis des lustres !!!

Seconde petite remarque désagréable pour bien commencer ce bel après-midi semi-hivernal :
Je ne comprends pas comment certains messages de ce forum sont aussi épouvantablement truffés de fautes d'orthographe puisque le surveillant syntactique automatique souligne en rouge les mots incorrects !!!

Bon, je réponds à tous ceux qui sont intervenus sur ce sujet et m'ont apporté une réponse, simple, claire et efficace parce que accompagnée d'un exemple bien parlant, et je leur adresse un Grand Merci !!!
Pour ceux qui sont un peu noeud-noeud comme moi, il ne faut pas hésiter à bien mettre les points sur les "i" !!!! Merci à ceux qui ont su trouver les "i" qui n'avaient pas encore reçu leur point !!!!

Tout devient simple quand on a compris la mécanique des choses !!! Si vous relisez le script merdique et infructueux que j'avais donné dans mon premier appel au secours, vous verrez que j'étais vraiment allé chercher midi à quatorze heures !!!

Et j'ai aussi compris le sens des 3 slashs qui suivent "macros:" : Si y a rien entre le second et le dernier, c'est simple, l'interpréteur va chercher directement le truc dans Mes Macro, s'il y a quelque chose, c'est forcément le nom du document où il devra chercher.

Encore Merci à tous
"Si tu trouves que tes résultats ne sont pas à la hauteur de tes efforts, rappelle-toi que le grand chêne a un jour été un gland... comme toi !!!"

LibreOffice 6.0.6.2 sous Kubuntu 18.04
LibreOffice 5 sous un Windows 7
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 4279
Inscription : 06 oct. 2008 08:03

Re: [Bash] Appel de script dans "Mes Macros"

Message par Oukcha »

Bonjour,

Tout en restant dans les remarques déplaisantes :
  • Seuls les modérateurs et administrateurs peuvent éditer les sujets d’autres posteurs (dont les titres)
  • Si le titre ne semble pas correspondre à votre demande, vous devez alors corriger celui-ci en intégrant les suggestions (notamment le balisage)
  • Lorsque vous choisissez de clôturer un sujet, il est d’usage d’y apposer la balise Image[Résolu], entre crochets, avec un R majuscule et un é. Cette balise est à placer au début du titre, suivez ce sujet pour savoir comment procéder : https://forum.openoffice.org/fr/forum/ftopic3299.html
Cordialement
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image
Avatar de l’utilisateur
gerardmarquer
Membre OOrganisé
Membre OOrganisé
Messages : 94
Inscription : 26 août 2014 21:23

Re: [Bash] [Résolu]Appel de script dans "Mes Macros"

Message par gerardmarquer »

Voila, Maître Oukcha !!! C'est fait !!!!
"Si tu trouves que tes résultats ne sont pas à la hauteur de tes efforts, rappelle-toi que le grand chêne a un jour été un gland... comme toi !!!"

LibreOffice 6.0.6.2 sous Kubuntu 18.04
LibreOffice 5 sous un Windows 7
Denis4085
Membre lOOyal
Membre lOOyal
Messages : 43
Inscription : 03 janv. 2025 04:06

Re: [Bash] Appel de script dans "Mes Macros"

Message par Denis4085 »

Bonjour,

Sauf erreur de ma part, et à mon grand désarroi, ce fil ne peut pas être clôturer de cette manière, puisque qu'il ne résout pas le problème tel qu'exprimé dans le titre 'Appel de script dans "Mes Macros"' ... :(

Ce code correspond bien à un titre du genre "Modification d'un fichier texte (du système de fichier) depuis une macro"

Code : Tout sélectionner

Sub bavard(c As String, n As Integer)
Dim f As Integer
f = FreeFile
open "/home/trucmuche/Documents/essaiMacro.txt" for Output As f
Write #f, Time & " bavard a dit : " & n & " " & c
close #f
msgbox "bavard a terminé"
end sub
Mais où est le script bash exécuté ?

Ce code correspond bien à "Lancer une macro depuis un script bash" (appelons-le essai-macro-bavard.sh) :

Code : Tout sélectionner

#!/bin/bash
export DISPLAY=":0.0" # pas utile chez moi, d'ailleurs DISPLAY="0:"
cmdMacro="macro:///Standard.Module1.bavard(un,15)"
/opt/libreoffice5.3/program/soffice --headless "$cmdMacro"
exit 0
Disons plutôt soffice --headless "$cmdMacro" .
Parfait.

Mais Quid de l'appel de essai-macro-bavard.sh depuis une macro (appelons-la call_my_script) ?
Je cherche du côté de session.RunApplication mais je ne parviens pas à faire fonctionner cet appel de méthode sur l'objet session.

Code : Tout sélectionner

Sub call_my_script
    Dim str As String
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim session As Variant
    session = CreateScriptService("Session")
  
	str = "contenu texte d'une plage de données"
	' essai-macro-bavard.sh n'étant pas une application nommée du système mais un simple fichier exécutable, ...
	session.RunApplication("/bin/bash /home/denis/Documents/Budget/essai-macro-bavard.sh", #str) ' GNU/Linux
	' ci-dessous aurait encore moins de sens, bash n'étant pas non plus une application
	session.RunApplication("/bin/bash", "/home/denis/Documents/Budget/essai-macro-bavard.sh" & #str) ' GNU/Linux
	' intéressant ci-dessous, il appelle l'application default de mon système pour traiter ce genre de fichier : 
	session.RunApplication("/home/denis/Documents/Budget/essai-macro-bavard.sh", #str)
	' ci-dessous ne marche pas, même si je déplace les arguments de konsole dans deuxième paramètre : "-e ./essai-macro-bavard.sh" & #str
	session.RunApplication("konsole -e ./essai-macro-bavard.sh", #str)
End Sub
dans mon exemple essai-macro-bavard.sh contient un simple

Code : Tout sélectionner

!#/bin/bah
echo "ce qu'on veut" >> essaiMacro.txt
juste pour tester .
le troisième appel a RunApplication est encourageant, il m'ouvre l'appli par défaut pour traiter les fichiers texte (sans configuration système pour traiter les .sh).
Qu'est ce que je ne comprends pas et comment faire que je puisse réellement appeler mon script .sh (bash) depuis la macro call_my_script ?

NB: ce que j'envisage de faire c'est
  • appeler la macro "bavard" pour écrire des lignes dans un fichier texte "essaiMacro.txt"
  • lancer macro "call_my_script" depuis macro "bavard"
  • bash interprète ce script et traite les lignes dans "essaiMacro.txt
  • call_my_script finit en appelant une macro ou une fonction qui copie le contenu de "essaiMacro.txt dans une plage de donnée de la feuille
LibreOffice 7.4.7.2 sous Linux Debian 12.8
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 4279
Inscription : 06 oct. 2008 08:03

Re: [Résolu][Bash]Appel de script dans "Mes Macros"

Message par Oukcha »

Bonjour,

Nous nous devons de verrouiller ce fil de discussion. Nous vous rappelons les règles de ce forum et notamment la n° 7
Un sujet = le problème d'une seule personne

Comme vous avez pu le lire, ce sujet est désormais résolu. Si vous avez également ce problème, c'est que ce dernier est différent. Votre configuration n'est peut être pas la même que celle de l'auteur de ce fil.
Vous ne pourrez pas ajouter [Résolu] car vous n'êtes pas l'auteur de la première question.

Dans ce cas et pour des raisons de lisibilité sur ce forum, nous vous demandons de créer une nouvelle question en rappelant que vous avez le même problème que dans ce fil.

Merci de votre collaboration.
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image