AGROPARISTECH PROGRAMMATION EN VBA(*) POUR EXCEL U.F.R. D’INFORMATIQUE Christin

AGROPARISTECH PROGRAMMATION EN VBA(*) POUR EXCEL U.F.R. D’INFORMATIQUE Christine MARTIN Année 2012-2013 Document inspiré du cours de Juliette Dibie-Barthelemy (Janvier 2008) * Visual Basic pour Applications Excel VBA – AgroParisTech – Christine Martin Page 1 Introduction Le VBA (Visual Basic pour Application) est un langage de programmation permettant d’utiliser du code dont la syntaxe est proche du langage Visual Basic pour exécuter les nombreuses fonctionnalités notamment des applications Microsoft Office et par exemple de l’Application EXCEL que vous êtes amenés à utiliser fréquemment dans votre spécialité. Créer des programmes en VBA permet notamment d’automatiser des tâches répétitives réalisées sous EXCEL grâce à la possibilité de manipuler les objets propres à Excel (Classeurs, feuilles, cellules, …), de stocker de l’information, d’effectuer des instructions sous conditions et, éventuellement, à plusieurs reprises en fonction d’un ou plusieurs critères. Le langage VBA permet également de contrôler la quasi-totalité de l'IHM1 notamment d’Excel, ce qui inclut la possibilité de manipuler les fonctionnalités de l'interface utilisateur comme les menus, les barres d'outils et le fait de pouvoir personnaliser les boîtes de dialogue et les formulaires utilisateurs. Cela permet notamment de rendre une application développée sous EXCEL plus conviviale. Il permet enfin de contrôler une application à partir d'une autre (par exemple, créer automatiquement un document WORD à partir de données sous EXCEL). Ce document organisé en sections constitue une synthèse des possibilités offertes par la programmation en VBA sous Excel. 1 Interface Homme-Machine : c'est-à-dire tous les médias qui permettent à un utilisateur d’interagir avec la machine Excel VBA – DA GIA – AgroParisTech – Christine MARTIN Page 2 Table des matières 1 Prise en main de l’environnement de développement ............................................................ 5 1.1 Première macros … utilisation de l’enregistreur de macros ............................................ 5 1.1.1 Enregistrer une macro ..................................................................................................................... 5 1.1.2 Exécuter une macro ........................................................................................................................ 7 1.1.3 Supprimer une macro ...................................................................................................................... 8 1.2 L’environnement de développement Visual Basic Editor ................................................ 8 1.2.1 Accès à l’environnement Visual Basic Editor (VBE) ......................................................................... 8 1.2.2 Fenêtre de lecture, écriture et modification d’un programme ....................................................... 9 1.2.3 Affichage et modification des propriétés d’un module de code ................................................... 11 1.2.4 Sauvegarde .................................................................................................................................... 12 1.2.5 Retrouver un programme enregistré : l’explorateur de projets ................................................... 12 1.2.6 Exécuter directement dans VBE une procédure sans argument ................................................... 13 1.2.7 Fermeture de l’environnement VBE .............................................................................................. 14 2 Accès aux fonctionnalités d’Excel depuis VBA ...................................................................... 14 2.1 Les objets ................................................................................................................... 14 2.2 Les collections ............................................................................................................ 14 2.3 L’accès aux objets ....................................................................................................... 14 2.4 Les propriétés des objets ............................................................................................ 15 2.5 Les méthodes des objets............................................................................................. 16 2.5.1 Utiliser les fonctions intégrées d’Excel .......................................................................................... 16 2.6 Les événements ......................................................................................................... 16 2.7 L’explorateur d’objets ................................................................................................ 17 2.7.1 Ouverture de l’explorateur d’objets ............................................................................................. 17 2.7.2 Utilisation de l’explorateur d’objets .............................................................................................. 17 2.8 Comment obtenir de l’aide : quelques astuces ............................................................ 19 3 Vers la programmation avancée ......................................................................................... 20 Excel VBA – DA GIA – AgroParisTech – Christine MARTIN Page 3 3.1 Stocker de l’information : les variables et les constantes ............................................. 20 3.2 Définir ses propres fonctions ...................................................................................... 23 3.2.1 Définition ....................................................................................................................................... 23 3.2.2 Utilisation sous Excel ..................................................................................................................... 24 3.2.3 Utilisation dans un programme VBA ............................................................................................. 25 3.3 Prendre en compte des conditions .............................................................................. 25 3.4 Répéter les mêmes actions ......................................................................................... 26 3.5 Règles de bonne conduite en programmation ............................................................. 28 Tutoriel : Les événements .................................................................................................. 30 Tutoriel : Les entrées et sorties standards ............................................................................. 32 Tutoriel : Les Objets UserForm ........................................................................................... 37 Excel VBA – DA GIA – AgroParisTech – Christine MARTIN Page 4 Table des figures Figure 1 : Fenêtre de paramétrage et lancement de l'enregistrement d'une macro ............................. 5 Figure 2 : Fenêtre d'arrêt de l'enregistrement d'une macro (Excel 2003) .............................................. 6 Figure 3 : Fenêtre d'exécution d'une macro ........................................................................................... 7 Figure 4 : Barre d'Outils Visual Basic (l’icône entourée permet de lancer VBE) ..................................... 8 Figure 5 : Fenêtre principale de Visual Basic Editor (VBE) ...................................................................... 9 Figure 6 : Fenêtre d'affichage d'un module de code ............................................................................... 9 Figure 7 : Résultat de l'exécution de la macro Macro1 ......................................................................... 10 Figure 8 : Fenêtre de propriété d'un module de code .......................................................................... 12 Figure 9 : Fenêtre "Explorateur de projets" dans VBE .......................................................................... 12 Figure 10 : Fenêtre ouverte par clic droit sur l'explorateur de projets dans VBE ................................. 13 Figure 11 : Fenêtre de l'explorateur d'objets ........................................................................................ 17 Figure 12 : Résultat de la recherche de fonctions intégrées d'Excel ..................................................... 19 Figure 13 : Fenêtre d'erreur de compilation ......................................................................................... 21 Excel VBA – DA GIA – AgroParisTech – Christine MARTIN Page 5 1 Prise en main de l’environnement de développement 1.1 Premières macros … utilisation de l’enregistreur de macros Un programme écrit en VBA est souvent appelé, par abus de langage, une macro. Dans un premier temps, une macro peut être créée en utilisant l'enregistreur de macros, qui ne nécessite aucune connaissance du langage VBA. L’enregistreur de macro est un outil accessible notamment sous Excel et permettant d’écrire du code VBA à partir d’opérations effectuées manuellement dans l’application. A l’image d’une caméra, toute la séquence d'actions effectuées entre le début et la fin de l'enregistrement est traduite en instructions VBA et stockée dans une procédure VBA sans arguments, qui pourra être exécutée à nouveau à l'identique. Une procédure est un ensemble d’instructions VBA identifiés par un nom et ne renvoyant pas de valeur. L'enregistreur de macro sous Excel (Outils / Macro / Nouvelle Macro) permet donc de générer facilement du code VBA et de découvrir les mots clés et syntaxes à employer pour écrire ensuite directement ses propres programmes. 1.1.1 Enregistrer une macro 1) Paramétrage de la macro Activer la commande Outils Macro Nouvelle macro. Figure 1 : Fenêtre de paramétrage et lancement de l'enregistrement d'une macro La fenêtre présentée en Figure 1 apparaît à l’écran et vous permet de paramétrer la macro qui va être créée c'est-à-dire :  de préciser son nom dans le champ : Nom de la macro,  de préciser à quel classeur elle sera rattachée par l’intermédiaire du menu déroulant Enregistrer la macro dans,  d’y associer si besoin un raccourci clavier afin de faciliter son lancement futur : Touche de raccourci Excel VBA – DA GIA – AgroParisTech – Christine MARTIN Page 6  et enfin d’y associer une note explicative Description. Le menu déroulant Enregistrer la macro dans vous propose trois options :  Ce classeur,  Nouveau classeur,  Classeur de macros personnelles. En sélectionnant, l'option Classeur de macros personnelles, la macro est enregistrée dans un classeur spécial appelé PERSO.XLS. Ce classeur est ouvert automatiquement lors du lancement d’EXCEL et ses macros sont disponibles dans tous les classeurs ouverts. La commande FENETRE AFFICHER permet d’afficher ce classeur et la commande FENETRE MASQUER de le masquer. L’option Nouveau classeur permet d’enregistrer la macro dans un nouveau classeur. Enfin, l’option Ce classeur permet d’enregistrer la macro dans le classeur actif. 2) Lancement de l’enregistrement Une fois votre macro paramétrée suivant vos besoins, Cliquer sur le bouton OK. L’enregistrement est alors lancé et à partir de là tout les actions que vous faîtes dans Excel sont enregistrées, traduites en code VBA puis sauvegardées dans une procédure portant le nom que vous avez spécifié à l’étape précédente. Par exemple Macro1 comme indiqué dans la Figure 1. La barre d'outils ARRET DE L'ENREGISTREMENT apparaît, ce qui marque le début de l'enregistrement. Figure 2 : Fenêtre d'arrêt de l'enregistrement d'une macro (Excel 2003) Cette fenêtre permet également de déterminer le mode suivant lequel les cellules seront considérées dans le programme final. Il existe en effet deux moyens de voir les choses :  Soit on a une vision absolue : par exemple on considère la cellule A1 qui a une position déterminée dans une page de calcul Excel  Soit on a une vision relative : on veut par exemple qu’une action soit faite toujours 2 cellules en dessous de celle sélectionnée à ce moment là. Le bouton de droite de la fenêtre d’arrêt de l’enregistrement (Figure 2) permet de faire un choix entre ces deux modes. Ce choix dépend bien entendu des propriétés attendues de la macro que l’on est en train d’enregistrer. Excel VBA – DA GIA – AgroParisTech – Christine MARTIN Page 7 Attention : Vérifier toujours le mode dans lequel vous vous trouvez au lancement de l’enregistrement et avant d’effectuer la moindre action sans quoi votre macro pourrait avoir un comportement différent de celui que vous attendiez car non enregistrée dans le mode adéquate. Par ailleurs, les cellules dans une macro sont identifiées à l’aide d’une lettre (colonne) suivie d’un chiffre (ligne), comme par exemple la cellule A1. Aussi et afin de faciliter la lecture du code VBA généré, il est préférable de choisir la même identification des cellules dans le classeur dans lequel est enregistré la macro. Si tel n’est pas le cas, activer la commande OUTILS OPTIONS, cliquer sur l'onglet GENERAL et décocher la case STYLE DE REFERENCE L1C1. 3) Arrêt de l'enregistrement Une fois que vous avez réalisé toutes les actions que vous souhaitiez enregistrer pour les rejouer ultérieurement, l’arrêt de l’enregistrement se fait en cliquant sur uploads/s1/ coursexcelvba2012-2013.pdf

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