Bonjour,
Je dois réaliser un environnement Excel qui lancerait des programmes en python avec VBA.
Cela fonctionne bien sur mon ordinateur car je connais mon chemin d'accès pour Python.exe, il est en dur dans le VBA.
Cependant, il faudrait que je le généralise sur n'importe quel ordinateur.
Est-il possible de récupérer le chemin d'accès de python. exe dans mon code VBA?
Merci
PS : merci de redirige la discussion si elle n'est pas au bon endroitr.
Merci pour ton aide.
Je viens d'utiliser le code suivant et cela fonctionne. je vais el tester sur d'autres postes pour être sure que c'est compatible ailleurs.
VB:
Sub GetPythonPath()
Dim command As String
Dim output As String
' Construire la commande pour obtenir le chemin d'accès de Python
command = "where python ""import sys; print(sys.executable)"""
' Exécuter la commande et capturer la sortie
output = ExecCmd(command)
' Afficher le chemin d'accès de Python
MsgBox output
End Sub
Function ExecCmd(cmd As String) As String
Dim objShell As Object
Dim objCmd As Object
Dim objOutput As Object
' Créer les objets Shell, Cmd et Output
Set objShell = VBA.CreateObject("WScript.Shell")
Set objCmd = objShell.Exec(cmd)
Set objOutput = objCmd.StdOut
' Lire la sortie de la commande
ExecCmd = objOutput.ReadAll
' Libérer les objets
Set objOutput = Nothing
Set objCmd = Nothing
Set objShell = Nothing
End Function
Comme je le disais, il suffit d'enregistrer le fichier texte sur le bureau de la session Windows active
(donc un SpecialFolder)
PS: Quand je poste un message, je ne pense pas seulement au demandeur mais à tous les potentiels lecteurs de la discussion
Et comme tu as ta propre solution (message#8)
Chaque lecteur prendra le code qui lui sied le mieux.
Donc à toute fins utiles
Ici on enregistre sur le bureau de la session active
VB:
Sub test_python_BIS_OK()
Dim strPath$, strCMD$
Set objShell = CreateObject("WScript.Shell")
strPath = objShell.SpecialFolders("Desktop")
strCMD = "cmd /c where python>" & strPath & "\pPath.txt"
objShell.Run strCMD, 0, True
End Sub