...

Résumé

Développement d’applications VBA pour Excel

Ce manuel d’autoformation est destiné aux utilisateurs avancés d’Excel souhaitant recourir au langage de programmation VBA pour développer des applications d’entreprise sous Excel version 2019 ou Office 365.

La première partie présente sous forme de fiches pratiques le langage VBA et le modèle objet d’Excel.

La deuxième partie fournit des conseils méthodologiques illustrés d’exemples réutilisables qui aideront le lecteur à améliorer sa productivité et la qualité de ses applications.

...

Dans la collection Les guides de formation Tsoft

P. MOREAU. – Excel 2013 avancé.

N°13812, 2013, 260 pages.

P. MOREAU. – Excel 2013 initiation.

...

VBA pour Excel

...

TSOFT

10, rue du Colisée

75008 Paris

www.tsoft.fr...

Avant-propos

Conçu par des formateurs expérimentés, cet ouvrage vous permettra d’acquérir de bonnes bases pour développer avec Microsoft VBA pour Excel. Il s’adresse à des utilisateurs avancés de Microsoft Excel qui veulent créer des applications utilisant les outils et les objets Excel.

Les versions successives de Microsoft Excel de 2000 à aujourd’hui ont surtout apporté des changements aux commandes de feuilles de calcul d’Excel, notamment dans le domaine de la conversion en pages Web. Le langage VBA n’a pas connu d’évolution au niveau de sa syntaxe depuis Excel 2000, et les rares changements apportés au modèle d’objet Excel ne concernent que des éléments très marginaux que nous n’abordons pas dans ce livre.

Fiches pratiques : ce manuel commence par présenter sous forme de fiches pratiques les « briques de base » de la programmation avec Microsoft VBA pour Excel. Ces fiches pratiques peuvent être utilisées soit dans une démarche d’apprentissage pas à pas, soit au fur et à mesure de vos besoins, lors de la réalisation de vos applications avec Excel VBA.

Méthodologie : une deuxième partie fournit des bases méthodologiques et des exemples réutilisables dans vos programmes. Tous les exemples donnés sont « passe-partout », indépendants de toute version. Nous insistons plutôt sur les aspects « stratégie de la programmation » qui ne doivent pas reposer sur des détails de langage.

Cas pratiques : la troisième partie propose des cas pratiques à réaliser pour acquérir un savoir-faire en programmation VBA pour Excel. Cette partie vous aidera à développer des applications en mettant en œuvre les techniques et méthodes étudiées dans les parties précédentes.

Ces cas pratiques constituent autant...

Conventions typographiques

Actions à effectuer

Les commandes de menus sont en italiques, séparées par des tirets : Fichier – Ouvrir.

Les commandes du ruban sont sous la forme ONGLET – [Groupe] – Commande. Il est possible d’ouvrir la boîte de dialogue du groupe en cliquant sur le déclencheur de dialogue , s’il existe.

Une suite d’actions à effectuer est présentée avec des puces, par exemple :

...

...

Création d’un Programme

...

ENREGISTREMENT D’UNE MACRO

ENREGISTRER UNE SUITE D'OPÉRATIONS EXCEL

Nous allons voir qu’on peut mémoriser une suite d’opérations Excel pour pouvoir répéter cette suite ultérieurement sans avoir à refaire les commandes.

...

ÉCRITURE DES INSTRUCTIONS VBA : L’ÉDITEUR VBA

CRÉER UN MODULE

Depuis un classeur Excel, on arrive à l’écran VBA par la commande Développeur – [Code] – Visual Basic ou Alt+F11. On a vu dans la section précédente comment assurer que la fenêtre de projets soit présente. Elle a au moins une arborescence VBA Project (nom de votre classeur) et celle-ci a au moins une rubrique Microsoft Excel Objects.

