Accueil | Ce site | CV | Excel | Livre dor | Macros XL4 | Modèles | VBA
Certaines règles dans lécriture du code et la façon de nommer les variables aident à repérer certaines erreurs comme les fautes de frappe ou les mots non reconnus par léditeur.
Tous les mots-clefs de VBA ainsi que les noms de propriétés, d'événements et de méthodes sont construits selon le même principe : chaque composante du mot commence par une majuscule, quil s'agisse dun mot simple (Name, Workbook, Cell, ) ou composé (ActiveWorkbook, ScreenUpdating, BeforeClose, ).
Quelle que soit la combinaison de minuscule(s) et majuscule(s) utilisée pour lécriture du code, la typographie normale (majuscule en début de mot) est rétablie lors de la validation de la ligne.
Ainsi, que lon entre WORKBOOK, workbook ou WoRkBoOk, le résultat final sera toujours Workbook. Par contre, en cas de faute de frappe, workbok par exemple (un "o" manquant), le mot nest pas transformé.
Cest également le cas si un mot nest pas reconnu. Cela se produit typiquement lorsquon travaille avec plusieurs versions dExcel : si lon tente dutiliser sous Excel 97/98 une propriété apparue avec Excel 2000/2001, léditeur ne peut la reconnaître.
La transformation est donc une information. Son absence indique une faute de frappe, ou que le mot nexiste pas.
Par conséquent, lors de la frappe du code, il ne faut SURTOUT PAS essayer de respecter la structure des mots VBA : workbok et Workbok contiennent la même faute de frappe ("o" manquant), mais lerreur est plus facile à repérer dans le premier cas, grâce à labsence de majuscule.
Par conséquent, il est vivement conseillé de toujours taper le code en minuscules, car cela aide à repérer les fautes de frappe et les mots non reconnus.
À condition que celles-ci aient été préalablement déclarées, le même principe sapplique également pour les noms de variables :
Si une variable NbLignes a été déclarée, la saisie de nblignes ou de NBligNes aboutit à la graphie NbLignes.
Cest pourquoi il est recommandé de construire les noms de variables en utilisant également une majuscule au début des mots, afin de bénéficier des mêmes avantages.
Le fait que ce mécanisme ne fonctionne que pour les variables ayant été déclarées, est une raison supplémentaire pour choisir Option Explicit dans les préférences de VBA.
Nous venons de voir que lemploi dau moins une majuscule dans les noms de variables permettait par une simple vérification visuelle de repérer les fautes de frappe.
Par ailleurs, la façon de nommer les variables a dautres conséquences. Certains développeurs, peut-être pour rendre leur code plus concis, usent (selon moi abusent) de noms abrégés.

Fig. 1 - Exemple de menu, avec 6 articles.
Par exemple, pour définir un menu ayant 6 articles (figure 1), ils utiliseront les déclarations suivantes :
Dim M1 As Object, A1 As Object, A2 As Object, A3 As Object, A4 As Object, A5 As Object, A6 As Object
M1 désignant le premier menu créé, A1 le premier article de menu,
Cette approche économise la frappe de quelques caractères, mais demande un effort de mémorisation non justifié selon moi. Il est facile de se rappeler que A3 correspond au 3ème article de menu, beaucoup moins quil sagit des corrections à apporter à la proposition de planning faite par lapplication.
Pour ma part, je préconise de choisir des noms de variables suffisamment évocateurs. Voici ceux que jai utilisés pour ce menu :
Dim MPlanning As Object, Propal As Object, Contraintes As Object Dim Corrections As Object, VerifCH As Object, Validation As Object, CopiePlanning As Object
Enfin, pour éviter toute ambiguïté, il ne faut JAMAIS donner à une procédure ou à une variable, un nom correspondant à un mot-clef, une propriété, une méthode ou un événement.
Le français étant une langue accentuée, javais pris l'habitude dans Excel dutiliser des noms comme Arrêt, Arrivée, Départ, Données, aussi bien dans les feuilles de calcul que dans les macros XL4.
Quand jai commencé à utiliser sérieusement VBA en 1997, jai constaté des comportements bizarres, en particulier des appels de procédures qui semblaient ne pas fonctionner. Je me suis alors rendu compte que cela se produisait quand le nom de la procédure comportait un accent.
Depuis lors, jévite systématiquement les caractères accentués dans les noms de procédures et dans celui des variables.