VBA: Créez-vous votre module de codes génériques
par
, 14/10/2019 à 06h47 (5588 Affichages)
Salut.
Dans un petit débat initié suite à une discussion sur le forum, il a été question qu'un langage POO (Programmation Orientée Objet), en l'occurrence VB.NET, permettait d'écrire moins de lignes de code qu'en VBA. C'est peut-être vrai et sensible sur de grandes applications, mais ce dont je suis certain, c'est qu'une bonne architecture de code permet en VBA de gagner des lignes, du temps et de la fiabilité.
Souvent, sur le forum, les réponses données ne répondent qu'à la question posée alors qu'elles pourraient être génériques. C'est ainsi que l'on voit fleurir des MsgBox dans une fonction ou que l'on répond en corrigeant quelques lignes dans une procédure longue comme un jour sans pain, alors que la "meilleure" réponse serait de proposer un découpage en petits morceaux (procédures et fonctions à une seule responsabilité). Cette architecture de code, outre qu'elle permet de se passer de variables publiques, de limiter les lignes de déclaration à l'intérieur de la procédure/fonction, a surtout comme avantages de clarifier le code, d'en permettre des tests faciles et pertinents et de favoriser la réutilisation de snippets génériques.
Créez-vous votre module de code générique Excel: Vous y stockerez des procédures et fonctions génériques à réutiliser comme des briques logicielles dans vos codes futurs:
- gain de temps car on ne réinvente pas la roue;
- gain de lignes grâce à la réutilisation du code;
- fiabilisation de vos applis par l'utilisation de code testé et approuvé;
- systématisation de votre approche et de votre programmation.
Pour ma part, j'ai nommé ce module xlTools et il m'accompagne dans tous mes projets. De la même manière, je possède un module Tools plus générique qui stocke mes procédures et fonctions VBA qui ne sont pas spécifiques à Excel. En utilisant la notation pointée, je retrouve rapidement les procédures et fonctions dont j'ai besoin... En systématisant cette façon de faire, je gagne du temps... et de l'argent.
Dans certains de mes prochains billets, je vous proposerai des procédures et fonctions génériques (des snippets) à intégrer dans vos modules. Ils vous rendront la vie plus facile et vous permettront un gain de temps dans l'écriture de vos codes. Par exemple:
- demain matin, je vous proposerai une fonction pour trouver la dernière cellule utilisée d'une feuille Excel;
- mercredi, nous aborderons une fonction pour tester qu'un texte représente bien une date;
- jeudi, 4 fonctions pour le prix d'une, permettant de savoir si une feuille existe dans un classeur, sur base de son nom d'onglet ou de son CodeName, et de la récupérer pour la placer dans une variable.
N'hésitez pas à vous abonner à mon blog pour être certain d'être averti de la publication de mes fonctions génériques![]()