–Si le programme que vous souhaitez écrire doit gérer la réponse à des événements concernant une feuille de classeur ou le classeur, les modules correspondants apparaissent dans l’arborescence sous Microsoft Excel Objects. Double-cliquez sur la feuille voulue ou le classeur : la fenêtre de module apparaît.

–Dans les autres cas :

Sélectionnez le projet (clic sur sa ligne dans la fenêtre Projets), puis

Insertion – Module pour un module normal. Les autres choix sont Module de classe et User Form (Boîte de dialogue et module gestion des objets contenus). Ces cas sont traités dans d’autres chapitres, donc plaçons-nous ici dans le cas du module normal.

Une fois le module créé, la rubrique Modules apparaît dans l’arborescence. Pour écrire le programme, développez la rubrique, puis double-cliquez sur le nom du module voulu.

Il faut maintenant créer une procédure. Le menu Insertion a une rubrique Procédure, mais il suffit d’écrire Sub <nom voulu> dans le module.

...

RÈGLES FONDAMENTALES DE PRÉSENTATION

UNE INSTRUCTION PAR LIGNE

La règle fondamentale est d’écrire une instruction par ligne. Lorsque vous tapez sur la touche C, VBA suppose qu’on passe à la prochaine instruction. Cette règle admet deux exceptions qui n’interviennent que très rarement.

...

PROJETS, DIFFÉRENTES SORTES DE MODULES

DÉFINITION

Un projet est l’ensemble de ce qui forme la solution d’un problème (nous ne voulons pas dire « application » car ce terme a un autre sens, à savoir l’objet Application, c’est-à-dire Excel lui-même), donc un classeur Excel avec ses feuilles de calcul, et tous les programmes écrits en VBA qui sont sauvegardés avec le classeur. Les programmes sont dans des modules ; le texte des programmes est affiché dans des fenêtres de code. Il peut y avoir un module associé à chaque feuille ou au classeur. Il peut y avoir un certain nombre de modules généraux. De plus, le projet peut contenir aussi des modules de classe et des boîtes de dialogue créées par le programmeur : chaque BDi a en principe un module de code associé.

Un programme peut ouvrir d’autres classeurs que celui qui le contient ; ces classeurs forment autant de projets, mais secondaires par rapport au projet maître.

LES FENÊTRES DU PROJET

L’écran VBA contient principalement la fenêtre de projet où apparaît le projet associé à chaque classeur ouvert. Chaque projet y apparaît sous forme d’une arborescence (développable ou repliable) montrant tous les éléments du projet. Sous la fenêtre de projet, peut apparaître une fenêtre Propriétés qui affiche les propriétés d’un élément choisi dans la fenêtre de projet ou d’un contrôle sélectionné dans une BDi en construction.

La plus grande partie de l’écran sera consacrée aux fenêtres de BDi en construction ou de code. Comme ces fenêtres sont en principe présentées en cascade, on choisit celle qui est en premier plan par clic dans le menu Fenêtre. On décide de l’affichage d’un tel élément par double-clic dans l’arborescence.

On peut faire apparaître d’autres fenêtres par clic dans le menu Affichage. C’est le cas des fenêtres de (l’Explorateur de) Projets, Propriétés, Explorateur d’objets, Exécution, Variables locales et Espions, ces trois dernières servant surtout au dépannage des programmes.

