Formation VBA Excel

Apprenez à écrire vos propres macros pour piloter Excel

Ce support de formation s'intéresse au développement de programmes spécifiques appelés « macros », visant à automatiser de nombreuses tâches au sein du tableur Excel. Ce savoir-faire est plus que jamais indispensable pour quiconque travaille continuellement avec des données (la « data science ») et recherche l'efficience.

La particularité de cette formation est d'être abordée à travers les yeux d'un programmeur objet, puisque c'est la maîtrise du modèle objet Excel qui fera toute la puissance des macros que vous écrirez.

Article lu   fois.

L'auteur

Profil Pro

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Cours complet

II. Critique du VBA Excel

Le VBA est un « un roi sans couronne » : c'est une technologie qui a les atouts pour rayonner, ne serait-ce que par l'écrasante domination d'Excel les entreprises, et qui pourtant n'a pas réussi à créer l'engouement, les informaticiens de souche lui ayant même tourné le dos. Dans ce qui suit, je vais essayer d'analyser objectivement cet état de fait.

II-A. Points positifs

  • La programmation VBA Excel est souvent plus ludique à apprendre que d'autres technologie car on obtient rapidement des résultats visuels. En tout cas bien plus que via un simple terminal, où les entrées/sorties sont rudimentaires...
  • Le langage Visual Basic est tout à fait correct (structuration en module, nuance fonction/procédure, système de types, gestion d'erreurs, etc.) et son orientation objet n'a pas à rougir d'autres langages (classes, membres de classes, instanciation, public/private, getter/setter, auto-référence, classe d'énumération, etc.). C'est donc un faux procès que les informaticiens lui font depuis le début.
  • Les interfaces graphiques (appelées « UserForm ») en mode WYSIWYG sont un indéniable gain de productivité, quoi qu'on en pense. Il est de toute façon possible de constuire une IHM entièrement par programmation si le cœur vous en dit.
  • Un programme VBA ne fonctionne pas nécessairement en vase clos. Il est possible d'importer des bibliothèques externes, d'intéropérer avec d'autres applications Microsoft, et surtout d'accèder au Web afin d'y récupérer toute de sorte de donnée ouvertes (« open Data »). En ce sens, d'autres technologies sont beaucoup plus fermées que VBA.

II-B. Points négatifs

  • La communauté historique qui utilise le VBA n'est pas informaticienne de formation. On y trouve pelle-mêle des gestionnaires, des comptables, des secrétaires et des scientifiques d'autres domaines. Il en résulte des tutoriels sans aucun recul sur ce qui est fait et des forums pleins de codes absolument horribles (l'enregisteur de macros est surement passé par là).
  • L'enregistreur de macro (un ovni dans l'univers du développement) a donné l'illusion à des générations entières qu'on pouvait atteindre son objectif sans même écrire une ligne de code. Sauf que ce dernier rejoue bêtement une séquence d'actions déterminées, sans s'adapter à chaque situation. Seul un véritable algorithme est capable de cela.
  • La banalisation des notations par défaut (sous pretexte d'écrire moins), pleins de sous-entendus, fait qu'une même instruction a rapidement plusieurs variantes d'écriture et cela perturbe les débutants. Pire, ces raccourcis syntaxiques sont contradictoires avec les principes de l'orienté objet !
  • L'explorateur d'objet (l'équivalent de la JavaDoc de Java par exemple), l'outil ultime pour programmer, n'offre pas le niveau de rigeur que l'on attend de lui. Parfois contre-intuitif (des procédures pensées comme des fonctions, et vice-versa), parfois inconsistant (des méthodes « hybrides » - fonction et procédure à la fois - selon l'usage) et le plus souvent incomplet (des types de paramètres omis, ou trop vague, comme Variant ou Object).
  • La confusion classe/objet semble entrenue délibéremment. Cela commence par l'explorateur d'objets lui-même, le fort mal nommé, qui est en réalité un explorateur de classes d'objets.

III. Tutoriels vidéos

A venir...

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Licence Creative Commons
Le contenu de cet article est rédigé par Olivier Le Goaer et est mis à disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transposé.
Les logos Developpez.com, en-tête, pied de page, css, et look & feel de l'article sont Copyright © 2013 Developpez.com.