Recherche exemple de macro avec la fonction Shell

Bonjour à tous,

Je suis à la recherche d'exemple de macro fonctionnant avec la fonction Shell.

Merci de votre aide

Jean Luc

----- Mail original -----

De: "linux" <supsup.linux@free.fr>
À: users@fr.libreoffice.org
Envoyé: Mardi 8 Août 2017 08:52:28
Objet: [fr-users] Recherche exemple de macro avec la fonction Shell

Bonjour à tous,

Je suis à la recherche d'exemple de macro fonctionnant avec la
fonction
Shell.

Merci de votre aide

Jean Luc

bonjour,

pour powershell :
https://lmgtfy.com/?q=macro+libreoffice+and+powershell

autrement sur le web vous trouverez des exemples pour python ou NetBean

slt
bernard

Merci Bernard,

Mais mon besoin concerne des macros écrite en basic

car toutes mes tentatives ne fonctionnent pas même avec la fonction simple Echo

Cordialement

Jean Luc

Bonjour,

Vous pouvez être plus précis ...

Quel OS ?

Quelle application ?

Cordialement.

----- Mail original -----

De: "linux" <supsup.linux@free.fr>
À: users@fr.libreoffice.org
Envoyé: Mardi 8 Août 2017 08:52:28
Objet: [fr-users] Recherche exemple de macro avec la fonction Shell

Bonjour à tous,

Je suis à la recherche d'exemple de macro fonctionnant avec la
fonction
Shell.

Merci de votre aide

Jean Luc

--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour vous
désinscrire
Les archives de la liste sont disponibles à
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés
publiquement et ne pourront pas être supprimés

bonjour,

évites d'employer le basic et passe à python ...

une foultitude d'exemples existent

https://lmgtfy.com/?q=from%20vba%20to%20python

et il existe un convertisseur ...

"open your mind without close windows"

slt
bernard

Merci Didier et Bernard de vous intéresser à mon problème,

Je suis sous windows 10 Libreoffice 4.4.7.2 usage professionnel

J'ai un grand nombre de macro développée en Basic langage que je maitrise, ce qui est une autre affaire pour Python même si j'ai déjà fait quelque programme sur d'autre environnement, c'est pourquoi il me semble long et risqué de basculer de libreoffice basic en python.

Bernard la plus part des liens derrière ton lien me donne des convertisseurs VBA vers python mais pas libreoffice basic vers python est ce normal ?

Mais je reviens à ma problématique du jour:

Je souhaite à l'intérieure d'une macro libreoffice basic copier un répertoire et l'ensemble de ses sous-répertoires, ne trouvant pas dans libreoffice basic, j'ai pensé le faire avec shell et la fonction Dos :Xcopy fonction qui fonctionne parfaitement sous windows Powershell.

Je souhaite à l'intérieure d'une macro libreoffice basic lancer une application tiers et revenir à la fermeture de celle-ci dans la macro libreoffice basic en cours

et merci encore de votre aide

Cordialement

Jean-Luc

Bonjour,

Sous windows ( et que sous windows !!!) j'ai un traitement un peu particulier (mais il correspond à mon besoin).

Je récupère d'abord dans une feuille les dossiers (CheminDepart) et nom de fichiers (Nomfichier) concernés, j'y associe manuellement (dans mon cas) le dossier d'arrivée (CheminArrivee )

