essayant d'appeler un script python sur Vba et je suis un newb. J'ai essayé de convertir le script principal en un exe en utilisant py2exe puis en l'appelant depuis VBA (Shell) mais le script principal appelle d'autres scripts donc ça devient compliqué et je l'ai gâché (mon exe n'est pas fonctionnel) De plus, le script principal est un gros fichier et je ne veux pas trop le réviser.
En résumé, existe-t-il un moyen d'appeler le script principal à partir d'Excel vba, sans convertir le script en un fichier exe.
Jusqu'à présent, j'ai essayé:
RetVal = Shell("C:\python27\python.exe " & "import " & "C:\\" & "MainScriptFile")
Il démarre python.exe mais ne fait rien d'autre. J'ai ensuite essayé:
RetVal = Shell("C:\Windows\System32\cmd.exe " & "python " & "C:\\Python27\\hello.py")
Il démarre l'invite de commande mais ne démarre même pas python.
P.S. J'ai vérifié toutes les questions connexes dans le forum, elles ne résolvent pas mon problème.
Essaye ça:
RetVal = Shell("<full path to python.exe> " & "<full path to your python script>")
Ou si le script python se trouve dans le même dossier que le classeur, vous pouvez essayer:
RetVal = Shell("<full path to python.exe> " & ActiveWorkBook.Path & "\<python script name>")
Tous les détails dans <>
doivent être donnés. <>
- indique les champs modifiables
Je suppose que cela devrait fonctionner. Mais là encore, si votre script va appeler d'autres fichiers qui se trouvent dans des dossiers différents, il peut provoquer des erreurs à moins que votre script ne l'ait correctement géré. J'espère que ça aide.
Il existe plusieurs façons de résoudre ce problème
Pyinx - un outil assez léger qui vous permet d'appeler Python à partir de l'espace de traitement Excel http://code.google.com/p/pyinex/
J'ai utilisé celui-ci il y a quelques années (à l'époque où il était activement développé) et il fonctionnait assez bien
Si cela ne vous dérange pas de payer, cela semble assez bon
https://datanitro.com/product.html
Je ne l'ai jamais utilisé
Bien que si vous écrivez déjà en Python, vous pourriez peut-être supprimer Excel entièrement et tout faire en python pur? Il est beaucoup plus facile de maintenir une base de code (python) plutôt que 2 (python + quelle que soit la superposition Excel que vous avez).
Si vous devez vraiment sortir vos données dans Excel, il existe même de très bons outils pour cela en Python. Si cela fonctionne mieux, faites-le moi savoir et j'obtiendrai les liens.
Vous pouvez également essayer ExcelPython qui vous permet de manipuler Python et appeler le code de VBA.