Dix conseils pour coder des macros VBA Excel

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, broches et mutile votre feuille de calcul, vous avez de la chance à moins d'avoir suivi cette astuce.

2 - 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 façon dont votre patron sera surpris quand il charge votre macro, puis Ctrl-C ajoute un aléatoire nombre à la moitié des cellules de sa feuille de calcul.

instagram viewer

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

Voici quelques combinaisons de touches courantes que vous ne devez jamais attribuer à des raccourcis de macro car les utilisateurs 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 (Refaire / 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 en cas de doute, 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 de macro par défaut)? Les noms ne vous disent rien? Étant donné qu'Excel rendra les macros de tout classeur ouvert disponibles pour tous les autres classeurs qui sont actuellement ouvert, le plus simple est de créer votre propre bibliothèque de macros avec toutes vos macros dans un classeur. 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 accroc. " Matthew dit que cette conception facilite le partage et la réutilisation des macros entre les classeurs (et entre différents gens).

4 - Et pensez à 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 tous les groupes fonctionnels qui vous conviennent et ajouter du texte à la feuille de calcul pour expliquer ce qu'ils font. Vous ne vous demanderez jamais ce que fait réellement une macro au nom cryptique.

5 - La nouvelle architecture de sécurité des macros de Microsoft a été considérablement améliorée, mais il est encore plus pratique de dire à Excel de faire confiance aux fichiers de certains dossiers sur votre ordinateur (ou sur 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 de créer une sélection de cellules dans la macro. Supposez plutôt que les cellules que la macro utilisera ont été présélectionnées. Il vous est facile 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 risque d'être plein de bugs et difficile à programmer. Si vous voulez programmer quoi que ce soit, essayez de comprendre comment écrire du code de validation pour vérifier si une sélection appropriée a été effectuée à la place dans la macro.

7 - Vous pourriez penser qu'Excel exécute une macro sur le classeur qui contient le code de 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 revenir à l'éditeur Visual Basic, Excel exécute la macro sur le second classeur. "

8 - Matthew suggère que «pour faciliter le codage des macros, essayez d’organiser vos fenêtres de manière à voir la fenêtre Excel et Visual Fenêtre de l'éditeur de base en même temps, côte à côte. "Mais Excel ne le fera pas, (Tout organiser dans le menu Affichage organise uniquement Classeurs. Visual Basic est considéré comme une fenêtre d'application différente par Excel.) Mais Windows le fera. Sous Vista, fermez tout 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 Snap" pour obtenir des instructions.)

9 - Le meilleur conseil de Matthew: "De nombreux programmeurs trouvent de longues promenades sur la plage ou gober une cruche de Mountain Dew un moyen utile de se vider la tête."

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

10 - 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 le enregistreur de macro et 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, Matthew. «Excel 2010: le manuel manquant». 1 édition, O'Reilly Media, 4 juillet 2010.

instagram story viewer