1 Master 2 BFNI-Université de Bordeaux ExcelProgrammation VBAVisual Basic pour

1 Master 2 BFNI-Université de Bordeaux ExcelProgrammation VBAVisual Basic pour Applications Hervé Hocquard http://www.labri.fr/perso/hocquard 2 Généralités sur la programmation VBA sous Excel Programmation sous Excel via VBA (Visual Basic pour Applications) Fonctions personnalisées Complètement standardisée. Valable pour les autres classeurs et même, si pas d’accès aux objets spécifiques d’Excel, pour les autres outils Office. Macros Manipulation directe des objets Excel (classeurs, feuilles, cellules, graphiques, etc.) Programmation de tâches Programmation de séquences d’actions plus ou moins complexes, faisant intervenir ou non des mécanismes algorithmiques. Interfaces graphiques Boîtes de dialogues standards. Mais aussi les formulaires personnalisées pour faciliter les accès aux fonctionnalités. Nécessite une certaine formalisation et la connaissance des principes de la programmation évènementielle. Enregistreur de macros Transformation de séquences d’action en programme VBA. Ne nécessite pas la connaissance de la programmation, mais peu de souplesse (structure fixe, peu adaptable…) Programmation des macros Très puissant. Nécessite la connaissance des principes de la programmation et de la syntaxe d’accès aux objets Excel. Points importants. Connaissance de l’algorithmie, langage de programmation Visual Basic. Les instructions sont écrites dans des fonctions (function) et procédures (sub), qui sont regroupées dans des modules. Nous travaillons dans VBE (Visual Basic Editor). Master 2 BFNI-Université de Bordeaux 3 ALGORITHMIE - PROGRAMMATION Généralités sur la programmation Master 2 BFNI-Université de Bordeaux 4 Algorithmie vs. Programmation Master 2 BFNI-Université de Bordeaux Algorithmie • Solution « informatique » relative à un problème • Suite d’actions (instructions) appliquées sur des données • 3 étapes principales : 1. saisie (réception) des données 2. Traitements 3. restitution (application) des résultats Programme • Transcription d’un algorithme avec une syntaxe prédéfinie • Visual Basic pour Applications • Même principes fondamentaux que les autres langages objets (Java, C#, etc.) • VBA agit en interaction avec les fonctions prédéfinies disponibles dans la suite Office 5 Mode compilé vs. Mode interprété Master 2 BFNI-Université de Bordeaux Langage interprété : + portabilité application ; - lenteur (R, VBA, Python…) Langage compilé : + rapidité ; - pas portable (solution possible : write once, compile anywhere ; ex. Lazarus) Langage pseudo-compilé : + portabilité plate-forme ; - lenteur (?) (principe : write once, run anywhere ; ex. Java et le principe JIT) VBA (Visual Basic pour Applications) est un langage de programmation dédié principalement aux applications Microsoft Office. Il est basé sur le langage Visual Basic, mais ne peut s’exécuter que dans une application hôte Microsoft Office, et non de manière autonome. 6 Etapes de la conception d’un programme (une application) Master 2 BFNI-Université de Bordeaux 1. Déterminer les besoins et fixer les objectifs : que doit faire le logiciel, dans quel cadre va- t-il servir, quels seront les utilisateurs types ? On rédige un cahier des charges avec le commanditaire du logiciel (Remarque : commanditaire = maître d’ouvrage ; réalisateur = maître d’œuvre) 2. Conception et spécifications : quels sont les fonctionnalités du logiciel, avec quelle interface ? 3. Programmation : modélisation et codage 4. Tests : obtient-on les résultats attendus, les calculs sont corrects, y a-t-il plantage et dans quelles circonstances ? (tests unitaires, tests d’intégration, etc.) 5. Déploiement : installer-le chez le client (vérification des configurations, installation de l’exécutable et des fichiers annexes, etc.) 6. Maintenance : corrective, traquer les bugs et les corriger (patches) ; évolutive (ajouter des fonctionnalités nouvelles au logiciel : soit sur l’ergonomie, soit en ajoutant de nouvelles procédures) 7 L’ÉDITEUR VBE ET LE MODÈLE OBJET VBA Master 2 BFNI-Université de Bordeaux 8 L’éditeur (Visual Basic Editor) Master 2 BFNI-Université de Bordeaux Alt + F11 9 Insertion d’un module dans l’éditeur Master 2 BFNI-Université de Bordeaux 10 Enregistrer une macro Master 2 BFNI-Université de Bordeaux 11 Enregistrer une macro Master 2 BFNI-Université de Bordeaux 12 Impact dans l’éditeur Master 2 BFNI-Université de Bordeaux 13 Le modèle objet dans VBA Master 2 BFNI-Université de Bordeaux • Un objet est constitué d’attributs (ou propriétés) et de méthodes qui lui sont associées • Les objets existants sont constitués en hiérarchie (relation de composition) Application Addin CommandBar Window Workbook Chart Name Worksheet Comment Range Hyperlink … 14 Les collections Master 2 BFNI-Université de Bordeaux • Concept clé • On rajoute un « s »! – Workbooks : collection des objets Workbook – Worksheets : collection des objets Worksheet – … etc. • Faire appel à un élément d’une collection: 2 méthodes: – Appel par le nom de l’élément • Ex: Worksheets("Feuil1") – Appel par l'indice • Ex: Worksheets(1) 15 Hiérarchie : Accéder aux objets Master 2 BFNI-Université de Bordeaux • Opérateur point ( . ) – Exemple: Application.Workbooks("Classeur1.xlsx").Worksheets(1).Range("A1").Value=9 • Simplification: par exemple si Classeur1.xlsx est le classeur actif: – Worksheets(1).Range("A1").Value=9 16 Propriétés d'un objet Master 2 BFNI-Université de Bordeaux 17 Méthode d'un objet Master 2 BFNI-Université de Bordeaux • Action relative à un objet • Exemples: – Worksheets("Feuil1").Activate – Range("A1").Copy Range("B1") • Une méthode prend en compte 0, 1 ou plusieurs arguments. – Le premier argument est séparé de la méthode par un espace, les arguments sont séparés entre eux par des virgules – OU utilisation des parenthèses 18 LANGAGE VISUAL BASIC Programme : suite d’instructions manipulant des données Master 2 BFNI-Université de Bordeaux 19 Visual Basic possède tous les attributs d’un langage de programmation Master 2 BFNI-Université de Bordeaux Données typées. Visual Basic propose les types usuels de la programmation : entier, réels, booléens, chaîne de caractères. Structures avancées de données. Gestion des collections de valeurs (énumérations, tableaux) et des objets structurés (enregistrements, classes). Séquences d’instructions, c’est la base même de la programmation, pouvoir écrire et exécuter une série de commandes sans avoir à intervenir entre les instructions. Structures algorithmiques : les branchements conditionnels et les boucles. Les outils de la programmation structurée : pouvoir regrouper du code dans des procédures et des fonctions. Organisation du code en modules et possibilité de distribuer ces dernières. Visual Basic n’est pas « case sensitive », il ne différencie pas les termes écrits en minuscule et majuscule. 20 Type de données Master 2 BFNI-Université de Bordeaux Le type de données définit le type d’opérateurs qu’on peut leur appliquer. • Numérique qui peut être réel (double) ou entier (long). Les opérateurs applicables sont : +, -, *, / (division réelle), \ (division entière), mod (modulo) Exemple : 5 / 2 2.5 ; 5 \ 2 2 ; 5 mod 2 1 • Booléen (boolean) qui ne prend que deux valeurs possibles : True et False. Les opérateurs sont : not, and, or. Exemple : True and False False • Chaîne de caractères (string) qui correspond à une suite de caractères délimitée par des guillemets ‘’ ’’. Les opérateurs possibles sont la concaténation, la suppression d’une sous- partie, la copie d’une sous-partie, etc. Exemple : ‘’toto’’ est une chaîne de caractères, toto on ne sait pas ce que c’est (pour l’instant) Habituellement, les opérations font intervenir des données de type identique et renvoie un résultat du même type. 21 Type de données Master 2 BFNI-Université de Bordeaux • Type • Valeurs • Boolean • Integer • Long • Single • Double • Currency • Date • String • Object • Variant • Vrai, faux • Entiers • Entiers • Réels • Réels • 4 chiffres après la , • 1/1/100 à 31/12/9999 • Chaines de caractères • Tout objet • N'importe quel type 22 Opérateurs de comparaison Master 2 BFNI-Université de Bordeaux Les opérateurs de comparaison confrontent des données de même type, mais le résultat est un booléen = ; <> ; > ; >= ; < ; <= égalité différent Supérieur strict, supérieur ou égal inférieur strict, inférieur ou égal Exemples 5 > 2 True 5 > ‘’toto’’ illicite 5 <> 5 False ‘’toto’’ > ‘’tata’’ True Licite. Comparaison de gauche à droite basée sur le code ASCII. Arrêt des comparaisons dès que l’indécision est levée. 23 Fonctions mathématiques Master 1 IREF -Université de Bordeaux • Valeur absolue: Abs(-9) retourne 9 • Signe: Sgn(-18) retourne –1 (ou 0 ou 1) • Troncature à l’unité : Fix(-18.3) = -18 Fix(18.3) = 18 – Tronque la partie décimale • Partie entière: Int(13.12) retourne 13 Int(-14.8) retourne –15 – E(x) ≤ x < E(x) + 1 – Tronque à l’entier inférieur le plus proche. 24 Fonctions mathématiques Master 2 BFNI-Université de Bordeaux • Sqr, Exp, Log – Sqr(4) retourne 2, Exp(5) retourne 148.413…, Log(9) retourne 2.197224… (en base e) • Nombres aléatoires – Rnd retourne un nombre aléatoire entre 0 (compris) et 1 (non compris) – a = Rnd a peut valoir 0.12131441 – Int((b – a + 1) * Rnd + a) retourne un nombre aléatoire entier entre a et b • Sin, Cos, Tan, Atn (arc-tangente) 25 Fonctions de dates Master 2 BFNI-Université de Bordeaux • Date retourne la date actuelle • Time retourne l'heure courante – Date et Time peuvent retourner des chaînes de carctères String • DateSerial retourne une valeur unique pour une date donnée, sous forme Variant – dv1 = DateSerial(2003, 4, 22) dv2 = DateSerial(1928, 5, 3) dv1 – dv2 représente le nombre de jours entre ces deux dates • Day, Month et Year retourne respectivement le jour, uploads/Litterature/ coursvba-bfni-niveau1-amp-2.pdf

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