Cours VBA: 1. Introduction – qu’est-ce que VBA?


VBA – Visual Basic for Applications est un langage de script qui est utilisé notamment dans les applications de la suite bureautique de Microsoft, le Microsoft Office (Excel, Word, Access mais aussi Outlook et PowerPoint).

Je ne vais pas vous inonder par la théorie et l'origine de ce langage –  pour cela, il y a d'autres sites (par exemple la page sur VBA dans Wikipédia). On va regarder VBA surtout du point de vue pragmatique: Est-ce un langage difficile à apprendre? Que me permettra-t-il de réaliser? Quel sont les points forts et les points faibles de VBA?

Dans les prochains paragraphes, je vais essayer de répondre rapidement à ces questions – je vais être concis et efficace et vous exposerai mon point de vue basé sur de nombreuses années de développement en VBA. Je vais utiliser le format de Questions (pratiques)/Réponses (pratiques) qui me semble plus approprié qu'une longue prose sur la théorie informatique 😉

Tout ce que vous vouliez savoir sur VBA…

Voici donc une liste des principales questions que les (futurs) utilisateurs de VBA se posent

Et si vous préférez passer tout de suite à la programmation, passez directement au chapitre 2
>> Cours VBA: 2. Première macro Excel en 2 minutes!

À quoi sert le VBA et est-il utile de l'apprendre?

VBA est un langage de script utilisé surtout dans la suite Microsoft Office. Qu’est-ce que cela veut dire? Qu’à la base, VBA sert à automatiser des tâches dans les différentes applications de la suite Office. Mais n’imaginez pas que VBA sert uniquement à copier des tableau Excel d’une Feuille à l’autre. Cela serait très réducteur.

Voici donc quelques exemples de ce que VBA peut faire pour vous (ou à votre place):

  • copier les tableaux, les formules, les formats,… dans vos classeurs Excel
  • ouvrir, sauvegarder, archiver,… vos fichiers Excel, Word, …
  • envoyer des emails (Outlook), trier dans l’ordre aléatoire les diapositives (PowerPoint),…
  • actualiser les tableaux croisés dynamiques, créer les graphiques, créer des tableaux d’amortissement,…

 

Mais aussi… (déjà moins connu):

  • suivre l’activité de l’utilisateur (créer les logs)
  • gérer les droits d’utilisateurs – définir quel (groupe d’) utilisateur(s) peuvent faire quoi dans un classeur Excel par exemple)
  • créer vos propres fonctions utilisables dans Excel même
  • comparer, fusionner, scinder des classeurs Excel selon des règles déterminées

 

De plus, sachez que VBA peut vous servir également (et surtout?) en dehors de la suite Microsoft Office. Vous pouvez donc utiliser VBA aussi pour:

  • créer, renommer, supprimer des fichiers de tout type
  • ouvrir n’importe quel fichier et n’importe quelle application dans Windows
  • télécharger automatiquement des fichiers à partir d’internet
  • modifier la taille de vos photos (en .jpeg)
  • analyser (et extraire) le contenu d’un site internet, remplir des formulaires en ligne,…
  • archiver vos fichiers avec Zip (compression, décompression,…)
  • et encore BIEN plus que cela! Il n’y a presque pas de limite! Je vous invite à consulter la “Bibliothèque des codes sources VBA” pour vous faire une image.

 

Et est-ce utile de l’apprendre? Si vous travaillez quotidiennement avec la suite Office, la réponse est OUI sans hésitation. VBA peut vous économiser énormément de temps et rendre votre vie beaucoup plus facile.

D’autres raisons pour apprendre le VBA:

  • il est plus facile à apprendre que la plupart des langages de programmation
  • si vous voulez impressioner votre boss, vous ne trouverez pas mieux!
  • vous n’avez besoin de rien d’autre que de MS Office: pas besoin de télécharger ou d’installer des outils de développement, etc. Pas besoin de permissions de votre département IT, pas besoin d’environnement de développement,… Vous écrivez votre macro et vous l’utilisez. C’est aussi simple que cela!
  • vos applications sont très portables: dès que quelqu’un a Office installé sur son ordinateur, il pourra utiliser votre application.
VBA est-il difficile à apprendre?

La réponse dépend de la définition du “difficile”… Mais de manière générale, je dirais que VBA est assez facile à apprendre. En tout cas, le début d’apprentissage est assez facile. Et c’est assez addictif: plus vous en savez, plus vous avez envie d’aller loin.

Si on parle de la syntaxe de VBA, elle est tout à fait accessible: elle est lisible et logique. Pas de parenthèses qui sortent de partout, pas de commandes incompréhensibles etc.

Deux ponts à mentionner ici:

  1. La syntaxe est lisible mais elle est en anglais. Ce n’est pas de l’anglais de Shakespeare mais avoir une base d’anglais peut être assez pratique.
  2. Vous avez VBA et sa syntaxe (qui est donc assez facile) d’un côté mais de l’autre côté, il ne faut pas oublier que la logique est importante également. Mais c’est le cas pour n’importe lequel des langages de programmation. Vous devez pouvoir vous orienter dans des boucles, dans les structures “si… alors… sinon…” etc. Mais pas de panique, cela s’apprend aussi. D’ailleurs, on peut dire que la simplicité de la syntaxe de VBA peut vous aider à acquérir cette affinité avec la logique de la programmation qui peut vous servir plus tard dans d’autres langages.

