Lancer l’exécution d’un script Python à partir d’une macro VBA

Le VBA est un langage de programmation fabuleux qui permet d’automatiser beaucoup de tâches. Mais il n’est pas le seul, Python aussi ! Il peut arriver qu’il soit nécessaire de faire cohabiter ces deux langages pour établir une chaîne de tâches totalement automatisée.

Collecte FEC 2024

Par exemple, j’ai développé un module VBA qui collecte et met en forme les fichiers balances générales et les Fichiers des Ecritures Comptables (FEC) de l’ensemble des sociétés du groupe (environ 90 sociétés) en vue de leur traitement par mon programme d’analyse de données (PADoCC_Ecritures).

Toutefois, la collecte de ces fichiers sur les serveurs passe par un script Python (pour la partie serveur sFTP : lire l’article Automatisation & Python : se connecter à un serveur sFTP et télécharger des fichiers) ; tâche que VBA ne sait pas traiter (à ma connaissance) d’où l’interaction nécessaire entre le module VBA et le script Python.

Extrait du code VBA qui lance l’exécution du script Python :

'------------------------------------------------------------------------------------------------------------------------------
'TELECHARGEMENT DES FICHIERS sFTP (balances, fiches tiers et FEC)
'------------------------------------------------------------------------------------------------------------------------------
Sub Exécution_script_Python_sFTP()
    Dim objShell As Object
    
    Set objShell = VBA.CreateObject("WScript.Shell")
    
    'Exécution du script Python en utilisant la ligne de commande
    objShell.Run "python """ & DossierDestinationPAD & "Connexion sFTP.py""", 1, True
End Sub

La ligne VBA qui lance l’exécution du script Python est précédée de la commande objShell.Run :

objShell.Run "python """ & DossierDestinationPAD & "Connexion sFTP.py""", 1, True

Cette ligne VBA équivaut à la ligne de commande (console Windows) :

python "C:\Users\COLDIR01\Desktop\DOSSIERS BR\OUTILS\PADoCC_Ecritures\COLLECTE FEC & BG\Connexion sFTP.py"

L’exécution du script Python déclenche l’affichage de la fenêtre de la console DOS :

Exécution Connexion sFTP.py dans CMD

Au passage, on notera qu’une fois automatisées, ces tâches, sans aucune valeur ajoutée mais hautement indispensables, exécutées plusieurs fois par semaine font gagner énormément de temps par rapport à une collecte manuelle…

Tous les articles en rapport avec le langage Python / le langage VBA

___

Pour approfondir le sujet : se former à la programmation en langage Python pour automatiser ses tâches / formation gratuite à l’analyse de données et à l’automatisation

Share Button
The following two tabs change content below.
Après seize années passées en cabinet d’expertise-comptable et de commissariat aux comptes (où j’ai exercé comme expert-comptable et chef de mission audit), j’ai pris le poste de directeur comptable d’un groupe de distribution automobile en novembre 2014. Au cours de ma carrière, j’ai acquis une expérience significative en audit et en exploitation des systèmes d’information (analyse de données, automatisation des tâches, programmation informatique) au service de la production des comptes annuels et consolidés. C’est cette expérience personnelle et ma passion pour l’informatique que je partage sur ce blog. Mon CV / Réalisations personnelles et projets informatiques / Ma collection / Me contacter

Derniers articles parBenoît RIVIERE (voir tous)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.