Le menu Affichage permet de basculer entre l’affichage d’un objet (comme une...

OPTIONS DE PROJETS

LA COMMANDE OUTILS-OPTIONS

Cette commande concerne les projets par ses onglets Général et Ancrage. L’onglet Ancrage décide quelles fenêtres vont pouvoir être ancrées c’est-à-dire fixées en périphérie de l’écran. Ce n’est pas vital. L’onglet Général a plus à dire :

–Le cadre Paramètres de grille de la feuille gère le placement des contrôles sur une BDi construite par le programmeur, donc voir chapitre 6.

– Afficher les info-bulles affiche les infobulles des boutons de barre d’outils.

– Réduire le proj. masque les fenêtres...

LES DIFFÉRENTES SORTES D’INSTRUCTIONS

Les instructions VBA se répartissent en instructions exécutables ou ordres et instructions non exécutables ou déclarations.

INSTRUCTIONS EXÉCUTABLES

Ce sont les instructions qui font effectuer une action par l’ordinateur. Elles se répartissent en :

–Instructions séquentielles, telles que l’instruction qui sera exécutée après est l’instruction qui suit dans le texte.

–La principale instruction de cette catégorie est l’instruction d’affectation, de la forme [Set]<donnée>=<expression>, où l’expression indique un calcul à faire. L’expression est calculée et le résultat est affecté à la donnée. En l’absence de Set (on devrait normalement mettre Let, mais il n’est jamais employé), l’expression conduit à une valeur et <donnée> est une variable ou une propriété d’objet ; elle reçoit la valeur calculée comme nouvelle valeur. Avec Set, l’expression a pour résultat un objet et <donnée> est une variable du type de cet objet : après l’instruction, cette variable permettra de désigner l’objet de façon abrégée. À part l’appel de procédures, cette instruction est la plus importante de tout le langage.

– Toute une série d’actions diverses, notamment sur les fichiers (Open, Close, Print#...) ou sur certains objets (Load, Unload...) ou encore certaines opérations système (Beep, Time…). Ces instructions pourraient d’ailleurs aussi bien être considérées comme des appels à des procédures ou des méthodes prédéfinies.

–Instructions de structuration, ou de rupture de séquence, qui rompent la suite purement linéaire des instructions, aiguillant le traitement vers une séquence ou une autre selon des conditions, ou faisant répéter une séquence selon les besoins. Ces instructions construisent donc la structure du programme. La plus importante est :

–L’appel de procédure : on déroute l’exécution vers un bloc d’instructions nommé qui remplit un rôle déterminé. La fin de l’exécution de la procédure se réduit à un retour dans la procédure appelante juste après l’instruction d’appel. Cela permet de subdiviser un programme complexe en plusieurs petites unités beaucoup plus faciles à maîtriser. La plupart du temps, l’instruction se réduit à citer le nom...

LES MENUS DE L’ÉDITEUR VBA

...

...

DIFFÉRENTES FAÇONS DE LANCER UNE PROCÉDURE

PAR INSTRUCTION D’APPEL

Toute procédure peut être appelée depuis une autre procédure (ou fonction) par l’instruction d’appel de la forme :

    [Call] <nom de la proc. appelée> [<arguments éventuels>]

Exemples :

    Traitement     ‘il n’y a pas d’arguments...

MISE AU POINT D’UNE MACRO

Une fois écrite, la macro ne donne pas forcément du premier coup les résultats souhaités. Différents comportements sont possibles au moment où on demande l’exécution pour un premier essai (redonnons d’ailleurs ce conseil qu’on ne répétera jamais assez : sauvegardez le classeur avant de demander l’exécution) :

–le programme peut s’arrêter avant même d’avoir démarré en signalant...

UTILISER L’AIDE

L’aide en ligne est un élément essentiel. Vous devez l’installer complètement. Si vous appartenez à une organisation où l’installation dépend du « Service Informatique », vous devez obtenir qu’il installe l’aide en ligne.

L’aide intervient déjà dans le fait de proposer automatiquement de compléter les instructions lors de leur écriture. De plus, si vous tapez F1 après un mot-clé ou alors qu’il est sélectionné, l’aide sur ce mot-clé apparaît. En outre, les BDi qui apparaissent lors d’un arrêt ont un bouton Aide...

L’EXPLORATEUR D’OBJETS

L’Explorateur d’objets est une extraordinaire source de renseignements, d’autant que la programmation VBA est surtout dépendante des objets de l’application hôte (Excel dans notre cas).

...

...

Structuration des programmes

...