Visual Basic
Transcription
Visual Basic
Master Sciences et Technologies Mentions Automatique et Systèmes Électriques et Mesures, Instrumentation, Procédés Bases – Variables et types (1) Nombres Types principaux Visual Basic entiers : nb_personnes=3 : dist_terre_sol=147100000 réels : temp_zero_k=-273.15 : masse_terre=6E+24 Opérateurs (priorité décroissante) Opérateur ^ * / \ Mod + & pour Applications Olivier LOSSON Signification puissance négation multiplication, division division entière (quotient) division modulo (reste) addition, soustraction concaténation Exemple 5 ^ 2 = 25 -5 + 2 = -3 5 / 2 = 2.5 5 \ 2 = 2 5 Mod 2 = 1 5 – 2 = 3 5 & 2 = 52 1 6 Bases – Variables et types (2) Bases – Variables et types (6) Nombres (suite) Fonctions intégrées principales Fonction Signification Abs valeur absolue Atn arc-tangente (rad) Cos, Sin cosinus, sinus (rad) Exp, Log exponentielle, log népérien Fix, Int partie entière Rnd Sgn Sqr Tan nombre aléatoire ∈ [0,1[ signe ∈ {−1,0,1} racine carré tangente Chaîne (suite) Exemple Abs(-5.2)=5.2 Atn(1)=0.785398 Cos(3.14159265)=-1 Exp(1)=2.7182818 Fix(8.4)=Int(8.4)=8 Fix(-8.4)=-8 Int(-8.4)=-9 Rnd*2 1.411095 Sgn(-8.4)=-1 Sqr(2)=1.414213 Tan(3.14159265)=1 Fonctions intégrées principales longeur (nb. caractères) partie gauche partie droite sous-partie quelconque Len Left Right Mid Instr recherche de sous-chaîne Asc Chr LCase UCase [L|R]Trim code ASCII d'un caractère caractère associé à un code conversion en minuscules conversion en majuscules suppression des espaces Len("tête")=4 Left("tête",3)="têt" Right("tête",2)="te" Mid("tête",2,1)="ê" Instr("tête","e")=4 Instr("tête","T")=0 Asc("A")=65 Chr(65)="A" LCase("TêTe")="tête" UCase("TêTe")="TÊTE" LTrim(" a ")="a " 7 11 Bases – Variables et types (7) Bases – Variables et types (8) Chaîne (suite) Exercices Booléen Demander de saisir une phrase et afficher : Description : variable à 2 valeurs possibles – le nombre de caractères – le premier mot True (Vrai) False (Faux) Opérateurs (priorité décroissante) Opérateur Not And Or Xor – le second mot – la phrase, avec la 1ère lettre en majuscule et le reste en minuscules 12 Signification non logique et logique ou logique ou exclusif Exemple Not True = Faux True And False = Faux True Or False = Vrai True Xor True = Faux Exercice : si A=True et B=False, que valent A. BŸA. B A.BŸƎ A ⊕ BƏ 13 1/5 Bases – Variables et types (10) Bases – Variables et types (11) Date et heure (suite) Principales fonctions intégrées Fonction Date Signification date système courante ajout d'un intervalle DateAdd de temps à une date DateDiff nombre d'intervalles de temps entre 2 dates caractéristique DatePart d'une date Format Formatage de date Récapitulatif des types Type Suf. Description Boolean booléen Byte octet Integer % entier Long & entier long Single ! réel simple Double # réel double Exemple Date=21/01/2008 DateAdd("m",1,#31/1/90#) =28/02/90 DateDiff("d",#1/1/90#, #31/12/90#)=364 DatePart("y",#2/2/90#)=33 DatePart("ww",#2/2/90#)=5 Format(#2/2/90#,"d mmmm yy") ="2 février 90" date/heure Date String Object Variant $ chaîne objet Excel tout type Valeurs possibles True/False 0..255 -32768..32767 -2E9..+2E9 ±3,4E38..±1,4E-45 ±1,8E308..±4,9E-324 1/1/0100..31/12/9999 00:00:00..23:59:59 Taille 2 octets 1 octet 2 octets 4 octets 4 octets 8 octets 0..65400 caractères Workbook, Range, … Len(ch) 4 octets 16 octets toutes valeurs 8 octets 15 16 Bases – Variables et types (13) Bases – Structures de contrôle (4) Initialisation Types Exemple Boolean Booléen Numérique Byte, Long, Double, … Date Date String Chaîne Variant Variant Objet Workbook, Range, … Test (exercices) Initialisation False 0 00:00:00 "" Empty Nothing Dans Sub formater(), – « Vous l'aurez voulu ! » (réponse « Oui ») – « On arrête tout ! » (réponse «Non ») Dans Sub calc_rabais(), Informations sur le type Afficher la boîte de saisie ci-contre Calculer le rabais : – 2,5% pour un montant inférieur à 100€ – 5% pour un montant de 100 à 1000€ – 10% au-delà de 1000€ Connaître le type : fonction VarType() temp = 38.2:Debug.Print VarType(temp) Afficher le message ci-contre Selon la réponse, afficher les messages Tester le type Fonctions IsType (Ex. IsDate(), IsNumeric(), ...) Afficher le rabais et la somme due 18 25 Bases – Structures de contrôle (9) Utiliser VBA – Éditeur (1) Boucles (exercices) Dans Sub saisie_chiffre(), saisir un nombre dans une boîte de dialogue garantir que lancement : Outils/Macro/Visual Basic Editor ou Alt+F11 fait partie d'Excel, ce n'est pas une application indépendante Le code VBA Dans Sub multiplication1(), L'éditeur VBA – la saisie est bien numérique (utiliser Val() et IsNumeric()) – le nombre saisi fait bien partie de l'ensemble {0, 1, ... , 9} Introduction est enregistré soit – dans le classeur courant (cas par défaut) ⇒ enregistré avec lui saisir un nombre dans une boîte de dialogue afficher sa table de multiplication (de 1 à 10 fois) – dans la fenêtre Exécution, puis – dans une boîte de message 30 – dans un classeur de macros personnelles (Perso.xls), situé dans le répertoire XLOuvrir (ou XLStart) 43 2/5 Utiliser VBA – Éditeur (2) Vue générale Fenêtre Code Utiliser VBA – Éditeur (3) Fenêtre Exécution Fenêtre Projet cf. menu Affichage Nom du projet et du classeur Objets Excel du classeur feuilles de calcul Nom Code (Nom Feuille) Fenêtre Projet classeur lui-même Formulaires (UserForms) Boîtes de dialogue utilisateur Menu Insertion/UserForm Modules Code VBA (Déclarations, Fonctions et Procédures) Menu Insertion/Module •Objets Excel •Formulaires •Modules Fenêtre Propriétés Fenêtre Espions 44 45 Utiliser VBA – Éditeur (4) Utiliser VBA – Éditeur (5) Fenêtre Code Affiche le code attaché à un objet 4 types d'objets peuvent contenir du code Feuilles de calcul et Classeur Objet Excel Fenêtre Exécution afficher ponctuellement la valeur d'une expression Ex. print 2^8 Ex. ? sin(Atn(1)*2) Ex. ? ActiveWorkbook.Name exécuter des instructions VBA ponctuelles Ex. Call affMots(premsTab("Salut à tous",2)) voir la valeur d'une variable/expression. Ex. ? i Événement Le code correspond aux événements de ces objets Formulaires (UserForms) Élément de formulaire Événement Le code correspond aux éléments du formulaire Permet d'entrer des commandes directes pour Modules Section "Déclarations", Fonctions et Procédures Contiennent des fonctions et procédures utilisateur Peut être utilisée Modules de classe depuis le code dans un but de débogage, avec Debug.Print pour saisir plusieurs instructions (en les séparant par ":") Ex. For Each elt in Array(1,2,3):print elt:Next 46 47 Utiliser VBA – Déboguer (1) Utiliser VBA – Déboguer (2) Exécuter du code Procédure sans paramètre (="Macros") Déboguer le code placer le curseur dans son code et cliquer sur ou : dans Excel, menu Outils/Macro/Macros... Procédure avec paramètre(s) ou fonction y faire appel dans une macro dédiée, ex. Sub appel() ou : y faire appel dans la fenêtre Exécution Éliminer les erreurs de syntaxe Trouver les erreurs d'exécution : possibilités Exécuter le code – ligne à ligne : F8 ou Shift+F8 – en sortant de la fonction appelée : Ctrl+Shift+F8 – jusqu'au curseur : Ctrl+F8 Stopper l'exécution Corriger les lignes dont le code figure en rouge Vérifier globalement : Débogage/Compiler VBAProject d'un programme qui « boucle » : Échap ou Ctrl+Pause en plaçant (avant exécution) un point d'arrêt sur une ligne exécutable du code (pour déboguer ensuite) : clic dans la marge grise ou touche F9 (à l'endroit du curseur) 48 Visualiser les variables – pointeur souris sur un nom de variable dans le code valeur dans bulle d'aide – fenêtre Exécution : print nbValUniques – ajout d'un espion sur la variable valeur et type 49 3/5 Utiliser VBA – Déboguer (3) Utiliser VBA – Déboguer (4) Exécution du code 1 2 3 Function principale(…) instruction1 instruction2 Fenêtre Espions Utilité : suivre l'évolution des valeurs des variables Description Variable espionnée Valeur Type Fonction concernée Possibilité d'espionner les tableaux et les objets 13 appelée = résultat 14 End Function Ajouter une variable à espionner glisser-déposer son nom dans la fenêtre ou : clic sur son nom puis Débogage/Ajouter un espion ou : clic droit sur son nom puis Ajouter un espion Pas à pas détaillé (F8) : 1-2-3 - {10-11-12-13-14}=4 – 5-6 Pas à pas principal (Shift+F8) : 1-2-3-4-5-6 50 51 Objets Excel – Notions d'objets (2) Objets Excel – Notions d'objets (3) Objet VBA Description : Composant d'une application Office Exemples d'objets et organisation hiérarchique Excel Classe Description Application Logiciel Excel Workbook Classeur ouvert Worksheet Feuille de calcul Range Plage de cellules Word Classe Description Application Logiciel Word Document Document texte ouvert Range Objets Excel principaux Ensemble de caractères contigus Workbook Classeur (ouvert dans Excel) Collection Workbooks = ensemble des classeurs ouverts Cas particulier : ActiveWorkbook = classeur actif Worksheet Feuille de calcul (d'un classeur) Collection Worksheets = ensemble des feuilles d'un classeur Cas particulier : ActiveSheet = feuille active Range Plage de cellules (d'une feuille de calcul) Rem. Éventuellement réduite à une seule cellule Cas particuliers : ActiveCell = cellule active, Selection 64 65 Objets Excel – Notions d'objets (4) Objets Excel – Notions d'objets (8) Propriété Description : caractéristique d'un objet Accès par notation pointée : Objet.Propriété Exemples Nom du classeur actif : ActiveWorkbook.Name Nom complet du classeur actif : ActiveWorkbook.FullName Sauvegarde du classeur actif effectuée ? : ActiveWorkbook.Saved Nombre de classeurs ouverts : Workbooks.Count Nombre de feuilles du classeur actif : Worksheets.Count Nom de la feuille active : ActiveSheet.Name Adresse de la cellule active : ActiveCell.Address Valeur de la cellule active : ActiveCell.Value Nombre de cellules sélectionnées : Selection.Count Exemples Set classeurActif = Application.ActiveWorkbook ? Application.ActiveWorkbook.Worksheets(3).Name ? Application.ActiveWorkbook.Worksheets(Application .ActiveWorkbook.Worksheets.Count).Name 66 En utilisant une propriété globale (accessible directement), ex.: ActiveWorkbook pour Application.ActiveWorkbook Worksheets pour Application.ActiveWorkbook.Worksheets ActiveSheet pour Application.ActiveWorkbook.ActiveSheet ActiveCell pour Application.ActiveWindow.ActiveCell Selection pour Application.ActiveWindow.Selection 70 4/5 Objets Excel – Range (1) Objets Excel – Range (3) Définition Description : plage de cellule(s) d'une feuille de calcul Comment obtenir ... Pas forcément sélectionnées, ni valuées, ni contiguës Éventuellement réduite à une seule cellule Création à partir d'autres plages une seule cellule d'une plage numLig=2 numCol=2 numCell=6 plage.Cells(numLig,numCol) Exemples ActiveCell ou plage.Cells(numCell) une sous-plage en ligne ou en colonne numLig=2 plage.Rows(numLig) numCol=2 ou plage.Columns(numCol) une plage spécifiée par décalage numLig=1 numCol=2 plage.Offset(numLig,numCol) une plage union de plusieurs autres plages la plage entourant une autre plage Union(plage1,plage2,…) Selection ActiveCell Selection Range("D13:E14") plage.CurrentRegion A A A A A A A A A A A A A A A A 72 74 Objets Excel – Range (4) Objets Excel – Range (5) Propriétés principales par ordre d'importance Type Description Type de plage 1 cellule unique Valeur de la cellule Dépend du contenu Value Plusieurs cellules Valeur des cellules Variant (tableau) Address Adresse Excel 1/+ cellules String Count 1/+ cellules Nombre de cellules Long 1 cellule unique Formule de la cellule String Formula Plusieurs cellules Formules des cellules Variant (tableau) Row, Column 1/+ cellules n° première ligne, colonne Long Font 1 cellule unique Attributs de police Font Interior Interior 1 cellule unique Intérieur (fond, etc.) Height, Width 1/+ cellules Hauteur, Largeur Double Next, Previous 1 cellule unique Cellule suivante, préc. Range (1 cellule) Propriété Méthodes principales par ordre d'importance Lect /écr. Méthode [(params)] Select ClearContents Clear Activate Delete(décalage) Insert(décalage) Copy, Cut SpecialCells(type) Find(quoi) Replace(quoi,par) Sort L+E L L L+E L L... L... L+E L... 75 Type de plage 1/+ cellules 1/+ cellules 1/+ cellules 1 cellule unique 1/+ cellules 1/+ cellules 1/+ cellules 1/+ cellules 1/+ cellules 1/+ cellules 1/+ cellules Description Sélectionne les cellules Efface les formules Efface tout (formules, format, ...) Activation d'une cellule de la sélection Supprime les cellules en décalant les voisines Insère des cellules en décalant les voisines Copie ou Coupe les cellules Retourne des cellules spéciales (Range) Recherche une information Remplace une chaîne par une autre Trie les valeurs (selon une colonne, ...) 76 5/5
Documents pareils
Fiche N°6 Les propriétés du classeur et des feuilles de calcul
Workbooks("NomDuClasseur.xls").Activate
Les Objets Excel - Infodauphine.com
WorksheetFunction: permet d'utiliser les fonctions natives Excel
Chart: les graphiques
Window: la fenêtre Excel (permet de gérer sa taille, la disposition, les volets, etc.)