Impossible de lancer un script Python depuis VBA

Bonjour à tous,

je suis en stage et on a donné comme mission de trier des fichiers txt grâce à des scripts python et d'en ressortir un graphique.

Mon objectif serait de tout regrouper dans un excel et que la personne n'est pas besoin d'en sortir pour exécuter le script. J'essaye donc de creer un bouton qui lancerait l'exécution de mon script python depuis mon excel. Malheureusement, j'ai une erreur qui s'affiche :

4

J'ai essaye de fouiller tout ce qui pouvait se dire sur internet. La plupart des forums me ressortent ce code pour palier à ce probleme.

Voici ce que j'ai écrit et la source de l'erreur :

5

Si quelqu'un a déjà rencontré le même problème, ca serait vraiment sympa de m'aider ou m'éclairer !

Bonjour,

Tu travailles évidemment sous Windows...

Remplace objShell par AShell dans ta déclaration des variables !?

Cdlt.

oui je travaille sur windows, cela pose un probleme ?

J'ai changé le nom de la variable et j'ai toujours le meme souci.

Bonjour,

je n'ai pas de problème avec cette syntaxe.

essaie simplement ceci

sub tonsub()
  shell tacommande
end sub

Par contre je pense qu'il faudra revoir la suite du programme.

Quand vous dites tacommande c'est le chemin pour acceder au fichier ?

bonjour,

c'est la commande shell (dos) que tu veux exécuter, ce que tu aurais mis après le ashell.run. Si tu veux plus d'aide, merci de mettre a minima ton code sous forme de texte editable et non pas une copie d'écran.

Voici mon code

Sub Bouton4_Cliquer()
 Dim AShell As Object
 Dim PythonExe, PythonScript As String
 Set AShell = VBA.CreateObject("Wscript.Shell")
 PythonExe = """C:\Users\SESA599621\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\python3.7"""
 PythonScript = : "C:\Users\SESA599621\Documents\Projet log Facebook\Trier.py"
 AShell.Run PythonExe & PythonScript
End Sub

Faudrait que j'écrive ceci à la place de AShell.run ?

Shell(PythonScript) 

Bonsoir,

as-tu vérifié que la commande dont tu demandes l'exécution fonctionne correctement à partir d'une fenêtre de commande ?

si oui, ceci devrait fonctionner, (edit : fonctionne chez moi)

Sub Bouton4_Cliquer()
    pypgm = "python.exe"
    Shell pypgm & " ""C:\Users\SESA599621\Documents\Projet log Facebook\Trier.py""", vbNormalFocus
End Sub

Bon le code ne marche pas, j'ai ceci comme message :

7 6

Quand je teste sur la fenetre de commande j'ecris même cette commande avec les triples guillemets ?

bonjour,

voir correction de mon message précédent

voici le commande à tester dans une fenêtre de commande (une seule ligne)

c:>C:\Users\SESA599621\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\python3.7 "C:\Users\SESA599621\Documents\Projet log Facebook\Trier.py"

mettre des guillemets car ton nom de programme contient des espaces.

Bonjour,

Effectivement cette commande marche bien sur mon invité de commande.

Comment est ce possible que cela ne marche pas sur excel ?

bonjour,

ceci fonctionne-t-il ?

sub test()
shell "cmd",vbnormalfocus
end sub

cette commande devrait ouvrir une fenêtre de commande.

Bonjour quand je lance votre script j'ai toujours le même problème.

capture

J'ai l'impression que mon vba n'aime pas la commande Shell ...

Bonjour,

j'ai également l'impression qu'il s'agit d'un problème avec Shell sur ta machine.

Qu'est ce que vous me conseillerez de faire ? J'ai cherché sur tous les forums mais je ne trouve pas de solutions

bonjour,

une dernier essai, devrait fonctionner si une application par défaut est associée à l'extension .py

Sub executer()

    CreateObject("Shell.Application").Open """C:\Users\SESA599621\Documents\Projet log Facebook\Trier.py"""
End Sub

Bonjour,

cela produit toujours l'erreur "Erreur d'exécution '429' Un composant ActiveX ne peut pas créer d'objets" ...

11

Bonjour,

peut-être as-tu un paramétrage de la sécurité pour activeX à adapter, regarde dans les options excel.

Rechercher des sujets similaires à "impossible lancer script python vba"