Donc la réponse simple est: NON, VBA n’est pas difficile à apprendre. Et cela certainement en comparaison avec d’autres langages de programmation.

VBA a-t-il encore de l'avenir?

Est-ce que VBA a encore de l’avenir en 2019, dans le monde 2.0 plein de nouvelles technologies, de nouveau langages de programmation, de l’AI,…?

Eh bien, oui! VBA a encore de l’avenir. Ce langage est là depuis de nombreuses années et il le sera encore. Malgré ce que peuvent en penser “les vrais programmeurs”. Et même malgré le souhaite de Microsoft de “passer à autre chose” (par exemple ses essais de remplacer VBA par VSTO ou VSTA).

VBA est tenace et en voici quelques raisons:

  • Sa simplicité de mise en place – pour créer des scripts en VBA, pas besoin des environnements de développement, pas besoins de quoi que soit. Avec Microsoft Office installé, vous pouvez y aller.
  •  Sa simplicité d’utilisation – pour lancer un script VBA, pas besoin d’un serveur, d’une machine virtuelle etc. Quiconque a MS Office installé sur son ordinateur peut lancer les scripts en VBA. Droit au but…
  • Son ancrage dans le monde de travail – on ne s’en rend pas compte mais VBA est très utilisé dans le domaine professionnel. Il y a des entreprises qui tournent grâce au VBA (gestion des données, “reporting”, calculs divers, …). Il y a même des secteurs entiers qui (sur)vivent grâce au VBA, notamment le secteur de finances. Quand Microsoft a commencé avec son idée de remplacer VBA, cela a crée un véritable levé des boucliers dans les grandes entreprises. Réécrire les quantités des scriptes VBA déjà en place serait une tâche gigantesque…
Quels sont les points forts de VBA?

Le “Visual Basic for Applications” a de nombreux avantages indéniables. En voici quelques unes…

  • Facilité de la mise en place: à part Excel (ou une autre application de la suite MS Office), vous n’avez besoin de rien d’autre pour vous lancer. Le code (les macros) peut être développé et exécuté directement dans Excel. Vous n’avez donc besoin de rien d’autre. Pas besoin d’installer des “outils de développement”, des machines virtuelles et d’autres “joujoux” de programmeurs. Le VBE (VBA Editor) est intégré dans toutes les applications de la suite Office (ce sujet sera abordé en détail dans un des prochains chapitres).
  • Facilité de l’utilisation: tout comme la mise en place, l’utilisation d’un programme / une macro en VBA est très simple. Il suffit que MS Office soit installé sur la machine où le script doit être exécuté. Ce qui est très souvent le cas, surtout dans le milieu professionnel.
  • Code facilement lisible: le code VBA est, comme le disent les anglophones, self-explanatory. C’est à dire explicite. En lisant le code en soi, vous pouvez comprendre ce qu’il est censé de faire. Vous ne vous retrouverez pas dans un déluge de parenthèses et des commandes indéchiffrables pour les non-programmeurs. Cela rend son apprentissage plus rapide. Pour le rendre encore plus facilement lisible, il suffit de suivre “les meilleures pratiques” (voir dans un des chapitres suivants) en ce qui concerne l’utilisation des noms de variables.
  • Apprentissage rapide: comme je l’ai déjà mentionné plus haut, VBA est un langage assez facile à apprendre. Certes, vous avez besoin d’un esprit analytique mais du point de vue de la syntaxe, c’est un langage assez simple. De plus, vous gérez chaque fois un seul procès à la fois vue que VBA ne supporte pas le traitement parallèle. Et vous ne devez pas non plus vous occuper de ce qui se passe “dans le moteur” (gestion de la mémoire etc.).
  • Interaction entre les applications Office: VBA est un langage qui est utilisé dans toutes les application de la suite Office et aussi dans le navigateur internet (Internet Explorer / Edge). Et il est très simple d’interagir entre ces applications. Vous pouvez, par exemple, récupérer de l’information sur un site internet, la stocker dans un base de données Access, l’extraire et la traiter dans Excel et pour finir, envoyer le résultat final en PDF dans un email avec Outlook à votre client… Rien de plus facile!
  • Accès à l’environnement de Windows: l’avantage que VBA soit un oeuvre de Microsoft réside également dans la facilité d’accès à l’environnement de Windows. VBA vous permet de gérer facilement des fichiers (copie suppression, modification, archivage en Zip…) et accéder à de nombreuses informations sur le système (taille et place disponible sur les disques, résolution de l’écran, options de langue,…). Si vous combinez cet avantage avec les autres (facilité de mise en place et de l’utilisation), vous verrez que vous pouvez créer des applications très puissantes (et même complexes) sans les “désavantages” de la gestion IT classique. La création et le déploiement sont très facile et surtout très rapides!
  • Flexibilité du code: la flexibilité de VBA vous permet d’arriver au même résultat par des chemins différents. Chacun peut donc adopter une manière de programmer qui lui convient le mieux.
  • Et bien plus encore…
