Cours VBA Excel : Prérequis

Matériel et esprit requis
Pourquoi faire ce cours ?
Connaître Excel à Fond
Utiliser le bon outil
Avoir une certaine logique dans le sang
Avoir des objectifs
Entraînez-vous

Matériel et esprit requis

Pourquoi faire ce cours ?

Savez-vous exactement pourquoi vous voulez apprendre VBA Excel ? Par curiosité ? Pour vous faire gagner du temps ? Pour en savoir autant que les colègues ? Parce qu'on vous l'a demandé ?

Quelles que soient vos motivations, il est indispensable de savoir ce que VBA va vous apporter, et les domaines dans lesquels il ne vous sera d'aucun secours, ou presque.

VBA est un langage de programmation (Visual Basic) qui va vous permettre d'étendre les fonctionnalités d'Excel, et vous aider à accomplir de longues tâches fastidieuses et répétitives.

Ce n'est pas magique, ce n'est pas sorcier, c'est un outil. Ni plus ni moins. Un outil puissant, mais un outil quand même.

Etendre les fonctionnalités d'Excel

A la base, vous disposez d'Excel. Un utilisateur moyen peut tirer une immense satisfaction de ses fonctions de base. Tout le monde sait élargir une colonne, trier une liste, imprimer ou faire des calculs.

Microsoft, au fur et à mesure des versions, a implémenté des fonctions de plus en plus nombreuses, rendant Excel quasiment incontournable en entreprise.

Et, justement, c'est ce que Microsoft désire : offrir un produit fini qui soit adapré au plus grand nombre d'utilisateurs. Microsoft ne désire pas particulièrement imposer aux utilisateurs d'Excel l'apprentissage d'un langage de programmation.

Excel est donc, en lui-même, fabuleusement puissant, mais vous rendez-vous compte à quel point ?

Connaître Excel à fond

Avant de vous lancer à corps perdu dans VBA, il est nécessaire (indispensable même) de connaître Excel dans ses moindres recoins. En effet, j'ai trop souvent vu des programmeurs en herbe créer des macros compliquées qui ne faisaient que reproduire des fonctions existantes.

Je me rappellerai toujours de cette anecdote :

j'ai été mandaté en entreprise pour former des utilisateurs quotidiens d'Excel à VBA. leurs demandes étaient pointues : il s'agissait de regrouper des données, trier, filtrer. Rien d'évident. Après deux jours de formation, le responsable me recontacta, et m'avoua que deux jours de formation étaient insuffisants.
Il me demanda d'assister l'équipe des nouveaux programmeurs pour parvenir à leurs fins. En discutant devant leur réel problème, je remarquai que ce qu'ils me demandaient ressemblaient assez à un tableau croisé dynamique. Ils me regardèrent en faisant des yeux ronds ... Un QUOI ?

Ils ne savaient pas ce que c'était. En 5 minutes montre en main, je leur montrais (Données/Rapport de tableau croisé dynamique), et ils comprirent immédiatement que c'est exactement ce qu'ils recherchaient. Au revoir VBA; bonjour tableaux croisés !

Et vous, connaissez-vous cette fonction ?

Saviez-vous que vous pouvez protéger la feuille avec le menu Outils/Protection/Protéger la feuille ?

Cette copie d'écran provient d'Excel 2003, qui a plus d'options que les versions précédentes. A propos, connaissez-vous les améliorations apportées par la version XP ou 2003 par rapport à la version 97 ou 2000 ?

Vous saviez peut-être que le raccourci-clavier CTRL-A permet de sélectionner otue la feuille Courante :

Mais saviez-vous que l'on pouvait sélectionner un tableau avec le raccourci CTRL * (l'étoile au dessus du chiffre 9 dans le pavé numérique) :

Dans la version 2003, quand on est dans un tableau, CTRL A ou CTRL * donnent le même résultat : la sélection du tableau.

Mais aussi ...

