DEBUTER AVEC VISUAL BASIC POUR APPLICATIONS (VBA5) Auteur: Christian Herbé Date

DEBUTER AVEC VISUAL BASIC POUR APPLICATIONS (VBA5) Auteur: Christian Herbé Date: Décembre 1999 MAJ: Juin 2001 Le présent document est un support de cours. L'objectif de la formation est d'aider les stagiaires à prendre en main ce langage. Puisque l'utilisateur a la possibilité d'enregistrer ses actions, on se limitera ici à l'étude du code permettant le contrôle et l'intervention dans le déroulement des programmes. Retour à l'accueil Pourquoi le terme de macro ? Historique du langage Quelques mots sur la Programmation Orientée Objet (POO) Comment situer VBA parmi les autres langages ? Comment choisir un langage de programmation ? Prise en main de l'éditeur VBA5 Premières macros Enregistrement et sauvegarde des programmes Intervention de l'auteur dans le code des programmes Les variables Portée et durée des variables Références des cellules Structurer les projets Les boucles Tant Que (Do ... Loop et While...Wend) La boucle "pour ... suivant" (For ...Next) La boucle "pour chaque ... suivant" (For Each ...Next) Les conditions Si ... Alors ...Sinon (If ... Then ... Else) La structure Select Case L'instruction GoTo Les boîtes de dialogue Les opérateurs logiques La gestion des erreurs Un peu au delà de l'iniation: Les boîtes de dialogue personnalisées ou Userform Communiquer avec le port série (RS232) Programmation événementielle Pourquoi le terme de macro ? Macro sous entends macro commandes c'est à dire un ensemble de commandes destinées à réaliser une ou plusieurs actions sans intervention de l'utilisateur. Les macros sont aux logiciels ce que les scripts ou "batchs" sont aux systèmes d'exploitation. Très souvent, dès qu'un logiciel comporte un nombre important de commandes ou de fonctions distinctes, il est accompagné d'un langage de macro programmation . MS Office ne déroge pas à cet usage. La particularité d'une macro est d'être "attachée" à un logiciel spécifique. Il est impossible de l'exécuter depuis un autre logiciel que celui qui l'a créée ( il y a cependant une exception partielle avec VBA5). Historique du langage. Le 1er tableur de Microsoft, Multiplan, était déjà doté d'un langage de programmation. Son successeur, Excel mais également les autres applications de bureautique ont bénéficié d'un tel outil. Jusqu'à la version 4 d'Excel, la macro programmation consistait à écrire une suite de fonctions dans une feuille spécifique. Les fonctions ou mots clés des macros avaient la même syntaxe que les fonctions du tableur. Le code ainsi écrit était exécuté séquentiellement c'est à dire ligne par ligne et n'était en aucun cas transposable à une autre application Microsoft. Dans le même temps, MS proposait des langages de proprammation destinés à écrire des programmes autonomes ou directement exécutables depuis un système d'exploitation (on parle alors de langages compilés). Ces langages étaient aussi de type séquentiels jusqu'à QuickBasic inclu. Les langages séquentiels étaient assez bien adaptés aux systèmes dit de "commandes en lignes" comme MS-DOS mais il était difficile de développer des applications graphiques. Au début des années 90, la firme de Seattle a donc proposé un nouveau langage pour le développent d'applications autonomes: Visual Basic (VB). Il est conçu pour programmer dans un environnement graphique comme Windows. A partir de la version Excel5, MS à remplacé le langage de macro programmation propre à chacune de ses applications par des adaptations de Visual Basic à MS-Office rédigé en "langue étrangères" . Autrement dit, il existait un langage Visual Basic Applications pour chacune des langues dans lesquelles MS-Office était écrit. Cela a contraint Microsoft à écrire un traducteur de macros afin de permettre aux programmes écrits dans une langue d'être exécuté dans une application d'une autre langue. Malheureusement, ce traducteur fonctionna tellement mal que le fabriquant décida de supprimer l'adaptation aux "langues étrangères" c'est pourquoi VBA5 est écrit uniquement en Anglais. Quelques mots sur la Programmation Orientée Objet (POO) La définition d'un objet en programmation est différente de celle des objets de la vie quotidienne puisqu'il s'agit généralement d'objets virtuels. Mais comme dans la vie, un objet a des propriétés et des méthodes. Une voiture a des propriétés: la couleur, la carrosserie, le moteur. Elle a des méthodes: accélerer, freiner, rouler ... Il en va de même pour un objet informatique. Un document Excel a des propriétés:son nom, sa version... Il a des méthodes: ajouter une feuille. On appliquera la méthode "add" à l'objet workbook (document) et l'on déterminera ses propriétés en lui attribuant un nom, des options de protections ... Créer un objet en lui attribuant des propriétés définies s'appelle l'instanciation. L'intérêt de la POO est qu'il n'est pas necéssaire de connaitre toutes les propriétés d'un objet pour l'utiliser mais seulement celles sur les quelles on veut agir. Un objet peut contenir d'autres objets. C'est le cas de l'objet application (Excel par exemple) qui peut contenir les objets worbooks qui eux mêmes peuvent contenir des objets worksheets (feuilles) qui eux mêmes contiennent des objets ranges (cellules ou plages de cellules). On parle alors de conteneurs. Comment situer VBA parmi les autres langages ? Il n'est évidement pas possible de citer tous les langages de programmation. On ne parlera que des outils les plus utilisés à l'INRA. Classement par type de langage: Séquentiel Structuré Intermédiaire POO scripts, shell-scripts et batchs C VB Java macros XL et Word Pascal VBA C++ SAS , S+ VB * basic VBA* Fortran standard * L'appartenance de Visual Basic au groupe POO est quelques fois l'objet de polémiques. Un programme compilé est du code directement lisible par le système . "On parle alors de langage machine". La phase de compilation consiste à traduire du code "intelligible" à l'homme en code binaire. L'élaboration d'un programme compilé comprends donc une étape supplémentaire par rapport aux langages interprétés mais son exécution est plus rapide. En dehors de Java et du C, tous les langages compilés cités ici sont des produits commerciaux. Le code d'un langage interprété est exécuté (interprété) en l'état ou il a été écrit mais son déroulement étant dépendant d'un ou plusieurs logiciels, il est sensiblement plus lent. Les produits dit "interprétés" sont gratuits ou fourni avec leur logiciel "maitre". Classement par type de fonctionnement: interprétés interprétés compilés Dépendent uniquement d'une famille d'OS: Dépendent de l'OS ET d'un logiciel: dépendent généralement d'une famille d'OS Scripts, Shell-scripts et Batchs macros Java (ne dépend pas de l'OS mais d'une machine virtuelle) PERL VBA C , C++ TCL/TK (existe maintenant sur Mac, Win32 et Unix) Fortran , Pascal Basic , Visual Basic Comment choisir un langage de programmation ? On devrait plutôt se demander: comment puis-je me positionner par rapport à tous ces langages tant la question est vaste. Aussi, je me bornerai à donner quelques conseils. Objectif motivation langage correspondan t somme des gradients de difficulté Suivre ou développer ou des applications "lourdes et performantes" dictée par la profession C++ 200 Applications lourdes et portables sur diverses plateformes dictée par la profession Java 200 Applications de toutes natures Enrichir son CV C++ et/ou Java, VB 180 Applications durables, moyennement compliquées C++ ou Java ou VB 150 petites applications performantes et agréables, demandant un temps d'apprentissage raisonable VB, TCL/TK 100 Applications très spécialisées (Stats, BDD ...) répondre à un besoin spécifique VB, VBA, macros, scripts, SAS ou S+ 100 Automatiser des tâches repétitives, faciliter l'usage d'un logiciel répondre/anticip er des besoins particuliers VBA, macros, scripts 60 Lang ages Avantages Inconvénients C++ Un des plus performants, portable moyennant qlq aménagements ardu, assez cher Java Gratuit, très répandu, portable sur Unix, Win32 et Mac. Ne présente pas de difficultés pour les personnes qui connaissent déjà C, C++ parfois lent pour des applications lourdes, le code pour le graphisme est complexe Visua l Basic Relativement facile à apprendre. Prix abordable Reservé exclusivement aux PC, sa toute relative simplicité peut entrainer des erreurs graves et compliquer le développement TCL/ TK, PERL , shell- script s gratuits, rapidité d'apprentissage pour de petites applis et performants, surtout le graphisme sous TCL/TK très dépendants d'un OS y compris dans la syntaxe donc difficiles à distribuer VBA Pas d'achat supplémentaire, la solution la plus facile à apprendre. Un excellent tremplin vers un langage plus difficile. dépend de MS-Office dans sa version actuelle donc ne tourne pas dans les versions antérieures. Comme tous les langages MS, son avenir est incertain SAS, S+ Ce qui se fait de mieux dans le traitement de données. Apprentissage accessible à tous. Très répandus dans le domaine scientifique mondial et les grandes entreprises 2 logiciels chers. Sans intérêt en dehors du traitement de données.Leur langage respectif commence à vieillir. Prise en main de l'éditeur VBA5 On accéde à l'éditeur depuis les menus d'application MS-Office, XL pour ce qui nous concerne: menbu Outils puis Macros puis Visual Basic Editor ou en appuyant simultanément sur ALT+F11. L'écran est divisé en cadres.L'explorateur de projets liste les documents ouverts et leur compositions (feuilles, modules ...). La fenêtre de propriétés indique les propriétés du document sélectionné. Si la fenêtre de code n'est pas à l'écran, double-cliquez sur ThisWorkbook dans l'explorateur d'objets. Nous verrons plus tard comment appeler d'autres eléments de l'éditeur VBA5. L'explorateur d'objet a 3 boutons qui permettent de se déplacer dans les objets. L'éditeur est semblable à un petit uploads/S4/ debuter-avec-visual-basic-pour-applications.pdf

  • 31
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mar 10, 2021
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 0.1814MB