et pour chaque fichier :

         if Dir(CheminArrivee , 16) = "" Then
             msgbox "Dossier : " & CheminArrivee & " inexistant"
         else
             if fileexists (CheminDepart & "\" & NomFichier) then
                 FileCopy CheminDepart & "\" & NomFichier, CheminArrivee & "\" & NomFichier
                 Kill CheminDepart & "\" & NomFichier
                else
                 msgbox CheminDepart & "\" & NomFichier & " n'existe pas"
             endif
         endif

Moi j'ai rajouté le Kill parce que je veux déplacer et que je n'ai pas trouvé comment le faire.

J'ai déplacé ainsi

-------- Message original --------
*Sujet: *[INTERNET] Re: [fr-users] Recherche exemple de macro avec la fonction Shell
*Pour : *bernard.schoenacker@free.fr, users@fr.libreoffice.org, ddorange@dmaths.org

Bonjour,

Le livre qu'il faut posséder : http://www.editions-eyrolles.com/Livre/9782212132472/programmation-openoffice-org-et-libreoffice

Voici deux macros adaptées qui en proviennent et qui permettent de piloter des objets COM.

Option Explicit

'Utilisation de MS Word depuis une macro LibreOffice
Sub loading_MSWord( )
Dim oword As Object, odoc As Object

oword = CreateObject("Word.Application")
' l'objet va utiliser l'API de Word
oword.Visible = True
odoc = oword.Documents.Add
odoc.Range.Text = "Hello World!"

Wait 5000

odoc.close

oword.quit

End Sub

'Utilisation d'Internet Explorer depuis une macro LibreOffice
Sub using_IE( )
Dim IE As Object

IE = CreateObject("InternetExplorer.Application.1")
' l'objet va utiliser l'API d'internet Explorer
IE.Visible = 1
IE.Navigate("http://fr.openoffice.org")
End Sub

Merci Didier pour ces deux exemples,

Le plus dur est d'avoir la bonne syntaxe pour chaque application externe!!

J'ai une vielle version du livre de Bernard et Laurent qui date de 2005

Cordialement

Jean Luc

Merci,

pour cette réponse, je n'avais pas testé la fonction Filecopy, car je pensais qu'elle ne copiait que des fichiers et non pas l'arborescence complète d'un répertoire.

Peut être faut il corriger l'aide en précisant fichier et répertoire ? mais cela je ne sais pas faire

De même dans le livre de Laurent Godard et Bernard Marcelly mais j'ai une vieille édition de 2005 .

Cordialement

Jean Luc

  Instruction FileCopy [Exécution]

Copie un fichier _*ou un répertoire*_.

    Syntaxe :

FileCopy TextFrom As String, TextTo As String

    Paramètres :

*TextFrom :* expression au format chaîne de caractères spécifiant le nom du fichier à copier. L'expression peut contenir, facultativement, des informations relatives au chemin et à l'unité. Vous pouvez aussi saisir un chemin en notation URL <vnd.sun.star.help://sbasic/text/sbasic/shared/00000002.xhp?Language=fr&System=WIN&UseDB=no&DbPAR=sbasic>.

*TextTo :* expression au format chaîne de caractères spécifiant l'emplacement où doit être copié le fichier source. L'expression peut contenir l'unité de destination, le chemin et le nom du fichier, ou le chemin en notation URL.

L'instruction FileCopy ne peut être appliquée que pour copier des fichiers non ouverts.

    Codes d'erreur

5 appel de procédure incorrect

76 chemin non trouvé

    Exemple :

Sub ExampleFileCopy
     FileCopy "c:\autoexec.bat", "c:\Temp\Autoexec.sav"
End Sub

Bonjour,

Je ne pense pas que le filecopy copie toute une arborescence mais en cherchant un peu voici un exemple qui fonctionne sous windows (désolée mais je n'ai que çà).
En mettant la commande directement dans la fonction shell je n'ai pas réussi à le faire fonctionner.

Sub Main
Dim MaCommand As String
MaCommand = "c:\moi\tmp\test.bat"
Shell (MaCommand)
End Sub

Le test.bat contient le xcopy. Moi je m'en sers pour sauvegarder les dossier locaux de messagerie, donc je supprime d'abord l'arborescence d'arrivée

@echo Sauvegarde des dossiers travail
@echo Veuillez patienter
@set VAR_DOC=G:\bureautique\temp.
@set VAR_DIR=G:\bureautique\temp
@set VAR_ORIG=G:\bureautique\tmp\*.*
@echo %VAR_DOC%
@if not exist %VAR_DOC% goto suite
@echo existe
@rd %VAR_DIR% /S /Q
@:suite
@md %VAR_DIR%
@xcopy %VAR_ORIG% %VAR_DIR% /Y /E

@echo fin de la sauvegarde

En espérant que cela te conviendra.

Claude

-------- Message original --------
*Sujet: *[INTERNET] Re: [fr-users] Recherche exemple de macro avec la fonction Shell
*Pour : *PREF31 Libreoffice <pref-open-office@haute-garonne.gouv.fr>
*Copie à : *users@fr.libreoffice.org, ddorange@dmaths.org

Bonjour Claude

Si justement filecopy copie toute l'arborescence des répertoires plus les fichiers à l'intérieur, d'où ma remarque pour l'aide car elle ne parle que des fichiers et pas des répertoires.

Donc ton aide m'a permis de régler mon problème, un grand merci Claude

Cordialement

Jean-Luc