15
A Memento VBA Le mémento présente la syntaxe des types, des déclarations de variables, des instruc- tions, des opérateurs, des fonctions et des procédures VBA. Cette présentation utilise les symboles suivants : […] : terme optionnel. (…) : termes semblables non formulés. Types Voici les différents types de variables disponibles en VBA : Nombres entiers : Byte, Integer, Long, LongLong, LongPtr. Nombres décimaux : Single, Double, Decimal, Currency. Valeurs booléennes : Boolean. Chaînes de caractères : String. Dates : Date. Union de tous les types : Variant. Déclarations des variables Les variables et les constantes sont déclarées Private par défaut. Elles peuvent être déclarées Public ou Private de façon explicite. Variables locales à une fonction ou à une procédure : Exemples : Dim x As Integer, y As Double Dim ch As String © 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Memento VBA - pearson.fr€¦ · 2 Applications avec Excel Variables globales à plusieurs procédures d’un même module : Exemple : Dim resultat As Double (à placer en tête du

  • Upload
    trandat

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Memento VBA - pearson.fr€¦ · 2 Applications avec Excel Variables globales à plusieurs procédures d’un même module : Exemple : Dim resultat As Double (à placer en tête du

AMemento VBA

Le mémento présente la syntaxe des types, des déclarations de variables, des instruc-tions, des opérateurs, des fonctions et des procédures VBA.

Cette présentation utilise les symboles suivants :

• […] : terme optionnel.

• (…) : termes semblables non formulés.

Types 

Voici les différents types de variables disponibles en VBA :

• Nombres entiers : Byte, Integer, Long, LongLong, LongPtr.

• Nombres décimaux : Single, Double, Decimal, Currency.

• Valeurs booléennes : Boolean.

• Chaînes de caractères : String.

• Dates : Date.

• Union de tous les types : Variant.

Déclarations des variables

Les variables et les constantes sont déclarées Private par défaut. Elles peuvent être déclarées Public ou Private de façon explicite.

Variables locales à une fonction ou à une procédure :

Exemples : Dim x As Integer, y As Double

Dim ch As String

Livre 7608-VBA.indb 1 07/08/12 07:05

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Page 2: Memento VBA - pearson.fr€¦ · 2 Applications avec Excel Variables globales à plusieurs procédures d’un même module : Exemple : Dim resultat As Double (à placer en tête du

2 ◆ Applications avec Excel

Variables globales à plusieurs procédures d’un même module :

Exemple : Dim resultat As Double (à placer en tête du code des procédures)

Variables globales dans un projet multimodule (applications avec formulaires…) :

Exemple : Public valeur As String (à placer en tête d’un module : Module1…)

Arguments d’une fonction ou d’une procédure :

Exemples : fct([ByVal ou ByRef] x As Integer,…) As Integer

proced([ByVal ou ByRef] y As Integer,…)

Affectation Voici quelques exemples de syntaxes de l’instruction d’affectation :

x = 4, z = x + y, u = f(t)

Entrée d’information

L’instruction InputBox assure le tranfert d’information du clavier à la mémoire centrale. Elle s’écrit par exemple de la façon suivante :

•x=InputBox("donne la valeur de x : ")

Sortie d’information

L’instruction MsgBox assure le transfert d’information de la mémoire centrale à l’écran. Elle s’écrit par exemple de la façon suivante :

•MsgBox "Le résultat vaut : " & res

Instruction conditionnelle

L’instruction conditionnelle permet de construire une alternative en testant si la condition est vraie ou non.

Syntaxes de l’instruction If…Then…Else…End If :

Forme standard Formes restreintes

•If Condition Then• Instruction n°1a• Instruction n°1b• (…)•Else• Instruction n°2a• Instruction n°2b• (…)•End If

•If Condition Then• Instruction n°1a• Instruction n°1b• (…)•End If••If Condition Then Instruction

Livre 7608-VBA.indb 2 07/08/12 07:05

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Page 3: Memento VBA - pearson.fr€¦ · 2 Applications avec Excel Variables globales à plusieurs procédures d’un même module : Exemple : Dim resultat As Double (à placer en tête du

Annexe A – Memento VBA ◆ 3

Forme imbriquée (cas général) Forme imbriquée (cas particulier)

•If Condition1 Then• If Condition2 Then• Instructions2a• Else• Instructions2b• End If•Else• If Condition3 Then• Instructions3a• Else• Instructions3b• End If•End If

•If Condition1 Then• Instructions1•ElseIf Condition2 Then• Instructions2•ElseIf Condition3 Then • Instructions3•ElseIf (…)• (…)•[Else• (…)]•End If

Syntaxe de l’instruction Select Case… :

•Select Case Variable•Case Hypothèse_1• Instructions_1•Case Hypothèse_2• Instructions_2•(…)•[Case Else• Instructions_n]•End Select

Instruction itérative

Deux cas sont à distinguer selon que le nombre de répétitions est connu a priori ou bien qu’il dépend du contexte.

Le nombre de répétitions est connu a priori :

•For var = val_début To val_fin [step p]• Instruction n°1• Instruction n°2• (…)•Next var

Le nombre de répétitions dépend du contexte :

Les deux instructions utilisées dans cet ouvrage :

•While Condition• Instruction n°1• Instruction n°2• (…)•Wend

•Do• Instruction n°1• Instruction n°2• (…)•Loop Until Condition

Livre 7608-VBA.indb 3 07/08/12 07:05

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Page 4: Memento VBA - pearson.fr€¦ · 2 Applications avec Excel Variables globales à plusieurs procédures d’un même module : Exemple : Dim resultat As Double (à placer en tête du

4 ◆ Applications avec Excel

Les quatre formes de Do…Loop… :

Cond : condition d’arrêt Cond : condition de continuation

•Do• Instruction n°1• (…)•Loop Until Cond

•Do• Instruction n°1• (…)•Loop While Cond

•Do Until Cond• Instruction n°1• (…)•Loop

•Do While Cond• Instruction n°1• (…)•Loop

Opérateurs

Il existe quatre familles d’opérateurs :

• Les opérateurs numériques : +, –, *, /.

^ : élévation à la puissance.

\ : division entière. Exemple : 23\3 donne 7.

Mod : reste de la division entière. Exemple : 23 Mod 3 donne 2.

• Les opérateurs de comparaison : <, <=, >, >=, =, <>.

• Les opérateurs logiques : And, Or, Not, Xor, Eqv.

• L’opérateur de concaténation : &.

FonctionsLes fonctions effectuent des traitements informatiques et fournissent des résultats.

Syntaxe :

•Function fexemple([ByVal ou ByRef] x As …, …) As …•Dim … 'déclaration des variables locales•(…)•Instruction n°1•Instruction n°2•(…)•fexemple = … 'valeur de retour•End Function

Exemples d’en-têtes de fonction :

• Function fnum(…, …) As Double : fonction numérique.

• Function fch(…, …) As String : fonction chaînes de caractères.

• Function fbool(…, …) As Boolean : fonction booléenne.

Livre 7608-VBA.indb 4 07/08/12 07:05

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Page 5: Memento VBA - pearson.fr€¦ · 2 Applications avec Excel Variables globales à plusieurs procédures d’un même module : Exemple : Dim resultat As Double (à placer en tête du

Annexe A – Memento VBA ◆ 5

Exemples d’appels de fonction : mettre des parenthèses

• val_res = fnum(a,b) • ch_res = fch(ch1,x)• bool_res = fbool(x,5)

Procédures

Les fonctions effectuent des traitements informatiques et agissent directement sur l’environnement d’exécution, sans fournir de résultat.

Syntaxe :

•Sub proced1() 'sans paramètres•ou Sub proced2([ByVal ou ByRef] x As …,…) 'avec paramètres•Dim … 'déclaration des variables locales• (…)•Instruction n°1•Instruction n°2• (…)•End Sub

Exemples d’en-têtes de procédure :

• Sub calcul() : sans paramètres.

• Sub etude(x As Integer, y As Integer) : avec deux paramètres.

Exemples d’appels de procédure : ne pas mettre de parenthèses

• Sans paramètre : calcul

• Avec paramètres : etude a, b

Les procédures et les fonctions sont déclarées Public par défaut. Elles peuvent être déclarées Public ou Private de façon explicite.

ByVal et ByRef

Deux modes de transmission sont possibles lors de l’appel d’une fonction ou d’une procédure :

• ByVal : le mode de transmission se fait par valeur, la valeur du paramètre d’appel est transmise par recopie à l’argument correspondant de la fonction ou de la procédure. Exemple : etude(ByVal x As Integer, ByVal y As Integer).

• ByRef : le mode de transmission se fait par référence, l’adresse du paramètre d’appel est transmise à l’argument correspondant de la fonction ou de la procédure. Exemple : etude(ByRef x As Integer, ByRef y As Integer).

Livre 7608-VBA.indb 5 07/08/12 07:05

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Page 6: Memento VBA - pearson.fr€¦ · 2 Applications avec Excel Variables globales à plusieurs procédures d’un même module : Exemple : Dim resultat As Double (à placer en tête du

6 ◆ Applications avec Excel

Par défaut, les arguments des fonctions et des procédures sont déclarés ByRef. Exemple : etude(x As Integer, y As Integer).

Fonctions prédéfinies

Voici quelques exemples de fonctions prédéfinies du langage VBA :

• Mathématiques : Abs(x), Sqr(x), Cos(x), Sin(x), Tan(x), Exp(x), Log(x), Int(x), Fix(x), Round(x,nb)…

• Chaînes de caractères : Len(ch), InStr(ch,ch2), Mid(ch,d,n), Mid(ch,d), Left(ch,n), Right(ch,n), Replace(ch,ch1,ch2), Trim(ch), Ltrim(ch), Rtrim(ch), Lcase(ch), Ucase(ch)…

• Conversion des données : Asc(ch), CInt(ch), CDbl(ch), CLng(ch), Chr(n), CStr(n)…

Nombres aléatoires

Les nombres aléatoires sont calculés de la façon suivante :

• Randomize : réinitialise le processus aléatoire.

• Rnd() : donne un nombre aléatoire décimal tel que 0 <= Rnd() <1.

• Int(b – a + 1) * Rnd() + a) : donne des nombres entiers aléatoires compris entre a et b, bornes comprises.

Exemple : Int(6 * Rnd() + 1) : donne des nombres entiers compris entre 1 et 6 (tirage d’un dé).

Livre 7608-VBA.indb 6 07/08/12 07:05

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Page 7: Memento VBA - pearson.fr€¦ · 2 Applications avec Excel Variables globales à plusieurs procédures d’un même module : Exemple : Dim resultat As Double (à placer en tête du

BLes objets Excel

Les applications Excel mettent en jeu de nombreux objets qui sont définis selon un modèle. Les classeurs, les feuilles de calcul et les cellules peuvent être représentés par des variables objets. Il en est de même pour les objets de contrôle et les formulaires.

Voici une présentation synthétique de ces variables et de leurs propriétés.

Types, collections et variables objets

Le modèle objet d’Excel est structuré par plusieurs classes. Les classes les plus impor-tantes sont définies par les types suivants :

• Object : la classe la plus générale.

• Application : l’application Excel elle-même.

• Workbook : la classe des classeurs.

• Worksheet : la classe des feuilles de calcul.

• Range : la classe des plages de cellules.

Le modèle objet comporte aussi plusieurs collections :

• Workbooks : l’ensemble des objets classeurs.

• Worksheets : l’ensemble des objets feuilles de calcul.

• Charts : l’ensemble des objets graphiques.

• Sheets : l’ensemble des objets feuilles de calcul et des objets graphiques.

Exemple de déclaration de variables objets :

•Dim cls As Workbook, fe As Worksheet, plage As Range•Set cls = Workbooks("Exemple.xls")•Set fe = cls.Worksheets("Stock")•Set plage = fe.Range("B1:C5")

ou bien :

•Set plage = Workbooks("Exemple.xls").Worksheets("Stock").Range("B1:C5")

Livre 7608-VBA.indb 1 07/08/12 07:05

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Page 8: Memento VBA - pearson.fr€¦ · 2 Applications avec Excel Variables globales à plusieurs procédures d’un même module : Exemple : Dim resultat As Double (à placer en tête du

2 ◆ Applications avec Excel

Les collections regroupent les objets du type correspondant :

• Workbooks("Exemple.xls") est un objet de la collection Workbooks, de type Workbook.

• Worksheets("Stock") est un objet de la collection Worksheets, de type Worksheet.

• Écriture particulière : Range("B1:C5") définit une collection de cellules, de type Range.

• Set… affecte à chaque variable l’adresse de l’objet correspondant.

Les déclarations peuvent être allégées s’il n’y a qu’un classeur et qu’une feuille de calcul dans l’application étudiée. Dans ce cas, on peut écrire : Set plage = Range("B1:C5").

Désignation des cellules

Les cellules peuvent être désignées sans déclaration préalable des variables objets ou bien avec une déclaration préalable des variables objets.

Sans déclaration des variables objets

• Range("A2") désigne la cellule A2 de la feuille active.

• Range("A2:B5") désigne la plage A2:B5 de la feuille active.

• Range("A2:B5").Cells(i, j) désigne la cellule de la ième ligne et de la jième colonne relative à la plage A2:B5.

• Range("A2:B5").Cells(1, 1) désigne la cellule A2 car Cells(i, j) commence à 1, 1.

• Range("A2:B5").Cells(3, 2) désigne la cellule B4.

Lorsqu’il n’y a qu’une seule feuille de calcul :

• Cells(i, j) désigne la cellule de la ième ligne et de la jième colonne de la feuille de calcul.

• Cells(3, 2) désigne la cellule B3 de la feuille active.

• Cells(i, 2) désigne la cellule de la ième ligne de la deuxième colonne de la feuille active.

Avec déclaration des variables objets

Premier exemple :

• Dim p as Range déclare la variable p comme une variable de type Range.

• Set p = Range("B2:D8") affecte à la variable p l’adresse de la plage B2:D8.

• p.Cells(i, j) désigne la cellule de la ième ligne et jième colonne relative à la plage B2:D8.

• p.Cells(1, 1) désigne la cellule B2 car Cells(i, j) commence à 1, 1.

• p.Cells(3, 2) désigne la cellule C4.

Livre 7608-VBA.indb 2 07/08/12 07:05

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Page 9: Memento VBA - pearson.fr€¦ · 2 Applications avec Excel Variables globales à plusieurs procédures d’un même module : Exemple : Dim resultat As Double (à placer en tête du

Annexe B – Les objets Excel ◆ 3

Deuxième exemple :

• Set p = Range("B1:B5") affecte à la variable p l’adresse de la plage B1:B5.

• p.Cells(i) désigne la cellule de la ième ligne relative à la plage B1:B5 (une seule colonne).

Troisième exemple :

• Dim c as Range déclare la variable c comme une variable de type Range.

• Set c= Range("C3") affecte à la variable c l’adresse de la cellule C3.

• c.Offset(i, j) désigne la cellule obtenue par le déplacement i,j à partir de la cellule C3.

• c.Offset(0, 0) désigne la cellule C3 car Offset(i, j) commence à 0, 0.

• c.Offset(1, 0) désigne la cellule C4.

• c.Offset(2, 1) désigne la cellule D5.

• c.Offset(–1, 1) désigne la cellule D2.

Valeur d'une cellule

La propriété Value permet de définir la valeur d’une cellule :

• Range("A2").Value donne la valeur de la cellule A2.

• x=Range("A2").Value affecte à x la valeur de la cellule A2.

• p.Cells(i, j).Value donne la valeur d’une cellule relative à la plage p.

• c.Offset(i, j).Value donne la valeur d’une cellule définie à partir de la cellule c.

Lignes et colonnes d’une plage

Les plages de cellules sont structurées par des lignes et des colonnes :

• p.Rows désigne la collection des lignes de la plage p.

• p.Rows.Count donne le nombre de lignes de la plage p.

• p.Columns désigne la collection des colonnes de la plage p.

• p.Columns.Count donne le nombre de colonnes de la plage p.

• p.Count donne le nombre total de cellules de la plage p.

Plage et cellule sélectionnées par l'utilisateur

Toute plage et toute cellule sélectionnée par l’utilisateur au sein de la feuille de calcul peut être représentée par une variable objet de type Range :

• Set p = Selection : lorsqu’une plage a été sélectionnée, Selection attribue à p l’adresse de cette plage.

• Set c = ActiveCell : lorsqu’une cellule a été sélectionnée, ActiveCell affecte à c l’adresse de cette cellule.

Livre 7608-VBA.indb 3 07/08/12 07:05

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Page 10: Memento VBA - pearson.fr€¦ · 2 Applications avec Excel Variables globales à plusieurs procédures d’un même module : Exemple : Dim resultat As Double (à placer en tête du

4 ◆ Applications avec Excel

Actions sur les cellules

Plusieurs actions sont possibles sur les cellules :

• p.ClearContents efface le contenu des cellules de la plage p.

• p.Clear efface le contenu et le formatage des cellules de la plage p.

• c.Interior.Pattern = xlPatternNone efface la couleur de la cellule c.

Couleurs dans les cellules

Deux modalités permettent de colorier des cellules :

• c.Interior.Color = RGB(x, y, z) met une couleur au sein de la cellule c qui dépend des valeurs de x, y et z.

• c.Interior.ColorIndex = i met la couleur n° i au sein de la cellule c (la couleur fait partie d’un panel de 56 couleurs).

Objets de contrôle

Les objets de contrôle jouent le rôle d’interface entre l’utilisateur et les applications Excel. Ils peuvent faire partie d’objets formulaires. Leurs caractéristiques principales sont les suivantes :

• Types : Label, TextBox, ListBox, ComboBox, CommandButton, CheckBox, OptionButton, ScrollBar…

• Propriétés : Name, Caption…

• Méthodes : selon les types.

• Événements : Click, DblClick…

Objets formulaires

Les formulaires sont des objets d’interfaces entre l’utilisateur et l’application. Leurs caractéristiques principales sont les suivantes :

• Types : UserForm

• Propriétés : Name, Caption…

• Méthodes : Show, Hide, Load, Unload…

• Événements : Initialize, Activate, Desactivate, Click, DblClick…

Livre 7608-VBA.indb 4 07/08/12 07:05

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Page 11: Memento VBA - pearson.fr€¦ · 2 Applications avec Excel Variables globales à plusieurs procédures d’un même module : Exemple : Dim resultat As Double (à placer en tête du

CCréation des programmes VBA, des formulaires et des boutons

de commande

L’éditeur proposé par Microsoft, appelé VBE (Visual Basic Editor), est indispensable pour éditer et exécuter tous les programmes VBA, et pour créer les formulaire avec tous leurs composants (boutons, zones de texte…). En revanche, il est possible de créer des boutons de commande directement sur les feuilles de calcul sans utiliser l’éditeur VBE.

Paramétrage de l’éditeur VBE

Avant d’éditer le texte du premier programme, il faut créer un accès à l’éditeur, choisir un niveau de sécurité des programmes et introduire deux options recommandées pour l’édition.

Création de l’onglet Développeur

L’accès à l’éditeur VBE se fait en créant l’onglet Développeur. Plusieurs actions sont nécessaires :

1. Cliquer sur l’onglet Fichier.

2. Choisir Options.

3. Choisir Personnaliser le ruban.

4. Dans le cartouche de droite, cocher l’option Développeur, puis cliquer sur OK.

Sélectionner ensuite l’onglet Développeur pour le faire apparaître.

Livre 7608-VBA.indb 1 07/08/12 07:05

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Page 12: Memento VBA - pearson.fr€¦ · 2 Applications avec Excel Variables globales à plusieurs procédures d’un même module : Exemple : Dim resultat As Double (à placer en tête du

2 ◆ Applications avec Excel

Niveaux de sécurité

Il faut ensuite définir le niveau de sécurité des programmes en procédant de la façon suivante :

• Cliquer sur le bouton « Sécurité des macros » de l’onglet Développeur, puis choisir le niveau qui convient parmi les quatre niveaux proposés.

• La deuxième option, « Désactiver les macros avec notification », peut être retenue.

Ouverture de l’éditeur VBE

L’accès à la fenêtre de l’éditeur VBE peut être obtenu en sélectionnant l’onglet Développeur, puis en cliquant sur l’icône « Visual Basic » située à gauche. La frappe de Alt + F11 aboutit au même résultat.

Options recommandées pour l’édition

Deux options sont recommandées pour faciliter l’édition :

• La première option rend obligatoire la déclaration des variables. L’éditeur VBE étant ouvert, sélectionner Outils>Options, puis choisir Éditeur et cocher « Décla-ration des variables obligatoire ».

• La deuxième option permet un meilleur suivi concernant la vérification de la syntaxe des programmes. L’éditeur VBE étant ouvert, sélectionner Outils>Options, puis choisir Éditeur et cocher « Vérification automatique de la syntaxe ».

Création d’un programme

L’éditeur VBE étant ouvert, les modalités de création d’un programme sont les suivantes :

Édition d’un premier programme

Sélectionner Insertion>Module : le Module1 est créé et la fenêtre Module1(Code) est activée.

Édition d’un nouveau programme

• Au sein du même module : éditer le texte à la suite des autres programmes au sein du module. Si le texte des programmes déjà enregistrés n’apparaît pas, cliquer sur Modules>Module1 de la fenêtre VBAProject.

• Au sein d’un nouveau module : sélectionner Insertion>Module. Le module suivant est créé (Module2, Module3…) et la fenêtre correspondante est activée.

Exécution d’un programme

Pour exécuter un programme, placer le curseur à l’intérieur du texte du programme, sélectionner Exécution>Exécuter Sub/UserForm ou bien cliquer sur « Macros » de l’onglet Développeur, puis sélectionner le nom du programme au sein de la fenêtre Macro.

Livre 7608-VBA.indb 2 07/08/12 07:05

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Page 13: Memento VBA - pearson.fr€¦ · 2 Applications avec Excel Variables globales à plusieurs procédures d’un même module : Exemple : Dim resultat As Double (à placer en tête du

Annexe C – Création des programmes VBA, des formulaires et des boutons… ◆ 3

Sauvegarde des programmes

Il est nécessaire de sauvegarder les applications Excel qui contiennent les programmes, même si ceux-ci n’utilisent pas de feuilles de calcul. Le format à utiliser est « Classeur Excel (prenant en charge les macros) », qui crée un fichier dont l’extension est .xlsm.

Création d’un formulaire

Pour créer un formulaire, il faut créer l’objet correspondant constitué de tous ses composants, puis associer à chaque bouton le code des procédures VBA.

Objet formulaire et ses objets contrôles

La création d’un formulaire se fait en effectuant les actions suivantes :

1. Ouvrir l’éditeur VBE puis sélectionner Insertion>UserForm : l’objet formulaire UserForm1 apparaît.

2. Cliquer du bouton droit sur l’image du formulaire, puis sélectionner « Propriétés » : donner une nouvelle valeur à la propriété Name (nom de la variable qui désigne l’objet formulaire), et donner une nouvelle valeur à la propriété Caption (le titre de l’objet formulaire).

3. Mettre au sein de l’objet formulaire les différents objets contrôles en ouvrant tout d’abord la Boîte à outils (le Mode Création est activé), puis, pour chaque objet :

a. Sélectionner l’objet à insérer au sein de la Boîte à outils ;

b. Le faire glisser au sein de l’objet formulaire en le positionnant au bon endroit ;

c. Donner éventuellement une nouvelle valeur à la propriété Name (nom de la variable qui désigne l’objet) et à la propriété Caption de l’objet.

Texte du programme associé à un bouton

À chaque bouton appartenant au formulaire doit être associé le code d’un programme. Les actions suivantes sont nécessaires :

1. Cliquer du bouton droit sur l’un des boutons insérés au sein de l’objet formulaire, sélectionner « Code ».

2. Écrire le texte au sein du squelette fourni par la page de l’éditeur associée au formulaire.

Accès aux propriétés et au code associé

Si des modifications sont à introduire dans la définition du formulaire et des boutons, il convient de procéder de la façon suivante :

• Formulaire : cliquer du bouton droit sur l’image du formulaire, puis sélectionner « Propriétés » ou sélectionner « Code ».

• Bouton du formulaire : cliquer du bouton droit sur l’image du bouton, puis sélec-tionner « Propriétés » ou sélectionner « Code ».

Livre 7608-VBA.indb 3 07/08/12 07:05

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Page 14: Memento VBA - pearson.fr€¦ · 2 Applications avec Excel Variables globales à plusieurs procédures d’un même module : Exemple : Dim resultat As Double (à placer en tête du

4 ◆ Applications avec Excel

Création d’un bouton de commande sur une feuille Excel

Pour créer un bouton de commande sur une feuille Excel, il faut placer l’icône du bouton sur la feuille, puis donner des valeurs aux propriétés de l’objet et lui associer le code correspondant.

Création d’un objet bouton

• Pour créer un objet bouton, il faut, sans ouvrir l’éditeur VBE :

1. Cliquer sur l’icône « Insérer des contrôles » située au milieu de l’onglet Développeur.

2. Mettre l’objet bouton sur la feuille Excel après l’avoir sélectionné au sein de la partie « Contrôles ActiveX ».

• Le Mode Création est automatiquement activé.

Accès aux propriétés et au code associé

Deux modalités sont possibles lorsque le Mode Création est actif :

• Clic sur « Propriétés » de l’onglet Développeur pour accéder aux propriétés de l’objet bouton, et clic sur « Visualiser le code » de l’onglet Développeur pour accéder à la page de l’éditeur.

• Cliquer du bouton droit sur l’image du bouton, puis sélectionner « Propriétés » et cliquer du bouton droit sur l’image du bouton, puis sélectionner « Visualiser le code ».

Les propriétés de l’objet bouton

Un objet bouton est défini par son nom et son intitulé :

1. Le nom est introduit en donnant une nouvelle valeur à la propriété Name. Exemple : Btn_Calcul.

2. L’intitulé est introduit en donnant une nouvelle valeur à la propriété Caption. Exemple : CALCUL.

Le code associé

À chaque bouton doit être associé le code d’une procédure VBA. Il convient d’écrire le texte au sein du squelette fourni par la page d’édition Feuil1(Code) :

•Sub Btn_Calcul_Click()• Code à écrire•End Sub

Livre 7608-VBA.indb 4 07/08/12 07:05

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier

Page 15: Memento VBA - pearson.fr€¦ · 2 Applications avec Excel Variables globales à plusieurs procédures d’un même module : Exemple : Dim resultat As Double (à placer en tête du

Annexe C – Création des programmes VBA, des formulaires et des boutons… ◆ 5

Exécution de la procédure associée

Pour exécuter le code de la procédure associée, il faut désactiver le Mode Création, puis cliquer sur l’image du bouton pour lancer l’exécution.

Modifications

Si des modifications sont à introduire dans la définition de l’objet bouton, il convient de procéder de la façon suivante :

• Réactiver si nécessaire le Mode Création, puis cliquer sur « Propriétés » ou sur « Visualiser le code » de l’onglet Développeur.

• Ou bien cliquer du bouton droit sur l’image du bouton, puis sélectionner « Propriétés » ou « Visualiser le code ».

Livre 7608-VBA.indb 5 07/08/12 07:05

© 2012 Pearson France – Introduction à la programmation avec VBA – Robert Chevallier