Et les points faibles?

Comme partout, tout n’est pas parfait dans le meilleur de monde. Ainsi, VBA a également ses limitations. En fonction de la nature de votre projet, il vous faudra parfois choisir une autre solution. Ou trouver une manière de contourner les limitations de VBA.

Voici les principaux points faibles de VBA (liste non exhaustive):

  • Traitement séquentiel: en VBA, vous ne pouvez pas lancer plusieurs procès en parallèle. Le programme VBA ne peut faire qu’une seule chose à la fois. Ceci peut parfois rendre le programme plus lent mais en soi, pour les projets qui sont le plus souvent développés en VBA, cela ne pose pas de problème.
  • Renommé dans la communauté des programmeurs: les “vrais” programmeurs vous diront que “VBA n’est qu’un langage de script et donc ce n’est pas vraiment un langage de programmation“.  Ce n’est pas faux. Mais en même temps, qui a envie d’utiliser Java quand ce n’est pas nécessaire? De plus, la grande majorité des gens, les “vrais programmeurs” inclus, ne connaît pas la moitié de ce dont VBA est capable. En sous-estimant ce langage, la plupart des gens ne vont pas assez loin que pour voir que les possibilités de VBA sont vraiment larges. Et puis, les “vrais programmeurs” ne vont pas jouer contre leur propre camp (et portefeuille) en admettant que VBA peut résoudre de nombreux problèmes. Pourquoi résoudre un problème “gratuitement” en 5 jours en VBA quand on peut le résoudre en un mois en Java pour plusieurs milliers d’euros, n’est-ce pas? 😉
  • Interfaces graphiques limités: en effet, c’est pas en VBA que vous allez développer des jeux vidéos ou de belles “apps”. Éblouir l’utilisateur avec une superbe interface graphique n’est pas vraiment le but des programmes en VBA. Vous avez à votre disposition votre créativité dans les Feuilles Excel ou vous pouvez utiliser les Formulaires VBA. Et ne vous laissez pas trahir par le nom peu engageant. Il y a moyen de faire de belles applications en VBA. Voyez vous-mêmes dans la sections des Outils Excel à télécharger.
  •  Dépendances:
  • Il y en a probablement d’autres mais on fait avec! 😉
Par où commencer...?

Vous avez plusieurs possibilité pour commencer:

  • VBA est un langage parfait pour l’apprentissage “essai-erreur”. Il vous suffit alors d’utiliser le “Enregistreur des macros” et jouer avec le code qui en ressort.
    Enregistreur de macros Excel

    Enregistreur de macros Excel

  • Vous pouvez aussi choisir un des livres de la sélection que j’ai faite pour vous – vous y trouverez les meilleurs des ouvrages sur Excel et VBA.
  • Mais le plus simple sera quand même de suivre ce Tutoriel VBA gratuit jusqu’au bout!

Voilà, j'espère que maintenant, vous voyez ce que VBA représente, à quoi il sert et quand l'utiliser. Et que vous pouvez estimer si VBA peut vous être utile ou pas. Si vous êtes toujours intéressé, je vous invite à passer au chapitre suivant où vous pouvez directement mettre la main à la pâte!

Table des matières du 'Cours VBA: Droit au but'

  • Cours VBA: Préface – à propos de ce cours VBA en ligne

  • Cours VBA: 1. Introduction – qu’est-ce que VBA? 

  • Cours VBA: 2. Première macro Excel en 2 minutes!

  • Cours VBA: 3. Concepts de base en VBA 

  • Cours VBA: 4. “VBE” – l’éditeur de code VBA

  • Cours VBA: 5. Programmation en VBA

    • Cours VBA: 5.0. VBA & Excel: s'orienter dans un Classeur Excel

    • Cours VBA: 5.1. Manipulation de TEXTE en VBA

    • Cours VBA: 5.2. Calculs en VBA

    • Cours VBA: 5.3. Manipulation des DATES en VBA

    • Cours VBA: 5.4. Utilisation des CONDITIONS en VBA

    • Cours VBA: 5.5. Utilisation des BOUCLES en VBA

    • Cours VBA: 5.6. Les UDF en VBA (User Defined Function)

    • Cours VBA: 5.7. Gestion des ERREURS en VBA

    • Cours VBA: 5.8. Utilisation des FORMULAIRES en VBA

    • Cours VBA: 5.9. Les ÉVÉNEMENTS en VBA (Events)

  • Cours VBA: 6. Programmation avancée en VBA

    • Cours VBA: 6.1. Gestion des FICHIERS en VBA

    • Cours VBA: 6.2. Gestion des RÉFÉRENCES en VBA

    • Cours VBA: 6.3. Ligne de commande en VBA (Shell)

  • Cours VBA: 7. Créer une Application en VBA

  • Cours VBA: 8. Faites du VBA comme un PRO




Être averti lors de la publication des nouveaux chapitres du Cours VBA: "VBA: Droit au but"



Dernière mise à jour: 2019-10-01 00:34:59

25 0

 



Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée.