Programmation en VBA Présentation de Visual Basic L2 - Université de Bordeaux 2
Programmation en VBA Présentation de Visual Basic L2 - Université de Bordeaux 2 Visual Basic : Basic : dérivé du langage Basic (Biginner’s All purpose Symbolic Instruction Code) des années 60 Visual : dessin et aperçu de l’interface avant l’exécution Introduction L2 - Université de Bordeaux 3 Apprendre à programmer ≠ Apprendre un langage de programmation écrire un algorithme avant d’écrire le programme correspondant Introduction L2 - Université de Bordeaux 4 Définitions : Un algorithme est la description de la suite des opérations élémentaires ordonnées capables de résoudre le problème posé. Un programme est la traduction d’un algorithme en un langage compréhensible par l’ordinateur. Exemple L2 - Université de Bordeaux 5 Un commerçant veut calculer les montants de ses factures. Comment décrire de manière la plus élémentaire possible, la suite d’instructions à exécuter pour résoudre le problème. Exemple L2 - Université de Bordeaux 6 Question 1 : Quelles sont les variables que nous devrons manipuler ? Les prix des produits; les quantités des produits; les montants des différentes lignes; le total des montants. Exemple L2 - Université de Bordeaux 7 Question 2 : Comment manipuler ces variables pour résoudre le problème ? Les montants sont calculés en multipliant les prix unitaires par les quantités. Le total hors taxe est calculé en effectuant la somme des montants. Notion de variable L2 - Université de Bordeaux 8 En programmation, une variable est un nom qui sert à repérer un emplacement donné de la mémoire centrale. Les variables permettent de manipuler les valeurs sans avoir à se préoccuper de l’emplacement qu’elles occupent effectivement en mémoire. Choix des noms des variables : doit être le plus parlant possible. Exemple : PrixUnitaire, Quantite,Montant, c’est mieux que d ’écrire x,y,z. Programmation Introduction L2 - Université de Bordeaux 10 Un programme VBA s’écrit à l’intérieur de l’instruction Sub NomProgramme() End Sub Les instructions à exécuter devront alors être incluses dans le bloc sub … end sub Introduction L2 - Université de Bordeaux 11 Dans l’éditeur de programmes, on peut saisir le code de plusieurs programmes, chacun dans un bloc sub … end sub. Si on veut exécuter un des programmes, on place le curseur à l’intérieur du bloc et on clique sur exécuter. Variables et constantes L2 - Université de Bordeaux 12 Une variable = {identificateur, type, valeur} Identificateur : nom par lequel la variable est manipulée dans le programme Type : type des valeurs possibles que la variable peut contenir Valeur : valeur stockée dans la variable Identificateur d’une variable L2 - Université de Bordeaux 13 Elle doit commencer par un caractère alphabétique et ne pas comporter les caractères suivants : . % ,+ - * ! # @ $ Elle ne peut pas excéder 255 caractères. Pour faciliter la lisibilité des programmes, on s'efforcera d'utiliser des minuscules pour les variables utilisées par le programme. Déclaration des variables L2 - Université de Bordeaux 14 Par défaut, il n'est pas nécessaire de déclarer les variables utilisées. On peut donc utiliser n'importe quelle variable sans se préoccuper de sa déclaration préalable Les variables sont alors de type Variant pas d’optimisation déclarer explicitement les variables Syntaxe Dim identificateur As Type Les types de données L2 - Université de Bordeaux 15 VBA autorise la création de la plupart des types de données classiques : Integer : entier court ; Long : entier long ; Single : réel simple ; Double : réel en double précision ; Currency : nombre monétaire ; Date : date et heure; String : chaîne de caractères ; Boolean : booléen (True ou False) ; Object : référence quelconque à un objet ; Variant : type particulier pouvant être n'importe quel autre type. Outre ces types élémentaires, il est également possible de créer des tableaux et des types personnalisés (voir plus loin). Conversion de types L2 - Université de Bordeaux 16 Il est parfois nécessaire d'opérer des conversions de types. VBA permet d'effectuer ces opérations grâce à une série d'instructions, dont voici quelques exemples : CInt : conversion en type de données entier ; CStr : conversion en type de données string ; CBdl : conversion en type de données double ; CDate : conversion en type de données date ; CVar : conversion en type de données variant. Structures de contrôle Structures conditionnelles L2 - Université de Bordeaux 18 If … Then …Else … ElseIf permet d'écrire une structure conditionnelle syntaxe : If <condition> then <instructions> Else <instructions> End If Dans le cas où il est nécessaire d'imbriquer plusieurs structures conditionnelles, on peut utiliser l'instruction ElseIf : If <condition> Then <instructions> ElseIf <condition> Then <instructions> End If Structures conditionnelles (2) L2 - Université de Bordeaux 19 Select…case Permet d'écrire une structure conditionnelle dans laquelle une expression doit être comparée à plusieurs valeurs. La syntaxe est la suivante : Select Case <variable> Case valeur1: <instructions> Case valeur2: <instructions> ... Case Else: <instructions> End Select Lorsque la variable est égale à une valeur répertoriée, les instructions correspondantes sont exécutées, et l'instruction Select Case se termine. La ligne Case Else permet d'inclure toutes les occurrences de la variable non répertoriées auparavant. Elle est facultative. Boucles L2 - Université de Bordeaux 20 While Wend permet de réaliser une boucle conditionnelle. La syntaxe est la suivante : While <condition> <instructions> Wend La condition est évaluée au début du traitement. Si elle est vraie, les instructions sont exécutées. Ensuite la condition est réévaluée, et ainsi de suite. Boucles (2) L2 - Université de Bordeaux 21 Do Until Loop similaire à Do While Loop. Cependant, les instructions contenues dans le corps de l'instruction sont d'abord exécutées, à la suite de quoi la condition est évaluée. La syntaxe est donc la suivante : Do <instructions> Loop Until <condition> Boucles (3) L2 - Université de Bordeaux 22 For Step Next utilisée pour répéter une action selon un nombre d'itérations déterminé. La syntaxe est la suivante : For <variable> = valeur1 To valeur2 Step <pas> <instructions> Next <variable> Step sert à indiquer le pas d'itération. Cette précision est toutefois facultative : par défaut, la valeur du pas utilisé est 1. Boucles (4) L2 - Université de Bordeaux 23 For Each In Next est une variante de l'instruction For Step Next. permet de réaliser une itération en parcourant tous les objets contenus dans une collection. La syntaxe est la suivante : For Each <objet> In <collection> <instructions> Next <object> Boucles (5) L2 - Université de Bordeaux 24 Exemple : Le code suivant permet de renommer toutes les feuilles de calcul du classeur actif : Dim i As Integer Dim feuille As WorkSheet ... i = 0 For Each feuille In ActiveWorkbook.Sheets i = i + 1 'Cstr (i) permet de convertir l'entier i en une chaîne de caractères feuille.Name = "Compte rendu Client n°" + CStr(i) Next feuille Remarque : la ligne de commentaire introduite par une apostrophe. Arrêt du programme L2 - Université de Bordeaux 25 Exit permet de sortir de la séquence en cours. Exemple : pour terminer prématurément une procédure, on écrira : Sub essai() ... If <condition> Then Exit Sub End If ... End Sub De même, les commandes Exit Do et Exit Next permettent de quitter une structure conditionnelle et une boucle For Next. Interaction entre VBA et EXCEL L2 - Université de Bordeaux 26 Première solution : La feuille est un objet. Constituée de plusieurs cellules. Feuil1.Cells(i,j) désigne la cellule de coordonnées (i,j) dans la feuille de nom Feuil1. T ous les objets Excel (classeur, feuilles, fonctions, …) correspondent à des objets (au sens programmation du terme) et peuvent être manipulés dans VBA (à voir dans le chapitre suivant). Procédures et fonctions Procédures L2 - Université de Bordeaux 28 Une procédure est un ensemble d'instructions qui participent à une même tâche. Syntaxe : [Public/Private][Static] Sub nom([liste_arguments]) déclarations instruction End Sub Exemple de procédure événementielle : Private Sub cmdQuitter_Click() instructions End Sub Procédures : exemple L2 - Université de Bordeaux 29 Exemple de procédure publique : Public Sub SaisieNote() Do Note = InputBox("Tapez une note") `demande la note à l’utilisateur Loop Until Note>=0 And Note<=20 End Sub Pour utiliser cette procédure, il suffira de : l'appeler par son nom : SaisieNote utiliser l’instruction Call : … Call SaisieNote `appelle la procédure de saisie … Procédures : exemple L2 - Université de Bordeaux 30 Les arguments/paramètres : une procédure peut prendre des arguments (utiliser des données en entrée) Déclaration dans les parenthèses: Private Sub nom (nom1 As type1, …) Instructions End sub À l’appel : Call nom(expr_du_bon_type,…) Dans le code de la procédure, nom1 à la valeur de expr_du_bon_type Procédures : exemple L2 - Université de Bordeaux 31 Exemple de passage de paramètre : Private Sub Affiche(Message As String) MsgBox(Message) End Sub À l’appel : … Dim news As String news=« cool ! » Affiche(«Ift-20403») ‘ affiche ift-20403 Affiche (news) ‘ affiche cool ! Affiche news ‘ affiche cool ! Call Affiche(«news») ‘ affiche news Call Affiche news ‘erreur compilation … Appel / invocation uploads/Litterature/ vba-l2.pdf
Documents similaires
-
22
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 09, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.3450MB