Dix conseils pour coder les macros Excel VBA

Suggestions de bon sens pour rendre le codage Excel VBA plus rapide et plus facile !

Excel 2010

amazon.com





Dix suggestions de bon sens pour rendre le codage Excel VBA plus rapide et plus facile. Ces conseils sont basés sur Excel 2010 (mais ils fonctionnent dans presque toutes les versions) et beaucoup ont été inspirés par le livre O'Reilly 'Excel 2010 - The Missing Manual' de Matthew MacDonald.

1 - Testez toujours vos macros dans une feuille de calcul de test jetable, généralement une copie de celle avec laquelle elle est conçue pour fonctionner. L'annulation ne fonctionne pas avec les macros, donc si vous codez une macro qui plie, fuse et mutile votre feuille de calcul, vous n'avez pas de chance à moins que vous n'ayez suivi cette astuce.



deux - L'utilisation de touches de raccourci peut être dangereuse car Excel ne vous avertit pas si vous choisissez une touche de raccourci qu'Excel utilise déjà. Si cela se produit, Excel utilise la touche de raccourci pour la macro, pas la touche de raccourci intégrée. Pensez à la surprise de votre patron lorsqu'il chargera votre macro, puis Ctrl-C ajoutera un aléatoire Numéro à la moitié des cellules de sa feuille de calcul.

Matthew MacDonald fait cette suggestion dans 'Excel 2010 - The Missing Manual.'



Voici quelques combinaisons de touches courantes que vous ne devriez jamais attribuer aux raccourcis de macro car les gens les utilisent trop fréquemment :

  • Ctrl+S (Enregistrer)
  • Ctrl+P (Imprimer)
  • Ctrl+O (Ouvrir)
  • Ctrl+N (Nouveau)
  • Ctrl+X (Quitter)
  • Ctrl+Z (Annuler)
  • Ctrl+Y (Rétablir/Répéter)
  • Ctrl+C (Copier)
  • Ctrl+X (Couper)
  • Ctrl+V (Coller)

Pour éviter les problèmes, utilisez toujours les combinaisons de touches de macro Ctrl+Maj+lettre, car ces combinaisons sont beaucoup moins courantes que les touches de raccourci Ctrl+lettre. Et si vous avez des doutes, n'attribuez pas de touche de raccourci lorsque vous créez une nouvelle macro non testée.

3 - Vous ne vous souvenez pas de Alt-F8 (le raccourci macro par défaut) ? Les noms ne vous disent rien ? Étant donné qu'Excel rendra les macros de n'importe quel classeur ouvert disponibles pour tous les autres classeurs actuellement ouverts, le moyen le plus simple consiste à créer votre propre bibliothèque de macros avec toutes vos macros dans un classeur séparé. Ouvrez ce classeur avec vos autres feuilles de calcul. Comme le dit Matthew, 'Imaginez que vous modifiez un classeur nommé SalesReport.xlsx et que vous ouvrez un autre classeur nommé MyMacroCollection.xlsm, qui contient quelques macros utiles. Vous pouvez utiliser les macros contenues dans MyMacroCollection.xlsm avec SalesReport.xlsx sans problème.' Matthew dit que cette conception facilite le partage et la réutilisation des macros dans les classeurs (et entre différentes personnes).

4 - Et envisagez d'ajouter des boutons pour créer un lien vers les macros dans la feuille de calcul qui contient votre bibliothèque de macros. Vous pouvez organiser les boutons dans n'importe quel groupe fonctionnel qui vous convient et ajouter du texte à la feuille de calcul pour expliquer ce qu'ils font. Vous ne vous demanderez plus jamais ce que fait réellement une macro nommée de manière cryptée.



5 - La nouvelle architecture de sécurité des macros de Microsoft a été beaucoup améliorée, mais il est encore plus pratique de dire à Excel de faire confiance aux fichiers de certains dossiers de votre ordinateur (ou d'autres ordinateurs). Choisissez un dossier spécifique sur votre disque dur comme emplacement de confiance. Si vous ouvrez un classeur stocké à cet emplacement, il est automatiquement approuvé.

6 - Lorsque vous codez une macro, n'essayez pas d'intégrer la sélection de cellules dans la macro. Au lieu de cela, supposons que les cellules que la macro utilisera ont été présélectionnées. Il est facile pour vous de faire glisser la souris sur les cellules pour les sélectionner. Le codage d'une macro suffisamment flexible pour faire la même chose est susceptible d'être plein de bogues et difficile à programmer. Si vous voulez programmer quoi que ce soit, essayez de comprendre comment écrire un code de validation pour vérifier si une sélection appropriée a été effectuée dans la macro à la place.



sept - Vous pourriez penser qu'Excel exécute une macro sur le classeur contenant le code de la macro, mais ce n'est pas toujours vrai. Excel exécute la macro dans le classeur actif . C'est le classeur que vous avez consulté le plus récemment. Comme l'explique Matthew, 'Si vous avez deux classeurs ouverts et que vous utilisez la barre des tâches Windows pour basculer vers le deuxième classeur, puis revenez à l'éditeur Visual Basic, Excel exécute la macro sur le deuxième classeur'.

8 - Matthew suggère que, 'Pour faciliter le codage des macros, essayez d'organiser vos fenêtres de manière à pouvoir voir la fenêtre Excel et la fenêtre de l'éditeur Visual Basic en même temps, côte à côte.' Mais Excel ne le fera pas (Tout organiser dans le menu Affichage organise uniquement les classeurs. Visual Basic est considéré comme une fenêtre d'application différente par Excel.) Mais Windows le fera. Dans Vista, fermez tous sauf les deux que vous souhaitez organiser et cliquez avec le bouton droit sur la barre des tâches ; sélectionnez 'Afficher Windows côte à côte'. Sous Windows 7, utilisez la fonction 'Snap'. (Recherchez en ligne 'Windows 7 fonctionnalités Snap' pour obtenir des instructions.)



9 - Le meilleur conseil de Matthew : 'De nombreux programmeurs trouvent que les longues promenades sur la plage ou la consommation d'un pot de Mountain Dew sont un moyen utile de se vider la tête.'

Et bien sûr, la mère de tous les conseils VBA :



dix - La première chose à essayer lorsque vous ne pouvez pas penser aux instructions ou aux mots-clés dont vous avez besoin dans votre code de programme est d'activer leenregistreur de macroset faire un tas d'opérations qui semblent être similaires. Examinez ensuite le code généré. Cela ne vous indiquera pas toujours la bonne chose, mais c'est souvent le cas. Au minimum, cela vous donnera un endroit pour commencer à chercher.

La source

MacDonald, Matthieu. 'Excel 2010 : le manuel manquant.' 1 édition, O'Reilly Media, 4 juillet 2010.