IFT-20403-A-cours-9-VBA-PDF
9 pages
Français

IFT-20403-A-cours-9-VBA-PDF

-

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
9 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Introduction à la POOExcel 2000 et VBA • Nous avons vu :– Algorithmique et programmation séquentielle– Programmation événementielleMacros Excel, introduction à VBA – Visual Studio et Visual Basicpour Excel 2000 – Conception d’application (Génie logiciel)– Microsoft Excel• Nous avons besoin d’un dernier outil Philippe Pasquierconceptuel :La programmation orienté objet.Philippe Pasquier, Octobre 20032IFT-20403-A Basic et Visual BasicIntroduction à la POO Introduction à la POO• La programmation structurée est basée sur la • Modularité et encapsulation :dichotomie :– Description des structures de données– Idée : regrouper dans un même module – Codage des algorithmes qui manipulent ces des données et les traitements agissant donnéessur celles ci.• Avantages : – On parle d’encapsulation des données– séparation entre les données et leurs • Les modules constituent des unités de comportementsprogrammation autonomes que l’on • Inconvénients :fait interagir pour constituer une – Toutes les données et tous les comportements sont mélangésapplication : exemple des modules VB– L’évolution du programme n’est pas facilitéePhilippe Pasquier, Octobre 2003 Philippe Pasquier, Octobre 20033 4IFT-20403-A Basic et Visual Basic IFT-20403-A Basic et Visual BasicIntroduction à la POO Introduction à la POO• Notion d’objet :• Visibilité des données ou des procédures / – Unité autonome de programmation/conceptionméthodes attachées à un objet :– ...

Informations

Publié par
Nombre de lectures 166
Langue Français

Extrait

