Le Tableur EXCEL La Programmation en VBA
EXCEL VBA (Visual Basic pour Application) est un langage de programmation L'enregistreur de macro permet d'écrire du code VBA à partir d'opérations.
Des macros Excel pour exporter et importer des modules de code VBA
31 mai 2020 Mots clés : macro VBAVisual Basic Application
BONNES PRATIQUES VBA – Le débogage LES OUTILS DE
EXCEL offre un ensemble d'outils indispensables pour trouver ces erreurs et les corriger. Exécutons le code en mode pas à pas .
Explication du code VBA utilisé dans le tutoriel Créer un formulaire
16 jui. 2015 Je vous rappelle que le code VBA utilisé dans le tutoriel en question se trouve chez Excel-Plus puisqu'il s'agit d'un article invité.
Developpez.net
Excel peut générer automatiquement un formulaire de données intégré pour votre Objectif : documenter le code VBA pour le rendre plus compréhensible.
AIDE-MEMOIRE MINIMAL DE VISUAL BASIC POUR EXCEL
Ensemble de code écrit en Visual basic regroupant des déclarations de constantes et de variables de niveau général
Déboguer un programme VBA :
Reproduction interdite sans autorisation. Déboguer un programme VBA : 0 Copier-coller le code ci-dessous dans un module VBA Excel : Sub InscrireValeurs().
Le Langage Vba Pour Excel Copy - m.central.edu
Bien débuter en programmation Rémy Lentzner 2021-01-15 Ce livre vous propose d'étudier les principes d'écriture du code informatique. L'important est de bien
Excel - Programmation VBA
Un classeur Excel contenant du code VBA doit être enregistré au format. XLSM prenant en charge les macros. Sinon on perd son code.
Introduction à VBA Excel - 07 - Test écrit
Introduction à VBA Excel. CESAG/BF CCA/MPCGF 1. Page 1 sur 3 Citez trois activités qu'un code VBA peut permettre de réaliser. (1 pt).
[PDF] Programmation VBA - Excel - LaBRI
Les outils de la programmation structurée : pouvoir regrouper du code dans des procédures et des fonctions Organisation du code en modules et possibilité de
[PDF] Initiation à VBA pour Excel - doc-developpement-durableorg
VBA est un langage orienté objet Son code ne part donc pas comme dans les langages procéduraux des actions (par exemple llimpression) pour pointer vers les
[PDF] Programmer sous Excel Macros et langage VBA - fnac-staticcom
1 3 Import et export de code VBA 2 10 Appel d'une fonction VBA dans une formule Excel 2 4 4 Export du classeur au format PDF
Cours VBA gratuit - Excel-Pratiquecom
Apprenez le VBA (Excel) gratuitement étape par étape grâce aux leçons et exercices proposés sur ce site (variables conditions boucles procédures
[PDF] AIDE-MEMOIRE MINIMAL DE VISUAL BASIC POUR EXCEL
Ensemble de code écrit en Visual basic regroupant des déclarations de constantes et de variables de niveau général des procédures (dont des macros) ou des
[PDF] VBA - par Michel Berthiaumepdf
Tous ces emplacements peuvent contenir du code VBA Excel En pratique vous utiliserez le plus souvent les endroits suivants: Un module dans un classeur Excel
[PDF] Excel - Programmation VBA
Les outils de la programmation structurée : pouvoir regrouper du code dans des procédures et des fonctions Organisation du code en modules et possibilité de
[PDF] VB-VBA : Programmer efficacement Microsoft Excel
Cet article contient du code compatible avec les versions Excel 97 et Pour atteindre le module de code du classeur on ouvre la fenêtre VBA et dans
[PDF] VBA-et-Excelpdf
d'Excel (de 1997 à 2010) Excelet VBA Microsoft® ® Mikaël Bidault Fonctions Excel et VBA Insérer une fonction Excel dans votre code 261
[PDF] Programmation Excel avec VBA
Vous y apprendrez les principes de la programmation orientée objet le langage VBA et découvrirez en détail Visual Basic Editor l'environnement de
Comment coder sur Excel VBA ?
Activer l'onglet développeur
Avant de pouvoir commencer à coder dans Excel VBA nous allons devoir afficher la page de développeur. Puis sélectionner Personnaliser le ruban et la vous allez retrouver l'onglet Développeur qui est décocher. Il suffit de le cocher et cliquer sur Ok.Comment voir le code VBA dans Excel ?
Voici comment rechercher des macros et des modules VBA dans votre document :
1Dans Word ou Excel, cliquez sur Afficher > macro > les macros. Dans PowerPoint, cliquez sur Afficher > macro. 2Appuyez sur Alt+F11 pour rechercher des macros dans l'éditeur VBA.Quel est le code VBA ?
VBA (Visual Basic pour Applications) est un langage de programmation dédié principalement aux applications Microsoft Office. Il est basé sur le langage Visual Basic, mais ne peut s'exécuter que dans une application hôte Microsoft Office, et non de manière autonome.- Les macros et outils VBA sont disponibles sous l'onglet Développeur ( ce qui est masqué par défaut). La première étape consiste donc à l'activer. Pour plus d'informations, voir Afficher l'onglet Développeur. Dans le groupe Code de l'onglet Développeur, cliquez sur Enregistrer une macro.
1R.R. ȂUniversité Lyon 2
Ricco Rakotomalala
2 Généralités sur la programmation VBA sous ExcelR.R. ȂUniversité Lyon 2
Programmation sous Excel via VBA (Visual Basic pour Applications)Fonctions personnalisées.
Complètement standardisée. Valable pour les
autres classeurs et mġme, si pas d'accğs audž outils Office.Macros.
Manipulation directe des objets Excel (classeurs,
feuilles, cellules, graphiques, etc.)Programmation de tâches
ou moins complexes, faisant intervenir ou non des mécanismes algorithmiques.Interfaces graphiques.
Boîtes de dialogues standards. Mais aussi les formulaires personnalisées pour faciliter les accès aux fonctionnalités. Nécessite une certaine formalisation et la connaissance des principes de la programmation évènementielle.Enregistreur de macros
programme VBA. Ne nécessite pas la connaissance de la programmation, mais peu deProgrammation des macros
Très puissant. Nécessite la connaissance des principes de la programmation et de la syntaxe d'accğs audž objets Edžcel. Points importants. Connaissance de l'algorithmie, langage de programmation Visual Basic. Les instructions sont écrites dans des fonctions (function) et procédures (sub), qui sont regroupées dans des modules. Nous travaillons dans VBE (Visual Basic Editor). 3ALGORITHMIE -PROGRAMMATION
Généralités sur la programmation
R.R. ȂUniversité Lyon 2
4Algorithmie vs. Programmation
R.R. ȂUniversité Lyon 2
Algorithmie
Solution "informatique» relative à un
problèmeSuite d'actions (instructions)
appliquées sur des données3 étapes principales :
1.saisie (réception) des données
2.Traitements
3.restitution (application) des résultats
Programme
Transcription d'un algorithme aǀec une
syntaxe prédéfinieVisual Basic pour Applications
Même principes fondamentaux que les
autres langages objets (Java, C#, etc.)VBA agit en interaction avec les fonctions
prédéfinies disponibles dans la suite Office 5Mode compilé vs. Mode interprété
R.R. ȂUniversité Lyon 2
Langage compilé : + rapidité ; -pas portable (solution possible : writeonce, compile anywhere; ex. Lazarus) Langage pseudo-compilé : + portabilité plate-forme ; -lenteur (?) (principe : writeonce, runanywhere; ex. Java et le principe JIT) VBA(Visual Basic pour Applications)est un langage de programmation dédié principalement aux applications Microsoft Office. Il est basé sur le hôte Microsoft Office, et non de manière autonome. 6R.R. ȂUniversité Lyon 2
1.Déterminer les besoins et fixer les objectifs : que doit faire le logiciel, dans quel cadre va-
t-il servir, quels seront les utilisateurs types? On rédige un cahier des charges avec le commanditaire du logiciel (Remarque:commanditaire = maŠtre d'ouǀrage; réalisateur =2.Conception et spécifications: quels sont les fonctionnalités du logiciel, avec quelle
interface?3.Programmation: modélisation et codage
4.Tests: obtient-on les résultats attendus, les calculs sont corrects, y a-t-il plantage et dans
quelles circonstances͍ (tests unitaires, tests d'intĠgration, etc.)5.Déploiement: installer le chez le client (vérification des configurations, installation de
l'edžĠcutable et des fichiers annedžes, etc.)6.Maintenance: corrective, traquer les bugs et les corriger (patches); évolutive (ajouter
des fonctionnalités nouvelles au logiciel͗ soit sur l'ergonomie, soit en ajoutant de nouvelles procédures) 7LANGAGE VISUAL BASIC
Programme : suited'instructionsmanipulant des donnéesR.R. ȂUniversité Lyon 2
8R.R. ȂUniversité Lyon 2
Données typées. Visual Basic propose les types usuels de la programmation : entier, réels, booléens, chaîne de caractères. Structures avancées de données. Gestion des collections de valeurs (énumérations, tableaux) et des objets structurés (enregistrements, classes) écrire et exécuter une série de commandes sans avoir à intervenir entre les instructions. Structures algorithmiques: les branchements conditionnels et les boucles. Les outils de la programmation structurée: pouvoir regrouper du code dans des procédureset des fonctions. Organisation du code en moduleset possibilité de distribuer ces dernières. Visual Basic n'est pas ͨcase sensitive», il ne différencie pas les termes écrits en minuscule et majuscule. 9Type de données
R.R. ȂUniversité Lyon 2
Numériquequi peut être réel (double) ou entier (long). Les opérateurs applicables sont : +, -, *, / (division réelle), \(division entière), mod(modulo)Exemple : 5 / 2 AE2.5 ; 5 \2 AE2 ; 5 mod2 AE1
Booléen(boolean) qui ne prend que deux valeurs possibles : Trueet False. Les opérateurs sont : not, and, or.Exemple : Trueand False AEFalse
Chaîne de caractères(suite) qui correspond à une suite de caractères délimitée par des
partie, la copie d'une sous-partie, etc. Habituellement, les opérations font intervenir des données de type identique et renvoie un résultat du même type. 10Opérateurs de comparaison
R.R. ȂUniversité Lyon 2
Les opérateurs de comparaison confrontent des données de même type, mais le résultat est un booléenégalité
différentSupérieur strict, supérieur ou égal inférieur strict, inférieur ou égalExemples
5 > 2 AETrue
5 <> 5 AEFalse
Licite. Comparaison de gauche à droite
basée sur le code ASCII. Arrêt des 11Variables et premières instructions
R.R. ȂUniversité Lyon 2
Déclaration
d'une ǀariableDimv AsDoubleDimensionner. Réserver
un espace mémoire .Indication
du typeType associé à
la variableIdentifiant de la variable, utilisable
dans la suite du programmeAffectation. Attribuer
une valeur à la variableOpération et
affectation v =2.5 =est le symbole d'affectation. A gauchede = on modifiele contenu dans une variable, à droiteon litle contenu d'une ǀariable. C'est est licite. x =v * 2La valeur 5 est écrite dans la variable x qui doit être déclarée au préalable. 12FONCTIONS PERSONNALISÉES
Ecriture et utilisation des fonctions personnalisées dans ExcelR.R. ȂUniversité Lyon 2
13Programmation des fonctions personnalisées
R.R. ȂUniversité Lyon 2
Une fonction personnalisée est une fonction VBA qui peut appelée dans un classeur Excel. Elle prend en entrée des informations en provenance des feuilles du classeur (principalement) et renvoie une valeur insérée dans une cellule (le plus souvent également). FormalismeFunctionNomFonction(paramètres) astype de donnéeEst un identifiant qui doit
respecter la syntaxe VBA Les informations que prend en entrée la fonction, elles prennent la forme nom_parametreastype de paramètre. Il peut y en avoir plusieurs, ils sont séparés par des ",»dans ce cas.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 on perd son code. 14Programmation dans Visual Basic Editor
R.R. ȂUniversité Lyon 2
Entrée : prix HT (réel)
Sortie : prix TTC (réel)
Il faut créer un module pour
programmer une fonction personnaliséePublicpour que la fonction soit visible en dehors
du module, notamment dans la feuille de calculLes lignes de commentaires
mises automatiquement en vert. 15Utilisation de la fonction dans une feuille Excel
R.R. ȂUniversité Lyon 2
La fonction est insérable dans la feuille de
fonction Excel. Elle est accessible dans la catégorie "Fonctions personnalisées».Le rĠsultat s'affiche une fois la fonction
insérée et validée. La fonction est automatiquement appelée à chaque fois que la feuille a besoin d'ġtre recalculĠe (comme pour les autres fonctions standards d'Edžcel). 16Fonction avec plusieurs paramètres
R.R. ȂUniversité Lyon 2
Entrées : prix HT (réel), tva (réel)
Sortie : prix TTC (réel)
'fonction avec 2 paramètres Public FunctionMonPrixTTCTva(phtAs Double,tvaAs Double) As Double 'déclaration d'une variable intermédiaireDim pttcAs Double
'calcul exploitant les paramètres en entrée pttc= pht* (1 + tva) 'retourner le résultatMonPrixTTCTva= pttc
End Function
(1)Le séparateur de paramètres est la ",» lors de la définition de la fonction. appelle la fonction dans la feuille de calcul. 17STRUCTURES ALGORITHMIQUES
R.R. ȂUniversité Lyon 2
18Branchement conditionnel IF
R.R. ȂUniversité Lyon 2
Permet d'actiǀer une partie du code en fonction de la rĠalisation d'une condition ou pas.IfconditionThen
si la condition est vraie Else si la condition est fausseEnd If
Syntaxe
(1)Conditionest souvent une opération de comparaison (2)La valeur de retour de Conditionest de type booléen (Trueou False) (3)Thendoit être sur la même ligne que If (4)La partie Elseest facultative (ne rien faire si la condition est fausse) 19Branchement conditionnel IF ȂUn exemple
R.R. ȂUniversité Lyon 2
Entrées : prix HT (réel), catégorie de produit (chaîne)Sortie : prix TTC (réel)
Public FunctionMonTTCBis(phtAs Double, catAs String) As Double 'déclarer la variable de calculDim pttcAs Double
'en fonction de la catégorie de produitIf(cat= "luxe") Then
pttc= pht* 1.33 Else pttc= pht* 1.2End If
'renvoyer le résultatMonTTCBis= pttc
End Function
20Branchement multiple SELECT CASE
R.R. ȂUniversité Lyon 2
Permet d'actiǀer une partie du code en fonction des ǀaleurs prises par une variable de contrôle. Peut se substituer au IF, mais pas toujours, tout dépend de la forme de la condition (condition composée, on doit passer par un IF).SelectCasevariable
Casevaleur 1
Casevaleur 2
Case Else
End Select
Syntaxe
réel ou une chaîne de caractères (2)Valeurdoit être de type compatible avec variable (3)La partie Case Elseest facultative 21Branchement multiple SELECT CASE ȂUn exemple
R.R. ȂUniversité Lyon 2
Entrées : prix HT (réel), catégorie de produit (chaîne)Sortie : prix TTC (réel)
'fonction select case Public FunctionMonTTCSelon(phtAs Double, catAs String) As Double 'déclarer la variable de calculDim pttcAs Double
'en fonction de la catégorie de produitSelect Casecat
Case"luxe"
pttc= pht* 1.33Case Else
pttc= pht* 1.2 ɐŧŨŨŨEnd Select
'renvoyer le résultatMonTTCSelon= pttc
End Function
22Branchement multiple SELECT CASE ȂPlages de valeurs
R.R. ȂUniversité Lyon 2
Il est possible d'introduire des plages de ǀaleurs dans la partie Casede la structure Select Case. La comparaison devient plus sophistiquée. Variableest un numérique dans ce cas, entier ou même réel.SelectCasevariable
CaseIsop.de.comparaisonvaleur
Casevaleur de départ Tovaleur de fin
Case Else
End Select
Syntaxe
23Branchement multiple SELECT CASE ȂPlages de valeurs ȂUn exemple
R.R. ȂUniversité Lyon 2
Entrée : quantité (entier)
Sortie : prix unitaire (réel)
Calcul : quantité < 100 AEp.u. = 0.5
100 quantité 200 AEp.u. = 0.3
quantité > 200 AEp.u. = 0.2 'calcul du prix unitaire en fonction de la quantitéPublic FunctionMonPU(quantiteAs Long) As Double
'variable intermédiaireDim pu As Double
'selon les valeurs de quantitéSelect Case quantite
Case Is <100
pu = 0.5Case100 To200
pu = 0.3 Case Is >200 'Case Elseaurait fait l'affaire aussi pu = 0.2End Select
MonPU= pu
End Function
24Boucle POUR (FOR)
R.R. ȂUniversité Lyon 2
Faire rĠpĠter l'edžĠcution d'un bloc d'instructions. Le nombre d'itĠrations est contrôlé par un indice.Forindice= val.départtoval.finsteppas
NextindiceSyntaxe
(1)Indiceest un type ordonné, très souvent un numérique (3)Nextentérine le passage à la valeur suivante de indice, si cette prochaine valeur est > à val.fin, on sort de la boucle (5)Si pasest négatif, val.findoit être inférieure à val.départcette fois-ci (6)L'instruction Exit Forpermet de sortir prématurément de la boucle 25Boucle FOR ȂUn exemple
R.R. ȂUniversité Lyon 2
Entrée : n (entier)
Sortie : S (réel)
'calcul de la somme des carrés des valeursPublic FunctionMaSommeCarre(nAs Long) As Double
'variables de calcul (s pour la somme, i : indice)Dim s As Double, i As Long
'initialisation s = 0 'boucle avec l'indice iFori= 1 TonStep1
s = s + i^ 2 Nexti 'renvoyer le résultatMaSommeCarre= s
End Function
26... 4AB4 1Dǥ A2 ȋC 7ǥCC0Ȍ
R.R. ȂUniversité Lyon 2
Faire rĠpĠter l'edžĠcution d'un bloc d'instructions. Le nombre d'itĠrations est contrôlé par une condition. Attention à la boucle infinie c.-à-d. la condition permettant de sortir de la boucle n'est jamais dĠclenchĠe.Si la condition est fausse d'emblĠe. On
peut ne pas rentrer dans la boucle.Do Whilecondition
LoopSyntaxe
(1)Conditionest un boolĠen, c'est souǀent une opĠration de comparaison (2)On continue l'edžĠcution TANT YUE la condition est ǀraie ; si la condition est fausse, on sort de la boucle (3)Exit Dopermet de provoquer la sortie prématurée de la boucle 27R.R. ȂUniversité Lyon 2
Entrée : n (entier)
Sortie : S (réel)
'calcul de la somme des carrés des valeurs Public FunctionMaSommeCarreWhile(n As Long) As Double 'variables de calculDim s As Double, i As Long
'initialisation s = 0 'il nous revient aussi d'initialiser l'indice i = 1 'boucle TANT QUEDo While(i <= n)
'sommer s = s + i ^ 2 'pas de next, nous devons incrémenter l'indice i = i + 1 Loop 'renvoyer le résultatMaSommeCarreWhile= s
End Function
28... A2ǥ4AB4 1D ȋCǥCC0 7Ȍ
R.R. ȂUniversité Lyon 2
Faire rĠpĠter l'edžĠcution d'un bloc d'instructions. Le nombre d'itĠrations est contrôlé par une condition. On est sûr de rentrer au moins une fois dans la boucle. DoLoop WhileconditionSyntaxe
Le choix de la bonne structure (Faire.. Tant Queou Tant Que..Faire) dépend du problème à traiter
29Les variantes des boucles DO
R.R. ȂUniversité Lyon 2
Les boucles DO contrôlées par une condition sont très riches en VBA.Do{While|Until} condition
[statements] [ExitDo] [statements] Loop -or- Do [statements] [ExitDo] [statements]Loop{While|Until} condition
30LE TYPE RANGE
Le type "plage de cellules» spécifique à ExcelR.R. ȂUniversité Lyon 2
31Le type RANGE
R.R. ȂUniversité Lyon 2
Exemple
Un bloc de cellules (B3:D4) est passé en
paramètre de la fonction. Ce bloc est forcément rectangulaire, avec, ici : 2 lignes et 3 colonnes. Coin en haut et à gauche de la plage de cellules passée en paramètre de la fonction = coordonnée (1, 1) c.-à-d. ligne nΣ1 et colonne nΣ1, quelle que soit la position absolue de la plage dans la feuille de calcul (ici le coin nord-ouest est en B3) La fonction MaSommeRange()est censée faire la même chose 32Exploiter le type Range en VBA
R.R. ȂUniversité Lyon 2
Entrée : plage (range)
Sortie : S (réel)
Calcul : Somme des valeurs
'Travail sur le type Range Public FunctionMaSommeRange(plageAs Range) As Double 'variables intermédiairesDim s As Double, i As Long, j As Long
'initialisation de la somme s = 0 'parcours de la plage de cellulesFor i = 1 To plage.Rows.CountStep1 'lignes
For j = 1 To plage.Columns.CountStep1 'colonnes
'lecture des valeurs et somme s = s + plage.Cells(i, j).Value Nextj Nexti 'renvoyer le résultatMaSommeRange= s
End Function
Nombre de lignes de
la plage de cellules.Nombre de
colonnes.Accès à la valeur (Value) de la
cellule : ligne nΣi, colonne nΣj que soit la position de la plage dans la feuille. 33Une boucle adaptée pour les plages de cellules ȂFor Each
R.R. ȂUniversité Lyon 2
La boucle For Eachest adaptée au parcours des collections. Or une plage de cellules est une collection de cellules. 'Travail sur le type Range avec un For Each Public FunctionMaSommeRangeEach(plageAs Range) As Double 'variables intermédiairesDim s As Double, celluleAs Range
'initialisation de la somme s = 0 'parcours de la plage de cellulesFor EachcelluleInplage
s = s + cellule.ValueNextcellule
'renvoyer le résultatMaSommeRangeEach= s
End Function
Une cellule est une plage de
cellules avec une seule cellule. plagefait figure de collection à traiter.Yu'importe le sens du parcours ici (ligne
par ligne, ou colonne par colonne).C'est bien la ǀaleur contenue dans la
cellule qui est exploitée pour la somme. 34LE TYPE VARIANT
Type spécial qui peut contenir toutes sortes de valeurR.R. ȂUniversité Lyon 2
35Le type Variant
R.R. ȂUniversité Lyon 2
Le type de variant peut gérer tout type de valeurs. Il est très souple, utiliser. Mais attention, il ne faut pas en abuser, il est très lent parce que multiplie les vérifications à chaque accès à la variable correspondante.Entrée : a, b (réel)
Sortie : a/b si b 0, "division par zéro» sinonUn coup, la fonction renvoie un réel, un
autre coup elle doit renvoyer une chaîne de caractères. 'utilisation du type variant Public FunctionMaDivision(a As Double, b As Double) As Variant 'var. intermédiaireDim resultatAs Variant
quotesdbs_dbs13.pdfusesText_19[PDF] objet vba excel
[PDF] vba worksheet name
[PDF] créer un objet vba
[PDF] vba worksheet range
[PDF] programmation objet vba
[PDF] vba excel selectionner une feuille
[PDF] classe 4ème découverte professionnelle
[PDF] stage 4eme segpa
[PDF] college du futur
[PDF] cneg geriatrie
[PDF] geriatrie ecn pdf
[PDF] définition de la gériatrie
[PDF] college geriatrie masson
[PDF] gériatrie et gérontologie