Ce ne sont là que quelques exemples d'une utilisation plus avancée d'Excel. Si la plupart de ces notions vous sont inconnues ou à peu près, ce serait dommage d'attaquer maintenant VBA.

Pour faire une analogie, imaginons que vous vous achetez une voiture de sport. Vous savez conduire, mais sans plus. Vous essayez un peu de pousser le bestiau, mais vous constatez que dans les virages, les pneus ont tendance à glisser. Que faut-il faire ? Changer les pneus pour mettre des pneus de compétition ? Moi je dirais plutôt que vous avez intérêt à apprendre à conduire (avec vrai professionnel, pourquoi pas), ou en tout cas à vous documenter sur le bolide que vous avez acquis.

Avec Excel, c'est pareil. Pourquoi augmenter encore sa puissance avec VBA (les pneus de compétition) alors qu'en apprenant toutes ses fonctions, ce sera de loin plus efficace.

Ainsi, quand vous maîtriserez Excel pour de bon, ET que même à ce moment-là, vous constatez les manquements d'Excel, ALORS, l'apprentissage de VBA sera :

Vous serez alors un pilote de course talentueux au volant d'une Formule 1 ultra-optimisée. Alléchant, non ?

Utiliser le bon outil

Lorsqu'on doit resserrer une vis, si on a pas de tournevis sous la main, selon les cas, il est possible d'utiliser une cuillère à café. Qu'est ce que j'entends par là ?

Microsoft a inclu plusieurs programmes dans la suite Office. Il ne viendrait à l'idée de personne de rédiger une offre d'emploi avec Excel alors que Word est un traitement de texte assigné à ce genre de tâche.

Je rencontre trop de gens qui maîtrisent Excel sur le bout des doigts, mais qui n'ont jamais mis les pieds dans Access. Access est un système de gestion de bases de données inclu uniquement dans la version professionnelle de Microsoft Office. S'il est vrai qu'on "joue" facilement avec Word, Excel ou Powerpoint sans l'aide qui que ce soit, Access, au contraire, ne se laisse pas apprivoiser aussi facilement ! Il nécessite un véritable apprentissage. Je propose d'ailleurs un cours Access ici.

Mais sachez que cet apprentissage en vaut la peine car Access pourra vous rendre des services insoupçonnés ! Selon ce que vous allez devoir gérer, il est beaucoup plus simple de créer une base de données sous Access que de tenter de concevoir un classeur Excel bourré à ras bord de formules et de VBA.

Si vous possédez Access, vous pouvez regarder ici un exemple d'une base de données professionnelle.

Il est pourtant simple de se tromper d'outil, ou d'hésiter.

Imaginons que vous deviez établir une facture pour un client. Cette facture peut se concevoir avec Word bien sûr, mais également avec Excel ou même avec Access. Le choix du logiciel va dépendre de beaucoup de facteurs.

En bref, il vaut mieux apprendre à connaître Word et Access plus en profondeur que de se laisser hypnotiser par VBA Excel.

N'allez pas penser là que j'essaie a tout prix de vous dégoûter d'apprendre la programmation, ce que je fais dans ce chapitre ressemble à ce que fait le bon chirurgien esthétique lorsqu'il reçoit une patiente. Il va analyser attentivement la situation afin de déterminer si la chirurgie esthétique est la meilleure solution.

Avoir une certaine logique dans le sang

Ca parait évident, mais il est bon de le rappeler : la programmation n'est pas faite pour tout le monde. Il faut avoir à la base un certain esprit analytique. Tout comme il est mieux d'avoir l'oreille musicale si on veut apprendre un instrument de musique. On ne manquera pas de me rappeler que Beethoven était sourd...

Mais ne laissons pas l'arbre cacher la forêt. Une certaine prédisposition est essentielle. Ne prenez pas peur ! Je n'ai pas dit que vous deviez avoir un QI de 250 ! Je dis simplement qu'il vaut mieux être attiré par les domaines dits "scientifiques" pour simplement prendre du plaisir à programmer. Car on parle bien de plaisir.