Excel 2000 et VBA
Macros Excel, introduction à VBA
pour Excel 2000
Philippe Pasquier
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
2
Introduction à la POO
Nous avons vu :
Algorithmique et programmation séquentielle
Programmation événementielle
Visual Studio et Visual Basic
Conception d’application (Génie logiciel)
Microsoft Excel
Nous avons besoin d’un dernier outil
conceptuel :
La programmation orienté objet.
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
3
Introduction à la POO
La programmation structurée est basée sur la
dichotomie :
Description des structures de données
Codage des algorithmes qui manipulent ces
données
Avantages :
séparation entre les données et leurs
comportements
Inconvénients :
Toutes les données et tous les comportements
sont mélangés
L’évolution du programme n’est pas facilitée
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
4
Introduction à la POO
Modularité et encapsulation :
Idée : regrouper dans un même module
des données et les traitements agissant
sur celles ci.
On parle d’encapsulation des données
Les modules constituent des unités de
programmation autonomes que l’on
fait interagir pour constituer une
application : exemple des modules VB
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
5
Introduction à la POO
Notion d’objet :
Unité autonome de programmation/conception
Regroupement de données et de
procédures/méthodes agissant sur ces données
Plus proche du processus naturel de réflexion
humaine (facilite la modélisation et donc la
conception)
Programmation orientée objet (POO) :
programmer avec des objets
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
6
Introduction à la POO
Visibilité des données ou des procédures /
méthodes attachées à un objet :
Accessible depuis d’autres objets
Accessible depuis les procédures de l’objet
seulement (privée)
Interface : ensemble des données et
méthodes visibles d’un objet
Implémentation : ensemble des données et
méthodes invisibles d’un objet
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
7
Introduction à la POO
Classe : description générique d’attributs /
propriétés / données membres et des
méthodes / procédures qui leurs sont
attachées
Peut-être considérée comme une extension
de la notion de type utilisateur (structure
d’enregistrement).
Instance = objet : représentant physique
d’une classe avec valuation concrète des
données / propriétés
Instantiation : processus de création d’un
objet à partir d’une classe.
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
8
Introduction à la POO
Héritage :
Éviter de définir plusieurs fois les mêmes
données.
Permets de définir une super-classe à partir
d’une sous-classe.
Collection : ensemble d’objets d’une
même classe
Bien d’autres concepts que nous ne
verrons pas : redéfinition de méthode,
polymorphisme, …
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
9
Introduction à la POO
Exemple (fictif) de classe :
Voiture :
Propriétés :
Marque As String
Modèle As String
Vitesse As Single
Position, Couleur, …
Méthodes :
Démarrer()
Arrêter()
Volant(angle As Single)
Vitesse(v As Single), …
Évènements :
-
Choque
-
Vent
-
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
10
Introduction à la POO
Exemples de classes :
Compte en banque
Bouton de commande : propriétés et
méthodes (procédures événementielles)
Exemples d’instances (objet) :
Le compte en banque de Jean-Paul
Le bouton de commande
Cmdquitter
Exemples de collections : les
boutons de commandes, les comptes
en banques, les voitures, …
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
11
Introduction à la POO
Exemple d’héritage :
La sous-classe spécialise la super classe
(contrôle : bouton, zone de texte,…)
Animal
Mammifère
Lion
Chien
Homme
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
12
Présentation du langage VBA
Visual Basic est un langage de
programmation complet.
Visual Basic pour Application est
l’utilisation de VB pour travailler avec
les objets des applications Windows
(Office 2000/XP : Word, Access, Excel,
Outlook, Frontpage et PowerPoint).
Nous ne verrons que VBA pour Excel
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
13
Objectifs de VBA pour Excel
Automatiser des actions répétitives (parfois
inhumaines)
Interagir sur les classeurs Excel : tous les
objets Excel peuvent être modifiés (classeur,
feuille, cellules, présentation, formules, …)
Création de formulaires personnalisés : avec
les contrôles ActiveX (ceux que l’on a déjà vus)
Modifier la configuration d’Excel : barre de
menus affichés, …
Personnaliser l’interface d’Excel : création de
nouveaux menus, de nouvelles commandes
Communiquer avec d’autres applications Office
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
14
Quelques définitions
Projet : à chaque classeur Excel est
associé un projet VBA regroupant tous les
modules de code VB
Module : on a vu de quoi il s’agit en VB, ils
peuvent être exportés en fichiers
indépendants afin d’être importés dans
d’autres classeurs
Procédures : écrites ou générées par des
macros.
Fonctions : les fonctions sont des
procédures qui renvoient une valeur
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
15
La hiérarchie des objets Excel
On a vu les bases de la programmation
orienté objet (implicitement puis
explicitement)
VB et VBA sont des langages de POO :
on peut définir des modules de classe.
Excel a été programmé en POO : Excel
est constitué d’objets.
On va voir les bases de la hiérarchie des
classes d’objets Excel.
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
16
Modèle Objet d’Excel - Extrait
Application (Excel)
Workbooks (classeur)
Worksheets (feuille)
Charts (graphique)
Charts (graphique)
WorkSheetFunction
Range
Styles
Border
Objets
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
17
Propriétés des objets Excel
Les objets Excel, comme tout objet (Contrôles
VB, …) sont dotés de variables internes,
attributs ou propriétés.
On y fait référence par
:
Objet.propriété
Exemple d’utilisation :
CmdQuitter.Enabled=True
‘Rend le bouton actif
boolEtat=CmdQuitter.Enabled ‘récupère l’état
Application.Cursor=xlWait
‘sablier
Application.Cursor=xlDefault‘curseur standard
MsgBox Application.Version
‘affiche la version
de l’application
Excel active
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
18
Méthodes des objets Excel
Les méthodes sont les procédures et fonctions
attachées aux objets.
On les appelles par :
objet.méthode argument1,argument2,…
Exemples :
Range(«A1:C12»).Select
‘sélectionne la plage
Selection.Clear
‘efface le contenue des
cellules sélectionnées
ActiveWorkbook.SaveAs «C:\devis\devis-3.xls»
‘Enregistre le classeur actif dans un fichier.
ActiveCell.Name = «Total» ‘nomme la cellule active
Range(«B2:B45»).Name = «Total»
‘nomme la plage
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
19
Modèle Objet d’Excel - Évènement
Les objets Excel répondent à des
évènements déclenchés par l’utilisateur :
Ouverture d’un classeur
Ajout d’une feuille
Sélection de cellules
Clic sur un bouton de commande
Changement de cellule active
Entrée d’une donnée, …
On utilise les procédures évènementielles
pour les traiter (lorsque nécessaire).
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
20
Modèle Objet d’Excel - Évènement
Exemple de procédure événementielle VBA :
Private Sub Workbook_NewSheet(ByVal Sh As Object)
MsgBox ("La " & ActiveWorkBook.Worksheets.Count feuille,
nommée " & Sh.Name & Chr(13) & "vient d'être ajoutée au
classeur"
&
ActiveWorkBook.Name )
End Sub
À placer dans le volet Workbook du code :
Cliquer sur le Workbook dans l’explorateur
de projet
Choisir Workbook dans le menu de gauche
de la fenêtre de code
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
21
Modèle Objet d’Excel - Collections
Lorsque plusieurs objets d’une même classe
cohabitent,
on parle de collection.
Référence à un objet d’une collection:
NomCollection!NomObjet
NomCollection![NomObjet]
NomCollection(« NomObjet »)
NomCollection(var),
var
est une
expression de type String correspondant au nom
de l’objet
NomCollection(index)
index
est le numéro
d’index de l’objet dans la collection.
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
22
Modèle Objet d’Excel - Collections
Exemples :
Workbooks![Devis.xls].Worksheets![Feuil1].Activate
Workbooks!(«Devis.xls»).Worksheets!Feuil1.Activate
Workbooks![Devis.xls].Worksheets!(«Feuil1»).Activate
Parcours d’une collection :
Dim i as Integer
For i=1 To ActiveWorkBook.Worksheets.Count
ActiveWorkbook.worksheets(i).Name=«DevisN» & i
Next i
Instruction For Each …Next:
Dim Feuille As Worksheet
For Each Feuille In activeWorkbook.Worksheets
Feuille.Name=«DevisN» & Feuille.Index
Next Feuillle
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
23
Instructions spécifiques aux objets
With <objet>
<code utilisant méthodes et propriétés>
End With
Exemple :
With ActiveWorkbook
creé une feuille après la dernière feuille du classeur actif
.Worksheets.Add , .WorkSheets(Worksheets.Count)
‘modifie la nouvelle feuille et renseigne A1
With .ActiveSheet
.Name=« synthèse »
.Range(« A1 ») = Récapitulation des devis
End With
End With
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
24
Instructions spécifiques aux objets
L’instruction If TypeOf :
If TypeOf <objet> Is <TypeObj> Then
<code utilisant <objet>>
End If
Exemple :
If TypeOf obj.Parent Is Worksheet Then …
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
25
Instructions spécifiques aux objets
L’instruction Set :
Set <Objet> = [New]<expression objet>
Sert à référencer des objets déjà existants ou à créer de
nouveaux objets (avec
New
)
Exemple :
Dim Classeur As Workbook
Dim i As Integer
‘création d’un nouveau classeur
Set Classeur = Application.Workbooks.Add
‘ affectation des noms
With Classeur
.workSheets(1).Name=« ventes 2000 »
.workSheets(2).Name=« ventes 2001 »
End With
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
26
Écriture de code VBA
Deux possibilités pour créer le code des
procédures VBA :
Générer automatiquement le code à partir de
l’enregistreur de macros : les macros sont
limitées (mise en forme de cellules, tri de
données, …)
Saisir le code dans l’environnement VBE
(Visual Basic Editor) : sans limite ou presque
(algorithme de calcul, interaction avec
l’utilisateur, gestion de la cohérence des
données, …)
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
27
Les macros d’Excel
Les macros permettent d’automatiser
certaines tâches sous Excel.
Les macros sont des procédures VBA
composées d’une série d’instructions
qui commandent à Excel l’exécution
d’actions lorsque appelée.
Barre d’outils Visual Basic (clic droit sur
les barres d’outils pour la faire
apparaître)
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
28
Les macros d’Excel - barre d’outils VBA
Microsoft Script Editor
Enregistrer une macro
Exécuter une macro
Réglage des paramètres
de sécurité
Éditeur Visual Basic
Boite à outils
Contrôles
Mode Création
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
29
Travailler avec les macros Excel
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
30
Les macros Excel
Les affectations de macros :
À un nom de macro : définir lors de la création de la
macro
À un raccourci clavier : définir lors de la création de
la macro
À un bouton de formulaire :
Créer le bouton
La fenêtre affecter une macro apparaît automatiquement
À un objet graphique :
Créer l’objet graphique puis clic droit « affecter macro »
À une zone sensible d’un objet graphique : rendre
l’objet invisible
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
31
Les macros Excel
À un bouton d’une barre d’outils :
Affichage>barre d’outils>Personnaliser
Onglet Commande : catégorie macro, faire glisser
faire la barre d’outils ciblée
Clic droit sur l’outil choisir affecter une macro
puis sélectionner le nom de la macro désirée
À une commande de menu :
Outils>Personnaliser, onglet Commande, puis
faire glisser nouveau menu à l’emdroit désiré.
Clic droit pour paramétrer ce nouveau menu
Ajout d’une option : sélectionner macro dans les
catégorie et faire glisser élément de menu
personnalisé
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
32
Environnement VB
Très peu différent de Visual Studio :
Explorateur de projet
Fenêtre de propriétés
Fenêtre de code
Fenêtre(s) de débogage,…
La nouveauté : l’explorateur d’objet
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
33
L’explorateur d’objets
Liste des bibliothèques
chargées
Texte recherché
Résultat de la
recherche
Classes d’objets
de la bibliothèque
sélectionnée
Méthode
Propriété
Événement
Constantes
Détails de la sélection
Philippe Pasquier, Octobre 2003
IFT-20403-A Basic et Visual Basic
34
Questions
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents