VBA pour Excel L'essentiel ... pour démarrer ! 1 Généralités Visual Basic pour

VBA pour Excel L'essentiel ... pour démarrer ! 1 Généralités Visual Basic pour Applications (VBA) est un environnement de développement calqué sur Visual Basic, un outil de développement d'applications Windows. Tandis que les programmes Visual Basic (VB) sont autonomes, les programmes VBA ne peuvent être exécutés qu'à partir d'une application intégrant cet environnement de développement (Excel ou une autre application). Les programmes VBA sont donc attachés à un document Word, une feuille de calcul Excel et constituent un projet. L'enregistrement de macros constitue une bonne initiation à VB. L'enregistreur de macros mémorise chacune des actions réalisées par l'utilisateur puis les traduit en instructions VB. Il suffit d'exécuter ensuite la macro pour répéter l'ensemble des actions ainsi enregistrées. Si certaines instructions sont spécifiques à l'application (pour Excel par exemple, les instructions permettant d'affecter une formule à une cellule), d'autres sont communes à l'ensemble des applications Office (affichage des boîtes de dialogue pour permettre une interaction de l'utilisateur influant sur le déroulement de la macro, structures de contrôle permettant de réaliser des boucles...) et permettent de créer des macros évoluées qui, attachées aux documents manipulés, constituent de véritables applications répondant à des besoins spécifiques VB Editor est l'environnement de développement intégré des applications Office. Il permet de visualiser, de gérer les projets VBA, d'écrire, de modifier et de déboguer les macros existantes. 1.1 Les Objets de VBA VBA est un langage de programmation orienté objet, c'est à dire qu'il manipule des objets de l'application en cours. Un objet est caractérisé par un nom et possède des propriétés, on peut lui appliquer des méthodes pour modifier son comportement. Ainsi toute feuille de calcul renvoie à la classe sheets (cette classe définie les propriétés associées à toute feuille de calcul et les méthodes qui y sont applicables).Une collection désigne l'ensemble des occurrences (ou instances) d'un objet : la collection Workbooks regroupe l'ensemble classeurs ouverts, la collection sheets toutes les feuilles d'un classeur. 1.2 Les objets sont hiérarchisés Par exemple classeur  feuille  cellule 1.2.1 Accéder aux objets Pour accéder aux objets, il est nécessaire de spécifier le chemin à emprunter (le point est utilisé comme séparateur des différents objets composant le chemin. Ainsi pourra-t-on distinguer la feuille2 du classeur 1 de la feuille2 du classeur2 lorsque l'on souhaitera les rendre actives : workbooks("classeur1").sheets("feuil2").activate (la méthode "activate" est appliquée à la feuille2 du classeur1). workbooks("classeur2").sheets("feuil2").activate (la méthode "activate" est appliquée à la feuille2 du classeur2). Bien entendu, si l'on travaille dans un seul classeur, il sera inutile de préciser l'identité du classeur contenant la feuille et dans ce cas sheets("feuil2").activate suffira. Iufm de Champagne Ardenne - Jacques Bresson - Débuter avec VBA pour Excel page 1/10 1.2.2 Modifier les objets Comme nous l'avons évoqué supra, les objets ont des propriétés. Les occurrences de ces objets se distinguent entre elles par les valeurs associées à ces propriétés. Ces valeurs peuvent renvoyer à différents types : • chaîne de caractères, • valeur numérique • valeur booléenne (true ou false) • constante(se présentant sous forme de chaîne de caractères, mais correspondant à des valeurs numériques) Dans le code Visual Basic, on doit identifier un objet avant de pouvoir changer la valeur de l'une de ses propriétés ou lui appliquer une de ses méthodes (voir infra). Pour modifier une valeur d'une propriété on procède par affectation (objet.propriété=valeur) Sheets("feuille1").name="Résultats" (renomme la feuille1 en Résultats) ActiveCell.Value=5 (la propriété "value" de la cellule active reçoit la valeur 5) 1.2.3 Les méthodes Une méthode permet de modifier une propriété d'une occurrence d'objet. Ainsi par exemple, la méthode Select rend la feuille1 active : Sheets.('feuille1").Select 1.2.4 Les événements Un événement est une action reconnue par un objet. La programmation événementielle est une technique qui consiste à réaliser un ensemble de procédures qui seront déclenchées par des objets appelés à juste titre déclencheur. Un bouton est un exemple type de déclencheur. Par exemple un clic sur le bouton effacera le contenu de cellules. 1.2.5 Les fonctions Les fonctions servent à renvoyer une information, selon les éléments qui leurs sont fournis. VBA fournit des fonctions en standard mais il est possible de construire ses propres fonctions(voir 3.2.2). 2 Les premières macros Comme nous l'avons dit précédemment, l'enregistrement de macros constitue une bonne approche pour apprendre VBA car elles génèrent du code, c'est à dire le texte qu'il aurait fallu saisir en VBA. 2.1 Création d'une macro 1. Ouvrir le classeur "Sofres99.xls" Soit à mettre en gras les intitulés de colonnes sur la plage B5:E5 2. Activer la commande Outils/macros/Nouvelle Macro et renseigner le nom de la macro dans la boîte de dialogue : Remarque : il est possible de saisir une description de la macro et de lui attribuer un raccourci-clavier pour l'exécuter plus rapidement. Iufm de Champagne Ardenne - Jacques Bresson - Débuter avec VBA pour Excel page 2/10 La macro sera enregsitrée pour être "jouable dans le classeur courant. 3. Procéder à la mise en gras manuellement et terminer en cliquant sur le bouton d'arrêt d'enregistrement : 4. Remettre en non gras les cellules et tester la macro Activer pour cela la macro par la commande : outils/macros/macros et exécuter le macro "gras" 5. Constater l'effet de l'action de la macro. 2.2 Structure de la macro Lors de l'enregistrement de la macro, les actions effectuées ont été codée en VB. On peut visualiser le code généré. 1. Choisir Outils/macro/macros (ou directement Visual Basic Editor mais il faudra identifier la bonne macro s'il y en a plusieurs) 2. Sélectionner la macro "gras" 3. Cliquer sur Modifier 4. VB Editor affiche le contenu de la macro dans la fenêtre code : La structure est la suivante : Sub nom_du_sous_programme() ' les commentaires sont précédés d'apostrophes ' Couleur verte pour les commentaires et couleur bleue pour les mots clés du langage Suivent des instructions Suivent des instructions End sub Iufm de Champagne Ardenne - Jacques Bresson - Débuter avec VBA pour Excel page 3/10 Fenêtre code Explorateur de projet Exercice : Dans le classeur Sofres99.xls, enregistrer une macro sélectionne la plage A5:E13 et qui génère un graphique (barres horizontales) dans une nouvelle feuille graphique nommée Missions. 2.3 Lieux de stockage des macros Dans l'exemple précédent la macro a été enregistrée dans le classeur courant, mais il est possible de la rendre utilisable depuis tout classeur, en demandant son enregistrement dans le classeur "perso.xls" lui même stocké dans le dossier office/xlstart (ou xlouvrir) de la machine de l'utilisateur. Il se peut également que l'on souhaite pouvoir diffuser ses applications avec des macros stockées dans un classeur séparé. On choisira alors l'option d'enregistrement "macro complémentaire". Celles-ci seront alors stockées dans un classeur .XLA (voir l'aide en ligne de VBA sur ce thème). On crée ses macros dans un nouveau classeur qui est ensuite enregistré au format XLA. Ensuite, pour tout classeur faisant appel à ces macros, on active la commande : outils/macro complémentaire / parcourir, on sélectionne la feuille xla, toutes ses macros sont alors actives dans le classeur courant. Attention, pour pouvoir consulter l'aide en ligne VBA pour Excel il faut avoir coché l'option correspondante au moment de l'installation d'Office, il faudra relancer l'installation et cocher l'option pour pouvoir en bénéficier, seule l'aide VBA est alors rajoutée, Office n'est en rien réinstallé intégralement... heureusement !). 2.4 Suppression d'une macro, d'un module • Depuis VB Editor en activant le menu contextuel dès lors que le module 1 est pointé dans l'explorateur de projet • Ou depuis la feuille de calcul Excel Outils/macro/macros et cliquer sur le bouton "supprimer" Iufm de Champagne Ardenne - Jacques Bresson - Débuter avec VBA pour Excel page 4/10 2.5 Variante 1 : Mettre en gras les en-tête de colonnes et appliquer une trame grise Provoquer l'enregistrement de la macro comme précédemment... On utilisera la commande Format/cellules pour choisir successivement l'alignement, la police en gras et la couleur de fond. Terminer l'enregistrement de la macro et visualiser le code du sous programme Gras_trame_grise() généré sous VB Editor Les instructions With et End With encadrent l'ensemble des propriétés des objets Font puis Interior. Exercice : Générer une nouvelle macro permettant de d'afficher les libellés en bleu sur fond jaune Dans VB Editor on remarquera que le module 1 s'est enrichi d'un nouveau sous-programme : police_bleue_fond_jaune_centré_vertical() 2.6 Variante 2 : Associer deux sous-programmes 1. Dans VB Editor, il suffit de déposer le point d'insertion à la fin du dernier sous-programme du module 1 et de générer un nouveau sous-programme en saisissant Sub nom du sous-programme suivi de (). 2. Une remarque précisant le rôle de ce sous-programme est ensuite ajoutée derrière l'apostrophe qui précise qu'il s'agit d'une remarque. 3. Suivent les deux instructions qui appellent successivement les deux sous-programmes précédents (Call appelle le sous-programme, peut être omis mais facilite la lecture du code, attention ne pas mettre de parenthèses) 4. Enfin End Sub clôt le sous-programme. En revenant sur la feuille de calcul, la commande Outils/macro/macros permet de constater qu'une nouvelle macro a été réalisée. Iufm de Champagne Ardenne - Jacques Bresson - Débuter avec VBA pour Excel page 5/10 Sous-programme précédent Nouveau sous- programme 2.7 uploads/s3/ 207-apprendre-excel.pdf

  • 26
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager