31
Excel /VBA Juin 2014 Visual Basic pour Application Excel VBA

Presentation Excel Vba2007

Embed Size (px)

DESCRIPTION

excel vba 2007

Citation preview

Excel /VBA

Juin 2014

Visual Basic pour Application

Excel VBA

Excel /VBA

Juin 2014

SOMMAIRE I. Introduction à Excel VBA

II. L’enregistreur de macro

III. L’environnement Visual Basic Editor

IV. Les divers moyens pour exécuter une macro

V. Le modèle objet d’Excel

VI. Les fonctions définies par l’utilisateur

VII. Le langage VBA

VIII. Les objets UserForm

Excel /VBA

Juin 2014

Introduction à Excel VBA EXCEL VBA (Visual Basic pour Application) est un langage

de programmation permettant d’utiliser du code Visual Basic pour exécuter les nombreuses fonctionnalités de l’Application EXCEL.

Quelques définitions : Un programme écrit en VBA est souvent appelé une macro. Les macros permettent notamment d’automatiser des

tâches répétitives réalisées sous EXCEL. Les macros peuvent aussi être utilisées pour créer des

boîtes de dialogue afin de rendre une application développée sous EXCEL plus conviviale.

Une macro peut être créée en utilisant l'enregistreur de macros, qui ne nécessite aucune connaissance du langage VBA.

Excel /VBA

Juin 2014

L’enregistreur de macro

L’enregistreur de macro permet d’écrire du code VBA à partir d’opérations effectuées manuellement sous EXCEL.

Exercice

Excel /VBA

Juin 2014

L’environnement Visual Basic Editor Nous allons maintenant examiner le code VBA produit.

Pour ce faire, il faut utiliser l’éditeur de Visual Basic, VISUAL BASIC EDITOR (VBE), qui s’exécute dans une

fenêtre différente de celle d’EXCEL. Ouvrir VBE en activant la commande Alt + F11 ou en cliquant

sur le bouton VISUAL BASIC .

Excel /VBA

Juin 2014

explorateur de projets

fenêtre propriétés Module de code

Excel /VBA

Juin 2014

L’EXPLORATEUR DE PROJETS

L'explorateur de projets affiche une liste hiérarchisée des différents projets

VBA associés aux classeurs EXCEL ouverts.

A chaque classeur EXCEL ouvert est associé un projet VBA.

Un projet VBA associé à un classeur regroupe les éléments du classeur, comme ses feuilles de calcul ou des boîtes de dialogue, et les procédures et les fonctions associées au classeur et stockées dans un ou plusieurs modules de code.

Le projet VBA associé au classeur TEST-MACRO.XLS est composé de deux dossiers :

le dossier MICROSOFT EXCEL OBJETS

le dossier MODULES

Excel /VBA

Juin 2014

LES MODULES DE CODE

L’explorateur de projets permet ( à l’aide du clic droit de la souris) :

d’ouvrir un module de code d’insérer un nouveau module de code

ou d’en supprimer un

Toutes les macros sont enregistrées dans un module de code. L’enregistreur de macro a inséré le module de code MODULE1 qui contient la macro MACRO1. Un module de code peut contenir plusieurs macros. On peut insérer autant de modules de code qu’on le désire.

Remarque :

Excel /VBA

Juin 2014

LES PROCEDURES

Une macro est appelée en VBA une procédure, c’est une suite d'instructions qui ne retourne pas de valeur.

VBA permet également d’écrire des fonctions. Une fonction est une suited'instructions qui retourne une valeur.L’enregistreur de macro ne génère que des procédures. Une procédurecommence par le mot clé Sub suivi du nom de la procédure et elle se termine par le mot clé End SubSub Macro1()

Instructions…

End Sub

Modifier la macro MACRO 1

Excel /VBA

Juin 2014

LES Fonctions définies par l’utilisateurVBA offre la possibilité de créer ses propres fonctions, qui

peuvent être utilisées dans EXCEL comme n’importe quelle fonction intégrée.Une fonction est une suite d'instructions qui retourne une valeur. Elle commence par le mot clé Function suivi du nom de la fonction et d’une liste d’arguments entre parenthèses, qui peut être vide. Elle se termine par le mot clé End Function. Une fonction a la syntaxe suivante :

Function NomFonction([argument_1,..., argument_n])

Instructions...NomFonction = Expression ‘valeur de retour

...End Function

Notez q’une fonction indique la valeur à retourner en initialisant son nom avec la valeur de retour.

Excel /VBA

Juin 2014

TYPE DE DONNÉES

Ne peut prendre que les valeurs True ou False. Ce type de données utilise 2 octets pour stocker la variable.

I. Boolean

Ce type de données comprend les valeurs entières de 0 à 255 et utilise 1 octet pour stocker la variable.

II. Byte

Ce type de données comprend les valeurs entières de -32 768 à 32 767, utilise 2 octets pour stocker la variable.

III. Integer

Ce type de données comprend les valeurs entières de -2 147 483 648 à 2 147 483 647, utilise 4 octets pour stocker la variable.

IV. Long

Excel /VBA

Juin 2014

V. Single Ce type de données comprend les valeurs à virgules flottantes est comprise entre -3,402823E38 et -1,401298E-45 pour les nombres négatifs et entre 1,401298E-45 et 3,402823E38 pour les positifs, utilise 4 octets pour stocker la variable.VI. Double

Ce type de données comprend les valeurs à virgules flottantes est comprise entre -1,79769313486231E308 et -4,94065645841247E-324 pour les nombres négatifs et entre 4,94065645841247E-324 et 1,79769313486231E308 pour les positifs, utilise 8 octets pour stocker la variable.

