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.
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 :
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
Derniers articles parBenoît RIVIERE (voir tous)
- Nouveautés de l’interpréteur de formules de calcul (v1.1) - dimanche 3 novembre 2024
- Dématérialisation de la facturation : nouvelles mentions obligatoires - lundi 28 octobre 2024
- Interpréteur de formules de calcul en Python - dimanche 13 octobre 2024
- Les données de la facturation électronique - mercredi 9 octobre 2024
- VBA/SQL vs Power Query : deux solutions complémentaires - mercredi 2 octobre 2024