IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Déclencher un script SHELL depuis VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur JAVA & PHP
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur JAVA & PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Points : 71
    Points
    71
    Par défaut Déclencher un script SHELL depuis VBA
    Bonjour,

    Je cherche a copier un fichier sur un serveur distant depuis mon application VBA.
    J'ai commencé par essayer de copier un fichier d'un dossier à un autre mais cela ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    vUrlDeux = ThisWorkbook.Path & "\Automation\CAL\"
     
     'appel de la fonction qui permet de créer un dossier a la date du jour et les fichiers .cal
                newFileInFolder vNomFichierDeux, vUrlDeux, 1
     
     
                'Ouverture du fichier
                Open vUrlDeux & "calendrier_recette_mens.cal" For Output As #1
                ' j'écris dans mon fichier vUrlMen
                Print #1, vDateMen
                'fermeture du fichier
                Close #1
     
    Shell ("cp " & vUrlDeux & "calendrier_recette_mens.cal " & ThisWorkbook.Path)
    J'aurais besoin d'une aide pour pouvoir avancer

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par joss_villiers Voir le message
    J'ai commencé par essayer de copier un fichier d'un dossier à un autre mais cela ne fonctionne pas
    Si tu es en Windows (donc un pseudo MS-DOS), l'instruction pour copier est COPY.
    CP, c'est pour Unix ou ses variantes.
    A lire : https://fr.wikipedia.org/wiki/Commande_DOS
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur JAVA & PHP
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur JAVA & PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Si tu es en Windows (donc un pseudo MS-DOS), l'instruction pour copier est COPY.
    CP, c'est pour Unix ou ses variantes.
    A lire : https://fr.wikipedia.org/wiki/Commande_DOS

    J'ai utilsé COPY merci pour ton apport mais le problème mon script plante toujours au niveau de la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Shell ("COPY " & vUrlDeux & "calendrier_recette_mens.cal " & ThisWorkbook.Path)
    pourtant je fais COPY urlFichier urlFichierCopie

    Je suis un peu perdu du coup

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Déjà, essaye d'être un peu plus descriptif dans la description de ton dysfonctionnement que "cela ne fonctionne pas" ou "mon script plante".
    S'il y a un message d'erreur, il faut le donner.

    A ta place, juste avant cette ligne, je vérifierais ce que contient exactement cette chaine de caractère, par exemple avec un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print "COPY " & vUrlDeux & "calendrier_recette_mens.cal " & ThisWorkbook.Path
    Si tu ne vois pas de problème dans la chaine qui apparait dans la fenêtre d'exécution, essaye de la copier dans l'invite de commande MS-DOS pour voir s'il ne donne pas une indication plus explicite sur le problème.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 419
    Points : 2 178
    Points
    2 178
    Par défaut
    bonjour,
    quand je lis serveur distant, je comprend loin, je conclue FTP!

    j'ai commencé par essayer de copier un fichier d'un dossier à un autre mais cela ne fonctionne pas


    comment le fais tu à la main?

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur JAVA & PHP
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur JAVA & PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Déjà, essaye d'être un peu plus descriptif dans la description de ton dysfonctionnement que "cela ne fonctionne pas" ou "mon script plante".
    S'il y a un message d'erreur, il faut le donner.

    A ta place, juste avant cette ligne, je vérifierais ce que contient exactement cette chaine de caractère, par exemple avec un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print "COPY " & vUrlDeux & "calendrier_recette_mens.cal " & ThisWorkbook.Path
    Si tu ne vois pas de problème dans la chaine qui apparait dans la fenêtre d'exécution, essaye de la copier dans l'invite de commande MS-DOS pour voir s'il ne donne pas une indication plus explicite sur le problème.
    Après vérification il n'y a pas de souci avec la chaîne de caractère je tester en ligne de commande.

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur JAVA & PHP
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur JAVA & PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par Thumb down Voir le message
    bonjour,
    quand je lis serveur distant, je comprend loin, je conclue FTP!



    comment le fais tu à la main?

    Bonjour,

    Effectivement il s'agit d'un FTP

    Je créer un fichier.txt
    Je me connecter au ftp
    je copie le fichier.txt sur dans un dossier sur le serveur

    Voila ce que je dois faire mais j'essai déjà de copier le fichier.tx d'un dossier à un autre.

  8. #8
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 419
    Points : 2 178
    Points
    2 178
    Par défaut
    déjà es tu capable de faire un ficher bat qui fonctionne?

    https://www.developpez.net/forums/d1...l/#post7886239

  9. #9
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par joss_villiers Voir le message
    Après vérification il n'y a pas de souci avec la chaîne de caractère je tester en ligne de commande.
    Ca veut dire que si tu copies cette chaine dans l'invite de commande par un simple copier/coller, l'exécution se passe sans problème et le fichier se copie correctement ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  10. #10
    Membre régulier
    Homme Profil pro
    Développeur JAVA & PHP
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur JAVA & PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Ca veut dire que si tu copies cette chaine dans l'invite de commande par un simple copier/coller, l'exécution se passe sans problème et le fichier se copie correctement ?
    Désolé de revenir que maintenant.

    Je suis finalement parvenu à copier un fichier sur un serveur SFTP en utilisant Putty

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
     
    Public Sub SftpPut(ByVal urlFichier As String, ByVal nomFichier As String, ByVal identifiant As String, ByVal password As String)
     
        Const cstrSftp As String = """C:\Program Files (x86)\PuTTY\0.62\pscp.exe"""
        Dim strCommand As String
        Dim pUser As String
        Dim pPass As String
        Dim pHost As String
        Dim pFile As String
        Dim pRemotePath As String
        Dim resultShell As Double
     
     
     
        On Error GoTo ErrorHandler
     
        pUser = identifiant
        pPass = password
        pHost = "monUrl"
        pFile = urlFichier 
        pRemotePath = "/home/"
     
        strCommand = cstrSftp & " -pw " & pPass & " " & pFile & " " & pUser & "@" & pHost & ":" & pRemotePath
     
       'Lancement de la commande
       resultShell = Shell(strCommand, 1)
     
     
       Debug.Print resultShell
     
    ErrorHandler:
     
            If Err <> 0 Then
                MsgBox vbCrLf & Err.Description, , "Error"
     
            End If
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lancer un script shell depuis un script python
    Par freestyler dans le forum Général Python
    Réponses: 18
    Dernier message: 04/10/2011, 09h59
  2. Exécuter un script shell depuis php
    Par allyass dans le forum Linux
    Réponses: 5
    Dernier message: 12/12/2009, 01h14
  3. Réponses: 1
    Dernier message: 15/02/2009, 07h45
  4. écrire dans un script shell depuis perl
    Par painouch21 dans le forum Langage
    Réponses: 1
    Dernier message: 10/02/2008, 14h03
  5. Execution d'un script shell depuis un code C
    Par aproust dans le forum C
    Réponses: 6
    Dernier message: 12/05/2006, 13h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo