Date: prev next · Thread: first prev next last
2017 Archives by date, by thread · List index


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
*De : *linux <supsup.linux@free.fr>
*Pour : *PREF31 Libreoffice <pref-open-office@haute-garonne.gouv.fr>
*Copie à : *users@fr.libreoffice.org, ddorange@dmaths.org
*Date : *16/08/2017 12:06

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

Le 10/08/2017 à 09:34, PREF31 Libreoffice a écrit :
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
*De : *linux <supsup.linux@free.fr>
*Pour : *bernard.schoenacker@free.fr, users@fr.libreoffice.org, ddorange@dmaths.org
*Date : *10/08/2017 09:09
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


Le 09/08/2017 à 17:48, bernard.schoenacker@free.fr a écrit :

----- 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









--
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

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.