Remplacer les macros VBA d’Excel par du Python

v2 2e6888545f6eb5bdec545c0bc22570a6 1440w - 2 mars 2024
Remplacez vos macros VBA Excel par du Python vous fera gagner du temps de développement ainsi que de nouvelle fonctionnalités.

Excel est un outil utilisé quotidiennement par tous types de profils, des financiers, aux chefs d’équipes en passant par des particuliers ; chaque profil utilisera Excel selon ses besoins et il n’est pas rare d’avoir à créer ou mettre à jour un grand nombre de données et cela peut très vite devenir répétitif et très long.

Heureusement pour nous, Excel possède son langage de programmation, le VBA pour Visual Basic for Application. Avec le VBA il est possible d’automatiser un grand nombre de chose, comme l’import et la mise à jour de données mais aussi la création de graphique.

Sub SaveWorkshetAsPDF()
Dim ws As Worksheet
For Each ws In Worksheets
  ws.ExportAsFixedFormat xlTypePDF, "C:DesktopTest" & ws.Name & ".pdf"
  Next ws
End Sub

Exemple de macro VBA, cette macro exporte chaque feuille de votre fichier en un fichier PDF unique.

VBA ÇA MARCHE PAS MAL, MAIS ENCORE ?

En développement informatique, il est quasi-systématique d’avoir plusieurs solutions pour un même problème, les macros Excel n’échappent pas à cette règle ! En effet, certes nous avons ce langage de programmation pour créer nos macros mais quelques sont les alternatives ? Sont-elles plus simple à prendre en main et à mettre en place ? Quels sont leurs avantages ? C’est ce que nous allons voir ici.

Un ami nous a tous déjà dit : « avec les macros VBA tu vas gagner un temps précieux, c’est tellement pratique ! » et il n’a pas tord ! Le VBA permet de créer de « petit logiciel » sur-mesure pour vos besoins. Mais aujourd’hui, la technologie a évolué et une très grand nombre d’alternatives beaucoup plus simples à apprendre et à prendre en main existe. Et l’une d’entres elles s’appelle langage Python ; plus d’information à propos du langage ici et 9 raisons d’apprendre ce langage.

Différence entre le VBA et le langage Python

Tout d’abord, le langage Python est un langage interprété, c’est à dire qu’il n’est pas nécessaire de compiler sont programme avant de pouvoir l’utiliser. Ensuite, le langage Python possède l’une des plus grosses communautés tout langage confondu et le Python est utiliser dans beaucoup de domaines d’activités. En connaissant ce langage, il vous sera possible de programmer autre chose que des macros Excel.

A quoi cela pourrait bien vous servir ? Prenons plusieurs exemples :

  • Après avoir traité vos données Excel avec votre macro, il vous sera possible avec Python d’envoyer des e-mails, avec votre document fraichement mis à jour
  • Il vous sera possible de créer des graphique dynamique simplement (exemple ici)
  • Sauvegarder certaines données de votre Excel sur une base de données en ligne (comme des adresses emails, des lieux ou des statistiques relatives à votre fichier)

Enfin, les mêmes lignes de codes Python peuvent être exécutées sur tous les OS sans avoir à changer quoi que ce soit. Windows, Linux et MacOS ont déjà une version de Python disponible par défaut lors du premier lancement. Tous vos collègues pourront donc exécuter votre dernier macro en Python sans aucun problème de compatibilité.

Un exemple

Tout ce qui est possible avec le VBA l’est avec Python. En voici un exemple simple:

'Range par ordre croissant en VBA
Sub SortMultipleColumns()
With ActiveSheet.Sort
 .SortFields.Add Key:=Range("A1"), Order:=xlAscending
 .SortFields.Add Key:=Range("B1"), Order:=xlAscending
 .SetRange Range("A1:C13")
 .Header = xlYes
 .Apply
End With
End Sub

# Range par ordre croissant Python (avec Pandas)
df = df.sort_values(["A1", "B1"], ascending=(True, True))

Avantages du Python sur le VBA

Python est apprécié par sa communauté pour sa simplicité de lecture et s’apprentissage. Concernant les macros, il vous sera plus facile d’apprendre le Python que le VBA.

De plus, Python possède beaucoup de librairies (les librairies sont des fonctionnalités développer par d’autres développeur pour rendre l’utilisation du Python encore plus simple et pratique). et chacune vous permettra d’arriver à vos fins. Quelques librairies connues et très utiles pour la manipulation de données Excel (et autre!):

  • Pandas, pour manipuler des données Excel, CSV, JSON, HTML et autres ; il est d’ailleurs possible d’extraire les données d’un fichier Excel et les enregistrer dans un fichier CSV, JSON ou autre
  • Panel, avec laquelle il vous sera possible de créer des graphiques et des tableaux de bords dynamiques très simplement
  • Folium, qui vous permettra de manipuler des cartes (à la manière de Google Maps)
  • Jupyter Notebook, outil indispensable pour les néophytes ! Grâce à son interface, vous pourrez créer vos premiers programmes en bénéficiant d’aide et de la possibilité de suivre l’exécution de votre programme ligne par ligne. Mais aussi et surtout, partager votre travail ; partager le code bien entendu, mais aussi les données traitées.

Screenshot 2021 12 05 at 13.01.40 - 2 mars 2024

 

Exemple d’exécution de code Python à partir de Jupyter : il est possible de voir ce que chaque ligne accomplie sur vos données

Pour finir, sachez qu’il est possible d’exécuter vos macros VBA à partir de Python. Ce qui signifie qu’il est possible pour un programme Python d’exécuter d’anciennes macros VBA puis de modifier ces mêmes données par la suite. La librairie à utiliser se nomme pywin32.

Conclusion

Changer pour Python sur le court terme peut être coûteux en temps, car même si l’apprentissage est facilité, il est tout de même nécessaire de se lancer et apprendre les bases pour pouvoir modifier et travailler avec ses fichiers Excel. En revanche sur le moyen et long terme, vous serez forcément gagnant, Python vous ouvrira les portes de la programme grand-public et rendra possible beaucoup de vos idées et fantasmes informatiques ; grâce au centaines de tutoriels et de cours en ligne (gratuit ou payant), formez-vous et devenez un membre de la grande famille Python !

Cet article vous a plu ? Partagez-le !

Facebook
Twitter
LinkedIn