Microsoft 365 Exécuter un script python depuis vba

ivan27

XLDnaute Occasionnel
Bonjour à tous,
Je suis sous windows 11 pro
Sur mon bureau j'ai un répertoire "dev" avec à l'intérieur, un petit script python "compteur.py".
Si j'exécute directement le fichier, soit par double clics soit depuis une console le code fonctionne bien.
A présent j'aimerais exécuter ce code depuis vba excel. J'ai essayé plusieurs méthodes mais impossible d'exécuter mon script python depuis VBA.
Je n'ai pas d'erreur et je ne sais plus où chercher.

VB:
Sub ExecutePython()
    Dim objShell As Object
    Set objShell = VBA.CreateObject("Wscript.Shell")
    
    Dim PythonExePath As String
    PythonExePath = """C:\Users\it1\AppData\Local\Programs\Python\Python312\python.exe"""
    
    Dim PythonScriptPath As String
    PythonScriptPath = """C:\Users\it1\Desktop\dev\compteur.py"""
    
    objShell.Run PythonExePath & " " & PythonScriptPath, 0, True
End Sub

Merci d'avance pour votre aide
Ivan
 

ivan27

XLDnaute Occasionnel
Rebonjour le forum, jurassic pork,
Ca ne fonctionne pas, quel que soit le code python utilisé.
Voici par exemple un code tous simple qui écrit les valeurs de 3 variables dans un fichier "output.txt".

Python:
from datetime import datetime
import traceback

try:   
    now = datetime.now()

    year_second_digit = str(now.year)[-1] 
    month_second_digit = str(now.month)[-1] 

    ID = f"Z{year_second_digit}{month_second_digit}{now.strftime('%d%H%M%S')}{int(now.microsecond / 1000):03d}"
    DTE = now.strftime('%y%m%d')
    HRE = now.strftime('%H%M')

    with open('output.txt', 'w') as file:       
        file.write(f"{ID}\n")
        file.write(f"{DTE}\n")
        file.write(f"{HRE}\n")

except Exception as e:
    with open('error_log.txt', 'w') as error_file:
        error_file.write(str(e))
        error_file.write('\n')
        error_file.write(traceback.format_exc())
 

wDog66

XLDnaute Junior
Bonjour ivan27, jurassic

Et avec ce genre de code 🤔
VB:
Sub RunPythonScript()
    Dim pythonExecutable As String
    Dim scriptPath As String
    Dim command As String    
    ' Spécifiez le chemin de l'exécutable Python
    pythonExecutable = "C:\Path\To\Python\python.exe"
    ' Spécifiez le chemin du script Python
    scriptPath = "C:\Path\To\Your\Script\script.py"
    ' Construire la commande
    command = pythonExecutable & " " & scriptPath
    ' Exécuter la commande
    Shell command, vbNormalFocus
End Sub

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 964
Messages
2 094 010
Membres
105 912
dernier inscrit
willou3869