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

Les Objets Excel - Infodauphine.com

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.)

Plus en détail