Déboguer du code VBA ou des formules de calcul Excel avec ChatGPT (IA)

L’intelligence artificielle (IA) ouvre beaucoup d’opportunités La rédaction automatisée, la traduction et la correction de textes sont des thèmes de prédilection de l’IA. ChatGPT d’OpenAI, disponible librement (pour le moment) excelle dans ces sujets. ChatGPT est également utile pour écrire des programmes ou des formules de calcul Excel.

ChatGPT OpenAI Accueil

A titre de démonstration, l’article qui suit va proposer à ChatGPT un code VBA comportant plusieurs erreurs. L’objectif étant d’obtenir un code débogué.

Voyons comment ChatGPT résout un jeu des trois erreurs…

Le code VBA comportant les trois erreurs :

For i=100 To 0
     Range("A"i).Value=i
Next i

ChatGPT a bien détecté des anomalies et proposé un code corrigé ainsi qu’une amorce d’explication :

ChatGPT Débog VBA 1

1ère anomalie : opérateur de concaténation (&) absent

ChatGPT a repéré que l’opérateur de concaténation (l’esperluette : &) est absent de la ligne :

Range(“A” i).Value=i

Et propose en conséquence :

Range(“A” & i).Value=i

La première erreur est donc corrigée et une explication appropriée est fournie.

2ème anomalie : boucle compteur décroissante dépourvue de STEP (pas) négatif

La boucle compteur FOR… TO… NEXT fait varier la variable i de 100 à 0. Il s’agit d’un décompte décroissant. Or par défaut, le pas d’incrémentation est de 1 (donc croissant). La boucle n’est donc pas en état de s’exécuter.

ChatGPT corrige cette erreur de programmation en ajoutant l’instruction STEP -1 au code mais sans signaler la correction, ni la documenter.

Pour en savoir plus sur les boucles compteur : cf le 6ème volet de la formation gratuite à l’analyse de données avec Excel.

FOR TO NEXT

3ème anomalie : ligne 0

La boucle compteur fait varier la variable i de 100 à 0. La fonction Range se sert de cette variable pour écrire dans la cellule située à la croisée de la colonne A et de la ligne représentée par la variable i. Or lorsque la variable i prend la valeur 0, Excel renverra un message d’erreur, la ligne 0 n’existant pas.

Curieusement ChatGPT analyse que la boucle doit aller de la ligne 100 à 1 :

Ce code attribuera la valeur de “i” à la cellule correspondante dans la colonne A pour chaque itération de la boucle For, en allant de la ligne 100 à la ligne 1.

…sans pour autant signaler l’anomalie dans le code, ni le corriger puisqu’il maintient “TO 0”.

La troisième anomalie n’est donc pas corrigée par ChatGPT.

Conclusion

ChatGPT se révèle utile pour déboguer du code VBA même s’il n’est pas parvenu à totalement débarrasser le code VBA de l’ensemble des erreurs.

For i=100 To 1
     Range("A" & i).Value=i
Next i

Cette IA est capable des mêmes prouesses avec d’autres langages informatiques y compris des formules Excel.

Microsoft, qui a investi dans le projet ChatGPT d’OpenAI, va intégrer progressivement GPT dans ses produits, à commencer par son moteur de recherche Bing et son logiciel de visio et messagerie instantanée Teams.

Bing ChatGPT

Pour obtenir de l’aide ou se former à Excel :

L’hebdomadaire Le 1 hebdo consacre son numéro actuellement en kiosque (n° 432, 1er février 2023) à l’intelligence artificielle en titrant “L’IA va-t-elle nous remplacer ?“.

Le1hebdo n° 432 (1er février 2023) L'IA va-t-elle nous remplacer ?

Le1hebdo n° 432 (1er février 2023) L’IA va-t-elle nous remplacer ?

Ce numéro apporte un éclairage pertinent sur l’IA et la place de l’Homme dans un environnement de plus en plus technique et de moins en moins humain…

___

Pour approfondir le sujet : utiliser ChatGPT et se former à l’IA ; tous les articles en rapport avec l’intelligence artificielleChatGPT

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.