Le Tableur EXCEL La Programmation en VBA
Excel VBA – AgroParisTech - Juliette Dibie. Page 1. I. INTRODUCTION A EXCEL VBA. EXCEL VBA (Visual Basic pour Application) est un langage de programmation.
Excel - Programmation VBA
Type de la valeur retournée par la fonction. Un classeur Excel contenant du code VBA doit être enregistré au format. XLSM prenant en charge les macros. Sinon
Programmation VBA développement rapide dinterfaces
VBA: Visual Basic pour Application. ? Langage Visual Basic fortement associé à la suite bureautique. MS Office : Word Powerpoint… Excel. ? VBA et Excel:.
Initiation à VBA pour Excel.pdf
o parmi les ouvrages très complets consacrés à VBA sous Excel B. Jelen. & T. Syrstad VBA and macros for Microsoft Excel (ou J. Walkenbach. VBA pour Excel
Manipulation des Objets Excel sous VBA
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.
Déboguer un programme VBA :
Déboguer un programme VBA : 0 Copier-coller le code ci-dessous dans un module VBA Excel : Sub InscrireValeurs(). 'Auteur: Michel Berthiaume.
Comment créer et utiliser une fonction
fonction EXCEL. La fonction doit être écrite en VBA dans le module d'un classeur. La première chose à faire est donc d'ouvrir un classeur Excel
Manipulation des Objets Excel sous VBA
Manipulation des Objets. Excel sous VBA Aller sur l'éditeur VBA (Alt+F11). 2. Créer une nouvelle classe Etudiant. 3. Saisir le code de la classe.
Developpez.net
l'intermédiaire de l'environnement Vba Project. Donc si vous souhaitez faire apparaître le formulaire depuis le fichier Excel il vous faut créer une.
Développement dune application de gestion de lactivité FX à laide
l'activité FX à l'aide de VBA sous Excel. Travail de diplôme réalisé en vue de l'obtention du diplôme HES. Par : Priscilla THENARD.
Programmation VBA, développement
UMSLGH G·LQPHUIMŃHV
Hervé Hocquard
Sommaire
`Introduction `VBA et Excel `I·pGLPHXU 9%( `Modèle objet de VBA `Procédures Sub `Procédure Function `Enregistrer des Macros `Programmation en VBA `Variables, instructions `Objets Range `VBA et fonctions `GpURXOHPHQP G·XQ SURJUMPPHL3-Université de Bordeaux2
Introduction (1)
`VBA: Visual Basic pour Application `Langage Visual Basic fortement associé à la suite bureautique06 2IILŃH JRUG 3RRHUSRLQP" Excel.
`VBA et Excel: `Automatiser certaines tâches `Exécuter des actions en série (traitement par lot ou batch processing) `Commandes et boutons personnalisées `Ajouter des boutons dans le ruban `Créer des interfaces graphiques et des applications avec ExcelL3-Université de Bordeaux3
Avantages / inconvénients du VBA
AvantagesInconvénients
`$XPRPMPLVMPLRQ G·XQH exécution `Rapidité `Régularité `Sans erreurs `Apprentissage "facile»SHUPHPPMQP G·pPHQGUH OHV
IRQŃPLRQQMOLPpV G·([ŃHO
`Fortement lié à Office `Nécessite Excel `Pérennité du code? `Limité: difficile de produire de "grosses» applicationsPMLV ŃH Q·HVP SMV ŃH TX·RQ
lui demande)L3-Université de Bordeaux4
But du module
`"Augmenter» les capacités des applications bureautiques (Excel) en proposant vos propres programmes, adaptés aux besoins `Développer rapidement des interfaces sur un éditeur dédié afin de faciliter la prise en main de vos programmesSMU G·MXPUHV GMQV O·HQPUHSULVH
L3-Université de Bordeaux5
Partie 1 : VBA et Excel
`I·pGLPHXU 9%( `Modèle objet de VBA `Procédures Subet FunctionL3-Université de Bordeaux6
I·pGLPHXU 9LVXMO %MVLŃ (GLPRU
Alt + F11
L3-Université de Bordeaux7
HQVHUPLRQ G·XQ PRGXOH GMQV O·pGLPHXU
L3-Université de Bordeaux8
Enregistrer une macro
L3-Université de Bordeaux9
Enregistrer une macro
L3-Université de Bordeaux10
HPSMŃP GMQV O·pGLPHXU
L3-Université de Bordeaux11
Le modèle objet dans VBA
`8Q RNÓHP HVP ŃRQVPLPXp G·MPPULNXPV RX SURSULpPpV HP GH méthodes qui lui sont associées `Les objets existants sont constitués en hiérarchie (relation de composition)Application
AddinCommandBarWindowWorkbook
ChartNameWorksheet
CommentRangeHyperlink"
L3-Université de Bordeaux12
Les collections
`Concept clé `On rajoute un "s»! `Workbooks: collection des objets Workbook `Worksheets: collection des objets Worksheet `" HPŃB `)MLUH MSSHO j XQ pOpPHQP G·XQH ŃROOHŃPLRQ 2 PpPORGHV `$SSHO SMU OH QRP GH O·pOpPHQP `Ex: Worksheets("Feuil1") `Appel par l'indice `Ex: Worksheets(1)L3-Université de Bordeaux13
Hiérarchie: Accéder aux objets
`Opérateur point ( . ) `Ex: rksheets(1).Range("A1").Value=934 `Simplification: par exemple si Classeur1.xlsx est le classeur actif: `Worksheets(1).Range("A1").Value=934L3-Université de Bordeaux14
Propriétés d'un objet
L3-Université de Bordeaux15
Méthode d'un objet
`Action relative à un objet `Exemples: `Worksheets("Feuil1").Activate `Range("A1").Copy Range("B1") `Une méthode prend en compte 0, 1 ou plusieurs arguments. `Le premier argument est séparé de la méthode par un espace, les arguments sont séparés entre eux par des virgules `OU utilisation des parenthèsesL3-Université de Bordeaux16
Procédures
`2 Types: Subet Function `Une procédure Subest un groupe d'instructions VBA qui exécute une ou plusieurs actions avec Excel. `Une procédure Functionest un groupe d'instruction VBA qui exécute un calcul et retourne une seule valeur. `L'enregistreur de macros produit toujours une procédure Sub. `Possibilité de lancer une procédure Subvia des raccourcisŃOMYLHU C GHV NRXPRQV SHUVRQQMOLVpV"
`Mais une procédure Functionn'est appelée que dans une cellule ou dans une autre procédure.L3-Université de Bordeaux17
Syntaxe de base Sub
`Il faut toujours indiquer où se trouve le début et la finGX SURJUMPPH TXH O·RQ pŃULPB
PublicSubnom_du_programme(on peut mettre des
arguments ou pas)End Sub
Indique la fin
Indique le début
L3-Université de Bordeaux18
Syntaxe de base Function
`Une fonction encapsule aussi un ensemble d'instructions, mais retourne une valeur (désignée par le nom même de la fonction). `Cette valeur doit être affectée au nom de la fonction avant la fin du bloc d'instructions. `Syntaxe :FunctionQRPMUJ1 $V P\SH " $V 7\SH
Instructions
nom = exp_du_bon_typeInstructions
End Function
`Il faut préciser le type de la valeur retournée.L3-Université de Bordeaux19
Partie 2 : Programmation en VBA
`Variables, instructions `Objets Range `VBA et fonctions `GpURXOHPHQP G·XQ SURJUMPPH `Evènements automatiques `Gérer les erreursL3-Université de Bordeaux20
Premiers pas
`Pas de point virgule à la fin d'une instruction `Une instruction par ligne `Espace + underscore(" _") pour écrire une instruction sur plusieurs lignes `Commentaires: commencer la ligne par une apostropheL3-Université de Bordeaux21
Les Variables
`Nommage: `Doit commencer par une lettre, puis lettres, chiffres et quelques caractères spéciaux `Pas de différence de casse `Caractères invalides: #, $, %, &, ! `Maximum 254 caractères `Typage des données `Données peuvent être non typées explicitement: type VariantL3-Université de Bordeaux22
Typage des données
TypeValeurs
`Boolean `Integer `Long `Single `Double `Currency `Date `String `Object `Variant `Vrai, faux `Entiers `Entiers `Réels `Réels `4 chiffres après la , `1/1/100 à 31/12/9999 `Chaines de caractères `Tout objet `N'importe quel typeL3-Université de Bordeaux23
Déclarer des variables, portée
`Forcer la déclaration: ajouter en début de module `Option Explicit `Portée: procédure courante: `Dimou Staticdans la procédure `Dim nomVariableAs type `Portée: module: `Dim hors d'une procédure `Portée : toutes les procédures, tous les modules: `Public au tout début du moduleL3-Université de Bordeaux24
Variables particulières
`Les variables Statiques `Ne sont pas réinitialisées à la sortie de la procédure (ex, pour des compteurs) `StaticCompteur As Integer `Les Constantes `la valeur est donnée et ne peut changer `ConstPi As Double = 3.1415 `Les dates `Doivent être mises entre dièses sous la forme:L3-Université de Bordeaux25
Instructions
`Affectation : = `Opérateurs: +, *, /, -, ^, &, \, Mod `Opérateur logique: Not, And, Or, Xor, Eqv, ImpL3-Université de Bordeaux26
Les tableaux (1)
`Déclaration `Dim MonTableau(1 to 100) As Integer `Index débute à 0 par défaut; `Option Base 1 `Tableaux multidimensionnels `Dim MonTableau(1 to 10, 1 to 10) As Integer `Affectation `MonTableau(3,4) = 125L3-Université de Bordeaux27
Les tableaux (2)
`Tableaux dynamiques `Création `Dim MonTableau() As Integer `Redimensionnement `ReDimMonTableau(NombreElement) `Redimensionner en gardant les données déjà présentes `ReDimPreserveMonTableau(NombreElements)L3-Université de Bordeaux28
Les tableaux avec Array(3)
`Structure pour afficher le contenu: `2X MORUV"Dim mois As Variant
Dim m As Variant
mois = Array("Janvier", "Mars", "Août", "Décembre")For Eachm Inmois
MsgBoxm
NextmDim mois As Variant
Dim i As Integer
mois = Array("Janvier", "Mars", "Août", "Décembre")For i = 0To3
MsgBoxmois(i)
NextiL3-Université de Bordeaux29
L'objet Range (1)
`Plage de cellule `Range("A1:C5"), Range("Liste_Prix")(plage nommée) Range("3:3") (ligne entière), Range("D:D") (colonne entière). `Propriétés: CellsOffset
Value Text CountColumn, Row
Address
hasFormula FontInterior
Formula
NumberFormat
L3-Université de Bordeaux30
L'objet Range (2)
`Méthodes `Select : Sélectionne une plage de cellule `Range("A1").SelectSelection.Value= "toto"
`Range("A1").Value = "toto" `Copy, Paste `Range("A1:A2").SelectSelection.Copy
Range("C3").Select
ActiveSheet.Paste
`Clear: efface le contenu et la mise en forme `Delete: supprime une plage (et décale les cellules)L3-Université de Bordeaux31
L'objet Range (3)
`([HPSOHV j PHVPHU HP RNVHUYHU" `Range("A1:H8").Formula = "=Rand()" `ActiveSheet.Cells(2, 1).Formula = "=Sum(B1:B5)" `ActiveSheet.Cells(2, 1).FormulaLocal= "=Somme(B1:B5)" `ActiveSheet.Cells(2, 1) =1:B5"))
`Worksheets(1).Range("C5:C10").Cells(1,1).Formula = "=Rand()"
L3-Université de Bordeaux32
L'objet Range (4)
`([HPSOHV j PHVPHU HP RNVHUYHU"PRXP G·MNRUG j SMUPLU GH $1 UHPSOLU XQ PMNOHMX GH GRQQpHV"SMU H[HPSOH $1 $I($B(175(B%251(60100
`MsgBoxRange("D4").CurrentRegion.Address `MsgBoxRange("D4").End(xlToLeft).Column `MsgBoxRange("D4").End(xlToRight).Column `MsgBoxRange("D4").End(xlUp).Row `MsgBoxRange("D4").End(xlDown).Row33L3-Université de Bordeaux
Instructions de contrôle
`If ²Then: Exécute une action si la condition est vérifiée `Select Case : Exécute une action parmi plusieurs, selon la valeur retournée `For ²Next: Exécute une série d'instructions en boucle autant de fois que spécifié `For Each²Next: Parcourir une collection `Do ²While: Exécute une série d'instructions en boucle tant que la condition est vraie (True) `Do ²Until: Exécute une série d'instructions en boucle jusqu'à ce que la condition soit vraieL3-Université de Bordeaux34
If / ElseIf/ Then
L3-Université de Bordeaux35
Select Case
L3-Université de Bordeaux36
For Next
For compteur = début To Fin [Stepintervalle]
[instructions] [Exit For] [instructions]Next[compteur]
L3-Université de Bordeaux37
Do While, Do Until
L3-Université de Bordeaux38
Evènements
`Action déclenchant l'appel d'une méthode `Primordial en interfaces graphiques! `Certains objets disposent d'évènementsL3-Université de Bordeaux39
Partie 3 Les enregistrements
`Type structuré `Champs simples ou structurésL3-Université de Bordeaux40
Les enregistrements
41`Contrairement aux tableaux, ce type structuré permet de regrouper des données de types différents. `Exemple : on identifie un ouvrage par un code, un titre, un ou plusieurs auteurs, un éditeur et éventuellement la date de parution. `Ouvrage est une variable de type enregistrement; chacune de ces cinq données est un champ pouvant être simple ou structuré.
L3-Université de Bordeaux
`Les enregistrements sont déclarés en VB avec le mot Type. `Syntaxe :Type NomEnregistrement
Champ1 As type1
Champ2 As type2
End Type
`Exemple :Type ouvrageType Date
code as Integerjour As Integer titre As String*40mois As Integer auteur As String*50anneeAs Integer editeurAs String*50End Type dateparutionAs DateEnd Type
Les enregistrements
42Champs
simples Champ structuréL3-Université de Bordeaux
`Exemple :Type ouvrageType Date
code as Integerjour As Integer titre As String*40mois As Integer auteur As String*50anneeAs Integer editeurAs String*50End Type dateparutionAs DateEnd Type
`Pour accéder à un champ :Dim livre As ouvrage
livre.auteur= "Durand " livre.dateparution.annee= 1980RXYUMJH"GLP OLYUH1 7R 10000 MV RXYUMJH"
OLYUHEBMXPHXU GXUMQG V·LO V·MJLP GX QHXYLqPH OLYUH GH OM OLVPH"Les enregistrements
43L3-Université de Bordeaux
Les enregistrements ²Exemple
44Un étudiant est défini par son nom, son prénom, sa date de naissance et sa note :
PrivateType Etudiant
nom As String * 40 prenomAs String * 40 dateNaissanceAs Date note As DoubleEnd Type
Une classe peut contenir au plus 30 étudiants :PrivateType Classe
End Type
2Q GpŃOMUH HQVXLPH OM ŃOMVVH G·pPXGLMQPV Dim c As Classe
L3-Université de Bordeaux
Les enregistrements ²Exercice
45`I·H[HPSOH SUpŃpGHQP VHUM ŃRPSOpPp GMQV OH SURŃOMLQ ŃRXUV VXU OHV LQPHUIMŃHV JUMSOLTXHV"
`Comment définir une matrice ?`Créer un programme qui affiche le nombre de lignes et de ŃRORQQHV G·XQH PMPULŃH VMLVLH VXU OM )HXLO1 GX ŃOMVVHXUB
L3-Université de Bordeaux
3MUPLH 4 GpYHORSSHPHQP 5MSLGH G·LQPHUIMŃHV
`Boîtes de dialogue de base `UserFormet éditeur graphique `Les différents contrôlesL3-Université de Bordeaux46
Ma MsgBox
`Boite de dialogue de base, "personnalisable" vbOKOnly vbOKCancel vbAbortRetryIgnore vbYesNoCancel vbYesNo vbRetryCancel vbCritical vbQuestion vbExclamation vbInformation vbDefaultButton1 vbDefaultButton2 vbDefaultButton3quotesdbs_dbs14.pdfusesText_20[PDF] EXCEL fonctions financières - Anciens Et Réunions
[PDF] EXCEL Gaine Rigide et Flexible - Les Lois De Construction
[PDF] Excel initiation
[PDF] Excel Macros VBA
[PDF] EXCEL NIVEAU III - Email
[PDF] Excel par l`exemple – Exercice 18
[PDF] Excel par l`exemple – Exercice 6
[PDF] Excel Password Remover 2015 v2015 - Anciens Et Réunions
[PDF] EXCEL Perfectionnement
[PDF] Excel pour responsable de production
[PDF] Excel Services Excel Online – Excel web access titre et - Anciens Et Réunions
[PDF] Excel Template
[PDF] Excel Timeline Template
[PDF] Excel TP 1 - LIPN - Université Paris 13