[PDF] [PDF] Excel - Programmation VBA





Previous PDF Next PDF



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 Excel

R.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 de

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

ALGORITHMIE -PROGRAMMATION

Généralités sur la programmation

R.R. ȂUniversité Lyon 2

4

Algorithmie vs. Programmation

R.R. ȂUniversité Lyon 2

Algorithmie

Solution "informatique» relative à un

problème

Suite d'actions (instructions)

appliquées sur des données

3 é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éfinie

Visual 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 5

Mode 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. 6

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

LANGAGE VISUAL BASIC

Programme : suited'instructionsmanipulant des données

R.R. ȂUniversité Lyon 2

8

R.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. 9

Type 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. 10

Opé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 égal

Exemples

5 > 2 AETrue

5 <> 5 AEFalse

Licite. Comparaison de gauche à droite

basée sur le code ASCII. Arrêt des 11

Variables et premières instructions

R.R. ȂUniversité Lyon 2

Déclaration

d'une ǀariableDimv AsDouble

Dimensionner. Réserver

un espace mémoire .

Indication

du type

Type associé à

la variable

Identifiant de la variable, utilisable

dans la suite du programme

Affectation. Attribuer

une valeur à la variable

Opé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. 12

FONCTIONS PERSONNALISÉES

Ecriture et utilisation des fonctions personnalisées dans Excel

R.R. ȂUniversité Lyon 2

13

Programmation 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ée

Est 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. 14

Programmation 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ée

Publicpour que la fonction soit visible en dehors

du module, notamment dans la feuille de calcul

Les lignes de commentaires

mises automatiquement en vert. 15

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

Fonction 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édiaire

Dim pttcAs Double

'calcul exploitant les paramètres en entrée pttc= pht* (1 + tva) 'retourner le résultat

MonPrixTTCTva= 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. 17

STRUCTURES ALGORITHMIQUES

R.R. ȂUniversité Lyon 2

18

Branchement 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 fausse

End 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) 19

Branchement 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 calcul

Dim pttcAs Double

'en fonction de la catégorie de produit

If(cat= "luxe") Then

pttc= pht* 1.33 Else pttc= pht* 1.2

End If

'renvoyer le résultat

MonTTCBis= pttc

End Function

20

Branchement 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 21

Branchement 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 calcul

Dim pttcAs Double

'en fonction de la catégorie de produit

Select Casecat

Case"luxe"

pttc= pht* 1.33

Case Else

pttc= pht* 1.2 ɐŧŨŨŨ

End Select

'renvoyer le résultat

MonTTCSelon= pttc

End Function

22
Branchement 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

23
Branchement 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édiaire

Dim pu As Double

'selon les valeurs de quantité

Select Case quantite

Case Is <100

pu = 0.5

Case100 To200

pu = 0.3 Case Is >200 'Case Elseaurait fait l'affaire aussi pu = 0.2

End Select

MonPU= pu

End Function

24

Boucle 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 25

Boucle FOR ȂUn exemple

R.R. ȂUniversité Lyon 2

Entrée : n (entier)

Sortie : S (réel)

'calcul de la somme des carrés des valeurs

Public 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 i

Fori= 1 TonStep1

s = s + i^ 2 Nexti 'renvoyer le résultat

MaSommeCarre= 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 27

R.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 calcul

Dim s As Double, i As Long

'initialisation s = 0 'il nous revient aussi d'initialiser l'indice i = 1 'boucle TANT QUE

Do While(i <= n)

'sommer s = s + i ^ 2 'pas de next, nous devons incrémenter l'indice i = i + 1 Loop 'renvoyer le résultat

MaSommeCarreWhile= 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. Do

Loop WhileconditionSyntaxe

Le choix de la bonne structure (Faire.. Tant Queou Tant Que..

Faire) dépend du problème à traiter

29

Les 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

30

LE TYPE RANGE

Le type "plage de cellules» spécifique à Excel

R.R. ȂUniversité Lyon 2

31

Le 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 32

Exploiter 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édiaires

Dim s As Double, i As Long, j As Long

'initialisation de la somme s = 0 'parcours de la plage de cellules

For 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ésultat

MaSommeRange= 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. 33
Une 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édiaires

Dim s As Double, celluleAs Range

'initialisation de la somme s = 0 'parcours de la plage de cellules

For EachcelluleInplage

s = s + cellule.Value

Nextcellule

'renvoyer le résultat

MaSommeRangeEach= 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. 34

LE TYPE VARIANT

Type spécial qui peut contenir toutes sortes de valeur

R.R. ȂUniversité Lyon 2

35

Le 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» sinon

Un 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édiaire

Dim resultatAs Variant

quotesdbs_dbs13.pdfusesText_19
[PDF] classe vba

[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