Projet. Rappel VBA. Manuele Kirsch Pinheiro - UP1 / CRI / UFR06 Ges>on 28/02/15



Documents pareils
PROGRAMMATION EVENEMENTIELLE sur EXCEL

Visual Basic for Applications

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Évolu>on et maintenance

Concepon et réalisaon

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Formation VBA 3 Interagir

FORMATION au VBA Pour EXCEL. Version 2007 & +

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Le contrôle fiscal anno 2013

Architecture matériel et logiciel 2

Les méthodes Agiles. Introduc)on aux méthodes Agiles Exemple : Scrum

MTI820 Entrepôts de données et intelligence d affaires. Les applica+ons de BI

Présentation Level5. Editeur de Logiciels. «If it s not monitored, it s not in production» Theo Schlossnagle #velocityconf

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Gestion de stock pour un magasin

TD3 - Facturation avec archivage automatisé

.NET - Classe de Log

Formations 2015 Bureautique

Vérifica(on et Valida(on de Business Process. Ang Chen et Levi Lúcio

DEVELOPPER SON SOURCING VIA LES RESEAUX SOCIAUX FACEBOOK

Paginer les données côté serveur, mettre en cache côté client

DOCUMENTATION KAPTravel Module de gestion des appels de disponibilité

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

H2PS engage ses compétences auprès des entreprises et des parculiers par la mise en place de soluons d accompagnements et de services.

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Bases de données avancées

Programmer en JAVA. par Tama

CATALOGUE DES FORMATIONS 2014

Rapport de Mini-Projet en ArcGIS Engine

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Algorithmique et programmation : les bases (VBA) Corrigé

Excel et les bases de données

OLAP : Mondrian + Pentaho. Maguelonne Teisseire Hugo Alatrista Salas hugo.alatrista- salas@teledetec9on.fr Flavien Bouillot

Les termes du cloud CUMULO NUMBIO 2015 O. COLLIN

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

WEB-OFFICE-FORMATION.FR FORMATION PROFESSIONNELLE CONTINUE ET DEVELOPPEMENT DE SITES WEB CATALOGUE 2013

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

La formation des IOBSP

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Utilitaires méconnus de StrataFrame

Programme «INVESTISSEUR»

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

SPIP. Gestion de la performance dans SPIP. Préoccupa)on historique

Collabora'on IRISA/INRA sur le transfert de nitrates et l améliora'on de la qualité des eaux des bassins versants:

Améliorez et industrialisez vos feedback produit

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

La Clé informatique. Formation Excel XP Aide-mémoire

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Flex. Lire les données de manière contrôlée. Programmation Flex 4 Aurélien VANNIEUWENHUYZE

Les bases du SEO (référencement naturel)

Devenez un virtuose de Google. Atelier en informa5que présenté par Dominic P. Tremblay

Stockez et organisez vos données sous Excel. Une approche systématique, structurée et simplifiée

Programmation en Java IUT GEII (MC-II1) 1

Objectifs du TP : Initiation à Access

Réunion de rentrée Licence PER Programma3on en environnement répar3. Année universitaire

Page Paragraphe Modification Mise en page du document Le bouton "Format de page" est maintenant "Page"

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

1 TD 2 : Construction d'une chier Acrobat et envoi par

L ou%l téléphone dans votre stratégie de marke%ng direct

MS SQL Express 2005 Sauvegarde des données

Créer le schéma relationnel d une base de données ACCESS

Initiation à Excel. Frédéric Gava (MCF)

CREATION WEB DYNAMIQUE

Préparation à l examen EFA en Macro

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Recherche dans un tableau

Guide de formation avec cas pratiques. Programmation. Philippe Moreau Patrick Morié. Daniel-Jean David

Bases de Données Avancées PL/SQL

Attaques applicatives

Initiation à VBA pour Excel. Philippe Bernard Ingénierie Economique et Financière Université Paris-Dauphine

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Programmation Visual Basic. Visite guidée d'un programme Visual Basic 6.0

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Java Licence Professionnelle CISII,

Le secteur de la Mutualité. Présenta*on des organismes Structure et caractéris*ques des emplois Zoom sur les mé*ers

Premiers Pas en Programmation Objet : les Classes et les Objets

Programmation avec Microsoft Visual Basic. NET. Réponses aux questions Solutions des exercices

INTRASTAT No ce explica ve Merkbla

Langage Java. Classe de première SI

Plan du cours. Historique du langage Nouveautés de Java 7

Programmation VBA. Excel Daniel-Jean David. et Groupe Eyrolles, 2014, ISBN :

Utiliser SQL Server 2008 R2 Reporting Services comme source de donne es pour Microsoft Excel

BIRT (Business Intelligence and Reporting Tools)

Cadastre du bruit SIT-JURA. Connecteur Arcview9.x - MSAccess. Mode d emploi. Appel formulaire. Page 1 sur 15

Cabinet de Conseil STRATÉGIE MANAGEMENT ORGANISATION JURIDIQUE FORMATION AVEC BW CONSULTANTS CHOISISSEZ DE GARANTIR VOTRE DEVELOPPEMENT

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

TC3 - Guide d utilisation pour la saisie des FA

Transcription:

Projet Rappel VBA 28/02/15 1

VBA : quoi & pourquoi? VBA : quoi? Langage et environnement de programma>on Orienté Objets A5aché aux documents MS Office VBA : pourquoi? Associer un comportement ac=f à des documents Office Calculs, vérifica>ons, etc. 2

VBA : documents MS Office Un document MS Office est composé des plusieurs éléments Fichier Access Tables (données) Requêtes Formulaires États (rapports) Modules (VBA) Feuilles Données Formules Modules (VBA) Fichier Excel MS Access MS Excel 3

Modèle Objets de VBA VBA : Modèle OO Les éléments manipulés par VBA sont des objets Worksheet (feuille de calcul), Range (cellules), Form (formulaire), Report (état), RecordSet (requête) Il est possible de créer de nouvelles classes è modules de classe Modèle OO Excel Modèle OO Access 4

VBA : Modèle OO Un objet VBA possède : Propriétés Comportement opéra>on sans retour de valeur opéra>on retournant une valeur A5ributs Procédures Événements Procédures Sub Func=on Procédure à opéra>on qu on appelle explicitement Ac>on de l u>lisateur (ou du système) sur un Property objet, déclenchant Ge#ers un traitement (Property Get) et Se#ers (Property Let) pour les aeributs 5

Collec=ons VBA : Modèle OO Ensemble d objets d un même type Worksheets (toutes feuilles de calcul), Forms (tous les formulaires), Controls (tous champs d un formulaire) Collec+on!["NomObjet"] Forms!["Employe"] Collec+on("NomObjet") Forms("Employe") Forms("Employe").Controls("Embauche") Worksheets("Feuil1").Cells(1,1) Formulaire «Employe» Cellule ( 1,1 ) Feuille «Feuil1» Contrôle «Embauche» 6

VBA : Modules Modules con>ennent le code VBA pour un document Plusieurs types de modules MS Objets Evènements Modules standards Procédures u>litaires Modules de classe Classes crées par l u>lisateur 7

VBA : concepts de base Environnement de programma>on (VBE) Excel : Ruban «Développeur» (onglet à ac>ver) Access : Ruban «Ou>ls de bases de données» 8

Variables VBA : concepts de base Une variable est un conteneur, on y garde une valeur Déclara>on est fortement recommandée, mais pas obligatoire Dim variable AS Type Dim auj As Date auj = Date 'date actuelle auj 24 / 11 / 2014 Types des données AS Integer à en>er AS Single à numérique (float) AS Boolean à booléen (True / False) AS String à chaîne de caractères AS Variant à n importe quel type de données AS Object à objet de n importe quelle classe 9

VBA : concepts de base Variables Une variable est un conteneur, on y garde une valeur qu on pourra u>liser plus tard! Dim a As Integer Dim b As Integer a = 2 b = a * a usage aeribu>on Pour les objets, l aeribu>on se fait à l aide de Set Dim cellule As Range Set cellule = Worksheets("Feuil1").Cells(1,1) MsgBox cellule.valeur Objet.Opéra@on Propriété Valeur de la classe Range 10

Fonc=ons (Func=on) VBA : concepts de base Opéra>on qui retourne une valeur correspondant au nom de la fonc>on Private Public Func=on MaFonc+on (paramètres ) AS Type MaFonc+on = valeur_à_retourner End Sub Public Func=on DateAujourdhui() As Date Dim auj As Date auj = Date DateAujourdhui = auj End Func=on 11

Procédures de type Sub VBA : concepts de base Exécu>on d une opéra>on qui ne retourne aucune valeur Private Public Sub NomProcédure (paramètre AS type )... End Sub Sub ValeurA1() Dim cellule As Range Set cellule = Worksheets("Feuil1").Cells(1, 1) MsgBox (cellule.value) End Sub 12

VBA : concepts de base Événements : Ac>ons réalisées par l u>lisateur (ou le système) sur un élément (feuille, formulaire, contrôle ) Exemples : ouverture d un document, clique sur un bouton, fermeture de l applica>on, ouverture d un formulaire Le type d événement varie en fonc>on de l élément qui reçoit l ac>on Sur une fenêtre (formulaire ou état) Open : à l ouverture, avant d afficher le 1 er registre Load : lorsque le 1 er registre est affiché Close : à la fermeture Contrôle Click : lorsqu on lui clique dessus Données (formulaire / contrôle associé à une source de données RecordSource /ControlSource) BeforeInsert / AderInsert: avant/après inser>on nouveau registre BeforeUpdate/AderUpdate: avant/après mise à jour registre Change : lors de la modifica>on d un contrôle 13

Evénements VBA : concepts de base Exemple : affichage d un message à l ouverture d un document Excel élément qui reçoit l ac>on («Workbook») quelle type d ac>on («Open») Private Sub Workbook_Open() MsgBox ("Bienvenue dans le document " _ & ThisWorkbook.Name & Chr(10) _ & "Feuille ac>ve : " _ & ThisWorkbook.Ac=veSheet.Name ) End Sub 14

& : concaténa+on _ : instruc+on sur plusieurs lignes VBA : évènements & procédures Evènements & Procédures A par>r d un événement, on peut invoquer une fonc>on ou une procédure Sub Private Sub Ancien_Click() annees = Anciennete (Forms("Employe").Controls("Embauche")) MsgBox "Anciennete de " & annees & " ans " _ & "à par+r du " & Forms("Employe").Controls("Embauche"), vbinforma+on End Sub Public Func=on Anciennete(dateEntree As Date) As Integer Dim auj As Date auj = Date 'date système actuelle Anciennete = DateDiff("yyyy", dateentree, auj) End Func=on 15

VBA : évènements & procédures Private Sub Ancien_Click() annees = Anciennete (Forms("Employe").Controls("Embauche")) MsgBox "Anciennete de " & annees & " ans " _ & "à par+r du " & Forms("Employe").Controls("Embauche"), _ vbinforma+on End Sub Public Func=on Anciennete(dateEntree As Date) As Integer Dim auj As Date auj = Date 'date système actuelle Anciennete = DateDiff("yyyy", dateentree, auj) End Func=on 16

VBA : évènements & procédures Objet_Evénement NomBouton _ Click 17

VBA : évènements & procédures Private Sub Annuel_Click() SalaireAnnuel Forms("Employe").Controls("Salaire") End Sub Public Sub SalaireAnnuel(Salaire As Single) Dim Annuel As Single Annuel = Salaire * 12 MsgBox "Salaire annuel est de " & Annuel End Sub 18

VBA : tableaux Tableaux Variables capables de garder plusieurs valeurs Variable au mul=plicité > 0 Première posi>on est 0, sauf indica@on contraire Dim tab_0_a_2(3) As Currency tab_0_a_2(1) = 1.5 tab_0_a_2 0 1.5 0 1 0 2 Dim tab_1_a_3(1 To 3) As Currency tab_1_a_3(1) = 1.5 tab_1_a_3 1.5 0 1 2 0 3 Dim tabbidim(2, 2) As Currency tabbidim(0, 0) = 1.5 tabbidim(1, 0) = 1.5 tabbidim 0 1 0 1 1.5 0 1.5 0 19

VBA : Instruc>ons de contrôle Instruc>ons condi>onnelles : if else If condi+on Then 'si condi+on vraie Else 'si condi+on faux End If op@onnel [ FAUX] If cond Bloc Else [ VRAI ] Bloc Then If mont <= 100 Then MsgBox "Frais " & mont & _ " inférieur à 100 : Validé!", vbinforma+on Else MsgBox "Frais " & mont & _ " supérieur à 100 : Valida>on par le directeur", _ vbokonly End If End If (suite) 20

VBA : Instruc>ons de contrôle Instruc>ons condi>onnelles : if elseif else If condi+on Then 'si condi+on vraie ElseIf condi>on2 Then 'si condi+on2 vrai Else 'si aucune des ' précédentes End If If mont > 0 And mont <= 50 Then MsgBox "Frais " & mont & _ " inférieur à 50 : Validé!", vbinforma+on ElseIf mont <= 100 Then MsgBox "Frais " & mont & _ " supérieur à 50 et inférieur à 100 : " _ & " Valida>on par le RH", vbokonly Else MsgBox "Frais " & mont & _ " supérieur à 100 : Valida>on par le directeur", _ vbokonly End If 21

VBA : Instruc>ons de contrôle Boucles : Do While Loop Do While condi+on ' exécute tant que la ' condi+on est vraie Loop [ FAUX] cond [ VRAI ] Bloc While 'tant qu il reste des registres dans le 'RecordSet Do While Not rsl.eof tot = tot + rsl("montant") rsl.movenext Loop (suite) Loop 22

VBA : Instruc>ons de contrôle Boucles : For Next, For each Next For début To fin Step n ' exécute de début ' jusqu à fin ' de n en n (step) Next For i = 0 To 2 Step 1 somme = somme + tab_0_a_2 ( i ) Next début i = 0 Bloc for Next i = i + step [ else ] fin? [ i = 2 ] 23

VBA : Instruc>ons de contrôle Boucles : For Next, For each Next On peut imbriquer plusieurs boucles For début To fin Step n ' exécute de début ' jusqu à fin ' de n en n (step) Next For i = 0 To 1 For j = 0 To 1 somme = somme + tabbidim ( i, j ) Next Next Pour chaque valeur de i, on fait j de 0 à 1 24

VBA : Instruc>ons de contrôle Boucles : For Next, For each Next On peut aussi parcourir toute une collec>on For Each var IN collec+on ' pour chaque élément var ' dans la collec+on ' (ou tableau) Next 'on va afficher les nombre de registres dans 'chaque table For Each t In CurrentDb.TableDefs MsgBox t.name & " : " & t.recordcount Next 25

VBA : accès aux données EXCEL Les données dans un document Excel (objet ThisWorkbook) s organisent en feuilles de calcul (objets Worksheet) et en cellules (objets Range) Quelques objets importants ThisWorkbook : document courant Ac=veWorkbook : document en 1 er plan (ac>f) Ac=veSheet : feuille de calcul ac>ve Les collec=ons vont permeere l accès aux différents objets de la classe correspondante Worksheets("Feuil1") à accès à la feuille «Feuil1» 26

Range VBA : accès aux données EXCEL La no>on de Range est essen>elle dans Excel. Un objet Range est une région dans une feuille contenant une ou plusieurs cellules Les opéra>ons de la classe Range vont nous permeere d interagir ou de modifier les cellules Ac>veSheet.Range("A1").Value Ac>veSheet.Cells(1, 2).Value A5en=on : les collec>ons démarrent en 1 (et pas 0) L opéra>on Value récupère la valeur de la cellule La collec>on Cells con>ent un ensemble d objets Range 27

VBA : accès aux données EXCEL Sub UnRange() MsgBox Ac=veSheet.Range("A1").Value MsgBox Ac=veSheet.Cells(1, 2).Value End Sub Private Sub ChangeA1() Worksheets("Feuil1").Cells(1, 1).Font.Size = 12 End Sub changement de la taille de la police 28

VBA : accès aux données ACCESS Accès aux données des tables peut se faire de différentes manières Par formulaires, par requête... Source : Form aeaché à une table On peut même ouvrir des bases sur d autres fichiers Ex.: un fichier Excel qui importe les données d un fichier Access 29

VBA : accès aux données ACCESS Exemple Employés Formulaire «Employe» (mode Créa=on) 30

VBA : accès aux données ACCESS Quelques objets importants DBEngine : objet qui gère l accès à une BdD Database : BdD ouverte bds = DBEngine.OpenDatabase("c:\docs\clients.accdb") bds = CurrentDb() RecordSet : ensemble d enregistrements Manipula>on des enregistrements Set rst = dbs.openrecordset("frais", dbopentable) Set rst = CurrentDb().OpenRecordset(sql) rst.movefirst rst.movenext rst.edit Requête modifiable Requête données en lecture seule 31

VBA : Accès aux BdD Exemple : calculer les frais matr = Me.Controls("Matricule") sql = "SELECT Frais.Montant FROM Frais WHERE Frais.Matricule=" & matr Set rsl = CurrentDb().OpenRecordset(sql) If rsl.recordcount > 0 Then rsl.movefirst Do While Not rsl.eof tot = tot + rsl("montant") rsl.movenext Loop End If MsgBox "Total des frais = " & tot, vbokonly Exécu>on de la requête SQL S il y a des enregistrements (RecordCount) Avance au premier enregistrement Tant qu on n arrive pas à la fin des enregistrements(eof) Avance au prochain enregistrement Récupère un champs rsl ("a\ribut") 32

VBA : modules de classe Modules de classes Défini>on d une classe A5ributs à variables Opéra=ons Property Get / Let Func=on / Sub Les a\ributs sont «exposés» en tant que «Property» par les Get et Let Usage : Dim msg AS New MessageBox Set msg = New MessageBox msg.titre = "nouveau =tre" msg.titre exécute Let Titre exécute Get Titre 33

VBA : modules de classe Aeributs Get : geeer (gettitre) Accès à la propriété Titre Let : seeer (settitre) Modifie la propriété Titre Func=on confirma>on Opéra>on 34

VBA : modules de classe Private Sub btnvalider_click() 'déclara>on d'un objet de type MessageBox Dim msg As New MessageBox 'usage de l'objet Msg msg.titre = "Valida=on frais " VBA appelle le Let Titre If msg.confirma=on("valider frais? ") = True Then valider Me.Frais.Controls("NumFrais"), True MsgBox "Frais confirmé!", vbokonly, msg.titre Else valider Me.Frais.Controls("NumFrais"), False MsgBox "Frais non accepté!", vbokonly + vbexclama+on, _ msg.titre ici VBA appelle le Get Titre End If End Sub 35

VBA : modules de classe MessageBox 36

Informa>que Modélisa>on UML Objec=fs : Exemple de projet en VBA

Rappel VBA VBA est un langage de programma>on (à l instar de PHP) qui est aeaché aux documents MS Office Un programme VBA n existe que s il est aeaché à un document MS Office (une fiche Excel, une base de données Acces) Grâce au VBA, on peut faire des calculs avancés, de vérifica>ons, etc. à l intérieur des documents MS Office 38

Exemple en VBA Exemple de projet Un employé d une société de vêtements a besoin d un pe>t système pour l aider à gérer les commandes qu il passe auprès des fournisseurs Le système doit enregistrer les produits et les commandes Si le stock est inférieur à un seuil (50 produits), le système doit conseiller l employé à passer une commande L employé doit être capable d enregistrer un nouveau fournisseur lors qu il passe une commande 39

Exemple VBA Démarche Établir les besoins : pour quoi faire? Diagrammes de cas d u=lisa=on Établir les données : que manipule- t- on? Premier diagramme de classes Diagramme objets pour illustrer le diagramme de classes Établir les processus : que faire? Dans quel ordre? Réfléchir aux processus mis en place Diagrammes d ac=vités Imaginer les interac=ons : Comment procède- t- on? Quels formulaires aurons- nous proposer? Quels états (rapports)? Réfléchir aux classes «contrôle» et aux modules nécessaires Améliorer / compléter le diagramme de classes 40

Exemple en VBA Diagramme de Cas d U>lisa>on : fonc=onnalités 41

Exemple VBA Diagramme de classes : données manipulées 42

Exemple VBA Diagramme objets : une commande 43

Exemple VBA Diagramme d ac>vités : éditer produits 44

Exemple VBA Diagramme d ac>vités : Passer une commande 45

Exemple VBA A par>r des diagrammes d ac>vités, nous pouvons établir les formulaires et états souhaités Formulaire pour nouveau produit Formulaire pour une nouvelle commande Rapport (état) sur une commande (pour l imprimer) Enrichir diagramme de classes : Ajouter les formulaires et les états Ajouter les éléments de «contrôle» (module de classes) contrôle de stock 46

Exemple VBA Diagramme de classes revisité 47

Exemple VBA Diagramme de paquetages 48

Exemple VBA Passage du projet à VBA Créa>on de la base de données Les tables correspondent aux classes de données Créa>on des formulaires Correspondant aux classes Form Créa>on des modules de programma>on Module de classe à correspond à la no>on de classe CtlStock : défini>on du seuil et vérifica>on du stock Module à ensemble d objets et d opéra>ons ModueGlobal : calculs variés (ex. : calculer total commande) 49

Exemple VBA Une «applica>on» VBA s u>lise un document MS Office, une base MS Access dans ce cas Créa>on des tables et formulaires prévus dans le diagramme de classes dans Access 50

Exemple VBA Formulaires : Produit 51

Exemple VBA Formulaires : Commande 52

Exemple VBA Formulaires : Fournisseur 53

Exemple VBA VBA va nous permeere de programmer les vérifica>ons qu on a indiqué dans les diagrammes d ac>vités (par des évènements) 54

Exemple VBA Vérifica>on stock lors de l édi>on des produits Aver=ssement à l entrée de FormProduit Aver=ssement dans FormProduit si stock < seuil 55

Exemple VBA Code VBA pour FormProduit Pour chaque produit on vérifie le stock À l ouverture du formulaire, on vérifie également Et lorsqu on modifie un produit, on aver>t aussi si stock<seuil 56

Exemple VBA Le seuil est le même pour toute l applica>on : Objet «controle» dans ModuleGlobal Dans les modules, on peut aussi ajouter les fonc=ons (opéra>ons) qu on n arrive pas à meere dans les formulaires 57

Exemple VBA Constructeur Les «Modules de Classe» correspondent à la no>on de classe. On y définit des propriétés et des opéra=ons Ge5er (Get) et Se5er (Let) pour la propriété stockmin Si on fait controle.stockmin = 30 on passe par le Let Opéra=on CheckStockMin 58

Exemple VBA Code VBA pour la ligne de commande À chaque mise à jour, on actualise la commande On vérifie le stock à chaque nouvelle ligne et on aver> l u>lisateur si le stock>seuil Les lignes de commande concernent la commande affichée 59

Exemple VBA Code VBA pour FormCommande Possibilité d impression Calcul total de la commande, effectué concrètement dans le ModuleGlobal 60

Exemple VBA Code VBA pour FormCommande Pour imprimer, on va u=liser un état capable d afficher la commande 61

Exemple VBA Code VBA pour FormCommande Pour imprimer, on va u=liser un état capable d afficher la commande 62