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 :

Lancer un script Python à partir d'une Macro VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant finance des marchés
    Inscrit en
    Décembre 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant finance des marchés

    Informations forums :
    Inscription : Décembre 2018
    Messages : 30
    Par défaut Lancer un script Python à partir d'une Macro VBA
    Bonjour,

    Lorsque je créé une macro VBA avec le script suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub RunPythonScript()
     
    Dim objShell As Object
    Dim PythonExe, PythonScript As String
     
    Set objShell = VBA.CreateObject("Wscript.Shell")
     
    PythonExe = "C:\APPLI\Python27\python.exe"
     
    PythonScript = "P:\GDM\Portfolios_Benchmarks_Management\Automation\convertisseur_format_histo_Atlas\convertisseur_format_histo_Atlas.py"
    objShell.Run (PythonExe & PythonScript)
     
    End Sub
    J'obtiens l'erreur ci-dessous:

    Nom : ErreurVBA.PNG
Affichages : 234
Taille : 5,3 Ko

    Avez vous idée pourquoi? Le script python marche parfaitement si on l'éxécute sans le VBA...

    Merci pour votre aide,

    Cdt,

    Ludovic

  2. #2
    Membre averti
    Homme Profil pro
    Consultant finance des marchés
    Inscrit en
    Décembre 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant finance des marchés

    Informations forums :
    Inscription : Décembre 2018
    Messages : 30
    Par défaut Ajouts de quotes
    Si j'ajoute des triples quotes dans les chemins d'accès, je n'ai plus l'erreur:

    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
     
     
    Sub RunPythonScript()
     
    Dim objShell As Object
    Dim PythonExe, PythonScript As String
     
    Set objShell = VBA.CreateObject("Wscript.Shell")
     
    PythonExe = """C:\ProgramData\Anaconda3\python.exe"""
     
    PythonScript = """P:\GDM\Portfolios_Benchmarks_Management\Automation\convertisseur_format_histo_Atlas\convertisseur_format_histo_Atlas.py"""
    objShell.Run (PythonExe & PythonScript)
     
    Dim astring As String
    End Sub
    Cependant le code python ne se lance pas correctement.

    Pourtant si je me place dans le répertoire ou se trouve le xlsm et le .py et que je lance le script python avec python "nomdufichier.py" il fonctionne correctement...

    J'apperçois le texte suivant dans le cmd prompt lorsque je lance la macro vba:

    Traceback: Most recent call
    File P:\GDM\Porfolios_Benchmarks

    Mais le cmd prompt disparait je pense avant qu'il ait la possibilité d'écrire la suite.

    Merci pour votre aide,

    Cdt,

    Ludovic

  3. #3
    Membre averti
    Homme Profil pro
    Consultant finance des marchés
    Inscrit en
    Décembre 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant finance des marchés

    Informations forums :
    Inscription : Décembre 2018
    Messages : 30
    Par défaut Pb résolu
    J'ai résolu mon pb ainsi:

    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
     
    Option Explicit
     
    Sub RunPythonScript()
     
    Dim folder_path, script_name, script_path, commandstring, PythonExe As String
     
    PythonExe = "C:\ProgramData\Anaconda3\python.exe"
     
    folder_path = Application.ThisWorkbook.Path
    script_name = "convertisseur_format_histo_Atlas.py"
    script_path = """" & folder_path & "\" & script_name & """"
     
    commandstring = PythonExe & " " & script_path
     
    ChDir folder_path
    Call Shell(commandstring)
     
    End Sub

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

Discussions similaires

  1. Lancer un script PHP à partir d'une connexion FTP
    Par fveto dans le forum Composants VCL
    Réponses: 1
    Dernier message: 09/06/2015, 20h13
  2. [XL-2010] Lancer invite de commande à partir d'une macro
    Par melof42 dans le forum Excel
    Réponses: 0
    Dernier message: 21/03/2013, 11h25
  3. [XL-2007] Exécution d'un script VBS à partir d'une macro
    Par spidey89 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/09/2010, 15h59
  4. Réponses: 26
    Dernier message: 15/06/2009, 17h02
  5. Réponses: 4
    Dernier message: 28/02/2007, 15h24

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