1 R.R. – Université Lyon 2ExcelProgrammation VBAVisual Basic pour Applications
1 R.R. – Université Lyon 2ExcelProgrammation VBAVisual Basic pour Applications Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_excel.html 2 Généralités sur la programmation VBA sous Excel R.R. – Université Lyon 2 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). 3 ALGORITHMIE - PROGRAMMATION Généralités sur la programmation R.R. – Université Lyon 2 4 Algorithmie vs. Programmation R.R. – Université Lyon 2 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é R.R. – Université Lyon 2 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) R.R. – Université Lyon 2 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 LANGAGE VISUAL BASIC Programme : suite d’instructions manipulant des données R.R. – Université Lyon 2 8 Visual Basic possède tous les attributs d’un langage de programmation R.R. – Université Lyon 2 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. 9 Type de données R.R. – Université Lyon 2 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 (suite) 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. 10 Opérateurs de comparaison R.R. – Université Lyon 2 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 qu’indécision levée. 11 Variables et premières instructions R.R. – Université Lyon 2 Les variables correspondent à des identifiants auxquels sont associés des valeurs d’un type donné. Elles matérialisent un espace mémoire avec un contenu que l’on peut lire ou écrire. Déclaration d’une variable Dim v As Double Dimensionner. Réserver un espace mémoire . Indication du type Type associé à la variable Identifiant de la variable, utilisable dans la suite du programme Affectation. Attribuer une valeur à la variable Opération et affectation v = 2.5 = est le symbole d’affectation. A gauche de = on modifie le contenu dans une variable, à droite on lit le contenu d’une variable. C’est pour cette raison que l’instruction v = v + 1 est licite. x = v * 2 La valeur 5 est écrite dans la variable x qui doit être déclarée au préalable. 12 FONCTIONS PERSONNALISÉES Ecriture et utilisation des fonctions personnalisées dans Excel R.R. – Université Lyon 2 13 Programmation des fonctions personnalisées R.R. – Université Lyon 2 Une fonction personnalisée est une fonction VBA qui peut appelée dans un classeur Excel. Elle prend en entrée des informations en provenance des feuilles du classeur (principalement) et renvoie une valeur insérée dans une cellule (le plus souvent également). Formalisme Function NomFonction(paramètres) as type de donnée Est un identifiant qui doit respecter la syntaxe VBA Les informations que prend en entrée la fonction, elles prennent la forme nom_parametre as type de paramètre. Il peut y en avoir plusieurs, ils sont séparés par des « , » dans ce cas. Type de la valeur retournée par la fonction.! Un classeur Excel contenant du code VBA doit être enregistré au format XLSM, prenant en charge les macros. Sinon on perd son code. 14 Programmation dans Visual Basic Editor R.R. – Université Lyon 2 Entrée : prix HT (réel) Sortie : prix TTC (réel) Il faut créer un module pour programmer une fonction personnalisée Public pour que la fonction soit visible en dehors du module, notamment dans la feuille de calcul Les lignes de commentaires commencent avec une ‘ et sont mises automatiquement en vert. ! 15 Utilisation de la fonction dans une feuille Excel R.R. – Université Lyon 2 La fonction est insérable dans la feuille de calcul comme n’importe quelle autre fonction Excel. Elle est accessible dans la catégorie « Fonctions personnalisées ». Le résultat s’affiche une fois la fonction insérée et validée. La fonction est automatiquement appelée à chaque fois que la feuille a besoin d’être recalculée (comme pour les autres fonctions standards d’Excel).! 16 Fonction avec plusieurs paramètres R.R. – Université Lyon 2 Entrées : prix HT (réel), tva (réel) Sortie : prix TTC (réel) 'fonction avec 2 paramètres Public Function MonPrixTTCTva(pht As Double, tva As Double) As Double 'déclaration d'une variable intermédiaire Dim pttc As Double 'calcul exploitant les paramètres en entrée pttc = pht * (1 + tva) 'retourner le résultat MonPrixTTCTva = pttc End Function (1) Le séparateur de paramètres est la « , » lors de la définition de la fonction. (2) Très étrangement, il devient « ; » lorsqu’on appelle la fonction dans la feuille de calcul. 17 STRUCTURES ALGORITHMIQUES Plus loin avec la programmation… R.R. – Université Lyon 2 18 Branchement conditionnel IF R.R. – Université Lyon 2 Permet d’activer une partie du code en fonction de la réalisation d’une condition ou pas. If condition uploads/Litterature/ excel-cours-programmation-vba.pdf
Documents similaires










-
37
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Nov 13, 2022
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 2.1521MB