VII. Date Ce type de données comprend les dates comprises entre le 1er janvier 100 et le 31 décembre 9999, les heures allant de 00:00:00 à 23:59:59. Toute valeur de date peut être attribuée à une variable de type Date ou de type Double. Ce type utilise 8 octets pour stocker la variable.

Excel /VBA

Juin 2014

Quelques définitions :

Les Variables

C'est un nom qui représente l'emplacement en mémoire d'une valeur, Il est préférable de déclarer la variable en début de portée (début de procédure, fonction ou module) et de préciser son type : Dim variable as type, exemple : Dim UnTexte as String qui déclare la variable UnTexte de type chaîne

VIII. String

Il existe deux types de chaînes :

* Les chaînes de longueur variable peuvent contenir environ 2^31 caractères. * Les chaînes de longueur fixe peuvent contenir de 1 à 2^16 caractères.

Les Constants

C'est un nom qui représente l'emplacement en mémoire d'une valeur, Il est préférable de déclarer la variable en début de portée (début de procédure, fonction ou module) et de préciser son type : Const CONSTANTE as type = valeur, exemple : Const MACONSTANTE as String = "ceci est une constante"  qui déclare que la constante MACONSTANTE, de type chaîne est égal à "ceci est une constante".

Excel /VBA

Juin 2014

Excel /VBA

Juin 2014

Les variablesUne variable = une « case mémoire »

temporaire Même fonctionnement qu’une cellule, mais

reste en mémoire (invisible) On lui choisit un nom (quelconque), et on

l’utilise comme une celluleEx : Nom = " toto " ‘ on met toto dans nomCells(1,1) = nom ‘ on met ce qu’il y a dans

‘ nom dans la cellule A1

Excel /VBA

Juin 2014

Exemple : l’échange de données

Sub echange()‘ Pour échanger les contenus de A1 et B2

x = range("B2") range("B2") = range("A1") range("A1")= xEnd sub

Excel /VBA

Juin 2014

Poser une questionPour poser une question :Nom = inputbox("quel est votre nom ?")

Inputbox permet de poser une question à l’utilisateur. On récupère la réponse en la copiant dans une variable (par exemple)

Excel /VBA

Juin 2014

Formulaire avec des InputBoxDemande et copie le prénom de

l’utilisateur en B1 et le nom en B2

Exercice : recopiez et testez

Sub question() prenom = InputBox("quel est votre prenom ?") range("B1") = prenom nom = InputBox("quel est votre nom ?") range("B2") = nomEnd sub

Excel /VBA

Juin 2014

Petite remarque…Attention :

Le résultat d’InputBox est du texte

x = inputbox("rentrez votre age")

Le résultat sera : "22" et non pas 22 !

Pour avoir la valeur numérique :

x = val(inputbox("rentrez votre age"))

Excel /VBA

Juin 2014

Le débuggeur (dévermineur)Utile pour repérer les erreurs (bugs) dans une

macro. Permet de : Exécuter une macro pas à pas Voir le contenu des variables Et plus…

Excel /VBA

Juin 2014

Exécuter pas à pas Aller dans l’éditeur Se placer dans la macro à exécuter Allez dans déboggage/pas à pas détaillé (F8)

pour avancer d’un pas

Excel /VBA

Juin 2014

Voir le contenu d’une variableOn utilise pour cela des espions Cliquer sur la variable avec le bouton droit Sélectionner ajouter un espion

Lors de l’exécution pas à pas, le contenu de la variable est affiché.

Excel /VBA

Juin 2014

Exercices Exercices du TP 3

Excel /VBA

Juin 2014

VBA / Excel

TP 4 : La boucle FOR

Excel /VBA

Juin 2014

RépétitionPour répéter n fois la même chose :

solution classique - le « copier - coller »

Ex : affichez 5 fois « bonjour » :Sub begaie()msgbox "Bonjour“msgbox "Bonjour“msgbox "Bonjour“msgbox "Bonjour“msgbox "Bonjour“End Sub

Excel /VBA

Juin 2014

La boucle For Pour répéter n fois une séquence d’opération

:

Sub begaie() For i = 1 to 5 msgbox "Bonjour“ NextEnd Sub

Écrire et tester avec le débuggeur. Placez un espion sur la variable i

Excel /VBA

Juin 2014

La boucle for : explication

Sub begaie()

For i = 1 to 10

msgbox "Bonjour“

Next

End Sub

i : iterateur

1 : valeur de départ

10 : valeur d’arrivée

Excel /VBA

Juin 2014

La boucle forFor (iterateur) = (départ) to (arrivée)

(Instructions)

Next

Au départ, l’itérateur vaut (départ)

A chaque itération :

- les instructions sont exécuté

- l’itérateur est incrémenté

On répète jusqu’à atteindre (arrivée)

Excel /VBA

Juin 2014

Les répétitions (bis)Compter de 1 à 5 :

Sub begaie()msgbox “Attention : 1"msgbox “Attention : 2"msgbox “Attention : 3"msgbox “Attention : 4"msgbox “Attention : 5“Msgbox “Boom !“End Sub

Excel /VBA

Juin 2014

La boucle for : exemple 2

Sub compte() For i = 1 to 5 msgbox “Attention : ” & i Next msgbox “boom !”End Sub

Écrire et tester avec le débuggeur. Placez un espion sur la variable i

Excel /VBA

Juin 2014

ExercicesVoir TP 6.pdf