A quoi bon se lancer dans un domaine ou on ne tirera que de la frustration et une grande fatigue morale ?

En effet, pour un programmeur digne de ce nom, il est quasiment "jouissif" de passer des heures et des heures, des jours, des semaines à peaufiner un programme jusque dans ses moindres détails, et d'en voir le bout : il clique sur un bouton et le programme se déroule exactement comme prévu.

La satisfaction est incommensurable !

L'expérience m'a montré que ce plaisir est très masculin. En effet, les femmes ne sont pas moins douées pour la programmation, mais en retirent généralement moins de plaisir.

Prenons l'exemple d'une voiture : un homme peut ressentir un intense plaisir d'enfant à conduire sa nouvelle voiture, alors qu'une femme considère généralement qu'un véhicule est un truc qui peut l'emmener d'un point A à un point B.

Concernant l'age, je crois bien que c'est dans la tête : j'ai eu dans mes classes des gens de 18 à 70 ans, mais seul l'intérêt fait la différence. Il est indéniable que les jeunes apprennent plus vite, MAIS ... Rappelez-vous votre propre scolarité : l'histoire, la géographie ou les maths par exemple avaient toutes les peines du monde à "rentrer", simplement parce qu'on en voyait pas l'intérêt.

Sachez qu'avec VBA, c'est pareil. Il m'est arrivé de voir des jeunes plein de promesses se lasser d'un cours de programmation simplement parce qu'ils n'en voient pas l'intérêt. A 40 ou 50 ans, on perçoit clairement les avantages, ce qui confère une longueur d'avance aux aînés.

Avoir des objectifs

Vous êtes en poste dans une banque ? Vous manipulez toute la journée de longues et complexes feuilles Excel ? Vous savez que VBA va vous soulager dans vos tâches quotidiennes ? Vous avez même déjà des idées d'applications ?

Félicitations : vous allez progresser à une vitesse vertigineuse !

En revanche, si vous n'utilisez quasiment pas Excel, et que c'est la seule curiosité qui vous pousse à apprendre VBA, l'étude s'avérera plus laborieuse. En effet, il y aura pas mal de concepts pour lesquels vous vous demanderez quelle peut bien en être l'utilité.

Aussi, si vous êtes dans ce cas, je vous recommande vivement de vous créer des objectifs. Gérez quelque chose avec Excel ! Voici quelques idées :

Ou peut être connaissez-vous quelqu'un qui vient de monter son entreprise et qui la gère à la main... Proposez-lui de gérer sa clientèle, ses commandes, ses contacts, ses factures avec Excel.

Dès le moment ou vous exigerez des résultats bien concrets à Excel, vous allez être confronté à la réalité, et des problèmes que vous n'auriez même pas imaginés vont survenir. Il viendra un moment ou Excel en lui-même ne suffira plus, et la programmation VBA vous sera alors d'une grande aide, et le cours sera vraiment plus facile à suivre.

Entraînez-vous

Attention, c'est très important : ne suivez pas le cours comme on fait du vélo. Le vélo, on apprend à en faire une seule fois, et on s'en souvient toute la vie. La programmation , ce n'est PAS pareil !

Vous allez être confronté à un langage de programmation complet, des centaines de trucs et d'astuces, un environnement nouveau à appréhender...

Si vous vous contentez de suivre les leçons les unes après les autres, et qu'a la fin, vous vous dites que vous appliquerez ce que vous avez appris "à l'occasion", ça ne marchera pas : vous allez TOUT oublier. Je dit bien TOUT !

une semaine plus tard, vous en aurez déjà oublié plus de la moitié. un mois pluis tard, il ne subsistera rien de vos connaissances, vous serez bon pour RE-suivre le cours afin de pouvoir l'utiliser !

Donc :

Alors, on y va ?