COURS D’INITIALISATION A LA PROGRAMATION SUR VBA EXCEL Rédigé par BAHI Djedje L

COURS D’INITIALISATION A LA PROGRAMATION SUR VBA EXCEL Rédigé par BAHI Djedje Laurent Narcisse. Spécialiste en Programmation VBA, Adjoint Technique de la Statistique École Nationale Supérieure de Statistique et d’Économie Appliquée (ENSEA) Contacts : 06 23 88 92 / 58 96 92 75 / laurentdjedjebahi@gmail.com FORMATION EJS --ENSEA JUNIORS SERVICES-- Note : Certains documents de programmation VBA-EXCEL PRIS SUR INTERNET ONT PERMIS DE CONCEVOIR CE DOCUMENT SOMMAIRE INTRODUCTION ......................................................................................................................................................... 2 EN ROUTE VERS VBA sur EXCEL ................................................................................................................................ 3 Enregistrement de macro ..................................................................................................................................... 3 COMPRENDRE LES NOTIONS DE LA PROGRAMMATION VBA ................................................................................... 7 MANIPULATION DES OBJETS D’EXCEL ...................................................................................................................... 9 DECOUVRIR VISUAL BASIC EDITOR ......................................................................................................................... 11 Présentation de l’environnement Visual Basic Editor ......................................................................................... 11 PROGRAMMER EN VISUAL BASIC ........................................................................................................................... 12 Présentation de la structure des programmes Visual Basic ainsi que des différents types de procédures ....... 12 Les modules .................................................................................................................................................... 12 Les évènements .............................................................................................................................................. 12 Les procédures ................................................................................................................................................ 12 les instructions ................................................................................................................................................ 19 Débogage et gestion des erreurs ........................................................................................................................ 44 Gestion des erreurs et des exceptions ................................................................................................................ 44 Presentation et exploitation de L’objet « userform » ainsi que de quelques contrôles de la boîte à outils tels que : .................................................................................................................................................................... 47 EXEMPLE COMPLET D’APPLICATION EXCEL-VBA .................................................................................................... 78 CREATION D’UN REPERTOIRE TELEPHONIQUE .................................................................................................. 78 INTRODUCTION Visual Basic pour Applications est le langage de programmation des applications de Microsoft Office. VBA permet d’automatiser les tâches, de créer des applications complètes, de sécuriser vos saisies et vos documents, de créer de nouveaux menus et de nouvelles fonctions pour booster efficacement votre logiciel. Une application réalisée en VBA est complètement liée au logiciel sous lequel elle a été créée (une application VBA créée sous Excel ne pourra pas se lancer sur un poste si Excel n’est pas installé). Avant qu’Excel n’utilise ce langage de programmation, le logiciel utilisait son propre langage de programmation et une application était appelée « macro ». Ce terme est resté, mais bien que cela paraissent très pratique, cette procédure montre ces limites quand il s’agit d’automatiser des tâches plus complexes assorties d’interfaces. Il faut souligner aussi que l’enregistrement automatique d'Excel tend à créer un code de mauvaise qualité, ceci étant dû au fait qu'il enregistre les actions de l'utilisateur, et donc fonctionne selon un mode Sélection / Action. Or la sélection est rarement utile dans une Macro. Le langage VBA est accessible à tous. Cependant, une bonne connaissance d’Excel est nécessaire avant de se lancer dans la création d’application. En effet, il est important de bien maîtriser les principaux objets que manipule VBA, comme les objets Workbook (classeur), Worskheet (Feuille de calcul), Range (plage de cellule), etc. VBA, langage puissant, souple et facile à utiliser permet de réaliser très rapidement des applications qui vous feront économiser du temps et de l’argent. EN ROUTE VERS VBA SUR EXCEL ENREGISTREMENT DE MACRO Cette partie est utile en ce sens qu’ elle nous permet de faire une approche vers VBA grâce à l’enregistreur de macro afin de donner une idée de la structure des codes sous VBA et des principaux éléments d’Excel qui entrent dans la conception d’un programme sous VBA EXCEL tels que : - OBJETS de l’Application: Workbook, Worksheet, Range, etc. – PROPRIETES des différents Objets : Name, Font, Value, Visible etc. - METHODES associées aux Objets : Activate, Select, Delete etc. Pour atteindre les objectifs de ce chapitre, il s’agira de :  Afficher l’onglet Developpeur  Créer une macro nommée Ma_macro qui consistera à :  Créer un nouveau classeur et le nommé « COURS EJS VBA EXCEL »  De renommer la feuille « Feuil1 » du nouveau classeur en « COURS 1 » du classeur « COURS EJS VBA EXCEL »  De donner la valeur « Mon_Nom » a la cellule « F5 » de la feuille « COURS1 » du classeur « COURS EJS VBA EXCEL »  Enregistrer ce nouveau classeur sur le bureau de notre ordinateur CREATION DE LA MACRO L’enregistrement de macros constitue certainement le meilleur apprentissage de Visual Basic pour Applications. Les commandes de l’application hôte accessibles par les menus, les barres d’outils ou les raccourcis clavier, le déplacement (à l’aide du clavier ou de la souris) dans un classeur et la modification de ce dernier peuvent être enregistrés dans une macro. Il suffit simplement de déclencher l’Enregistreur de macro et d’exécuter ces commandes, sans qu’il soit nécessaire d’écrire la moindre ligne de code. Cette méthode permet ensuite de répéter autant de fois que vous le souhaitez la série d’instructions ainsi mémorisées, en exécutant simplement la macro. Lorsque la série de commandes est enregistrée dans une macro, vous pouvez en visualiser le codage dans la fenêtre Code de Visual Basic Editor. Vous découvrez ainsi la structure et la syntaxe des programmes VBA par la pratique. Le code généré par cette macro va nous permettre de mieux entamé le chapitre suivant. Pour débuter dans la création de notre macro, nous allons tout d’abord afficher l’onglet Developpeur. Il nous faudra donc pour cela Cliquer sur l’onglet Fichier du ruban, puis sur la commande Options. Dans la fenêtre Options Excel, sélectionnez Personnaliser le ruban. Cochez ensuite la case Développeur de la liste Onglets principaux (voir Figure), puis valider. L’onglet Développeur apparaît sur le ruban. Voici comment se présente le menu de l’onglet Developpeur sur Excel 2010. Pour débuter l’enregistrement de notre macro, nous allons cliquer sur le bouton « Enregistrer une macro » situé à gauche dans le menu de l’onglet Developpeur ci-dessus. La fenêtre d’enregistrement de macro s’affiche et se présente comme suit : À gauche c’est l’affichage initial de la fenêtre et à droite la fenêtre modifier avec spécification du nom de la macro que nous voulons exécuter et de sa description. Deux principales zones de cette fenêtre seront détaillées ; à savoir : La zone : Nom de la macro, qui permet de donner un nom spécifique à notre Macro. Il faut noter que les noms de macro ne doivent pas contenir d’espace. La zone : Enregistrer la macro dans, qui sert à spécifier le classeur dans lequel nous voulons enregistrer notre macro Passons maintenant à l’enregistrement de notre macro. Cliquons sur le bouton OK pour débuter l’enregistrement NB : dès l’instant que l’enregistrement de notre macro à débuter, toutes les actions exécuter sur le classeur Excel sont enregistrées et traduites en langage VBA. Il est donc important de savoir ce qu’on veut faire avant de lancer l’enregistrement. Nous, nous savons ce que nous voulons faire et donc, nous allons directement exécuter dans l’ordre, ces différentes actions : - Créer un nouveau classeur Excel - L’enregistrer sur le bureau en le nommant « COURS EJS VBA-EXCEL » - Renommer la feuille 1 « Feuil1 » de notre nouveau classeur en « COURS1 » - Sélectionner la cellule F5 de notre feuille « COURS1 » et y écrire notre Nom VISUALISIONS LE CODE GÉNÉRÉ PAR NOTRE MACRO Sub Ma_macro() ' Ma_macro Macro Workbooks.Add ChDir "C:\Users\LaurentDjedjeBahi\Desktop" ActiveWorkbook.SaveAs Filename:=_ "C:\Users\LaurentDjedjeBahi\Desktop\COURS EJS VBA-EXCEL.xlsx", FileFormat:= _ xlOpenXMLWorkbook, CreateBackup:=False Sheets("Feuil1").Select Sheets("Feuil1").Name = "COURS 1" Range("F5").Select ActiveCell.FormulaR1C1 = "BAHI" Range("F4").Select End Sub COMMENTONS CE CODE Rappelons-nous de l’ordre dans lequel nous avons exécuté les différentes actions qui ont permis de généré ce code afin de mieux le commenter, faisons donc les différents rapprochements :  Créer un nouveau classeur = Workbooks.Add  L’enregistrer sur le bureau en le nommant « COURS EJS VBA-EXCEL » = ActiveWorkbook.SaveAs Filename:=_ "C:\Users\LaurentDjedjeBahi\Desktop\COURS EJS VBA-EXCEL.xlsx"  Renommer la feuille 1 « Feuil1 » de notre nouveau classeur en « COURS 1 » = Sheets("Feuil1").Name = "COURS 1"  Sélectionner la cellule F5 de notre feuille « COURS1 » et y écrire notre Nom = Range("F5").Select ActiveCell.FormulaR1C1 = "BAHI" L’enregistrement de notre macro nous a permis de mettre à découvert certains objets d’Excel qu’on sera amené à manipuler pendant la création de nos propres applications à travers VBA sur Excel tels que : le classeur (Workbooks), la feuille (Sheets), la cellule (Range) ; mais aussi de certaines méthodes : Ajouter (Add), selectionner (Select), sauvegarder sous (SaveAs), de quelques propriétés d’objets à savoir : Nom (Name), Valeur (FormulaR1C1 ou Value), d’une procédure (sub Ma_macro … end sub) et enfin de constater comment sont structurés les codes par exemple : Ajouter un Nouveau Classeur sur VBA devient NouveauClasseur. Ajouter ou plutôt Workbooks.Add, qui dans le langage VBA signifie ajouter un nouveau objet faisant partir de la classe des « objets classeurs » tout simplement. Nous constatons certainement qu’il y a lieu de simplifier le code généré par la Macro, pour le rendre moins lourd et beaucoup plus efficace SIMPLIFIONS CE CODE La simplification du code nous donne le résultat suivant : Sub Ma_macro() ' Ma_macro Macro Workbooks.Add ActiveWorkbook.SaveAs Filename:= _ "C:\Users\LaurentDjedjeBahi\Desktop\COURS EJS VBA-EXCEL.xlsx" Sheets("Feuil1").Name = "COURS 1" Range("F5").Select ActiveCell.FormulaR1C1 = "BAHI" End Sub NOTE : L’enregistreur de macro est un outil très important dans la réalisation d’application sur Excel en ce sens qu’il nous permet de généré des codes spécifiques et complexe rattachés aux fonctionnalités d’Excel et de les associés au codes de nos différents programmes. Cependant il est nécessaire de savoir le simplifié et le paramétré uploads/s1/ djedje-laurent-bahi-excel-vba.pdf

  • 41
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mai 19, 2021
  • Catégorie Administration
  • Langue French
  • Taille du fichier 3.4624MB