Vous êtes sur la page 1sur 33

CPR Informatique

(poste 3159 ou 3164)










Septembre 2001










V
V
i
i
s
s
u
u
a
a
l
l
B
B
a
a
s
s
i
i
c
c
A
A
p
p
p
p
l
l
i
i
c
c
a
a
t
t
i
i
o
o
n
n

p
p
o
o
u
u
r
r
E
E
x
x
c
c
e
e
l
l







Table des matires


1.- PRISE EN MAIN DE LENVIRONNEMENT ................................................................................................... 3
1.1.- DEMARRAGE DE VISUAL BASIC DANS EXCEL.................................................................................................... 3
1.2.- LEXPLORATEUR DE PROJET ............................................................................................................................. 3
1.3.- LEXPLORATEUR D'OBJETS ............................................................................................................................... 4
1.4.- LA FENETRE CODE............................................................................................................................................ 6
1.5.- LA FENETRE EXECUTION.................................................................................................................................. 7
1.6.- LA FENETRE ESPIONS ....................................................................................................................................... 8
2.- CREATION DE FORMULAIRES ...................................................................................................................... 9
2.1.- CASE DOPTION................................................................................................................................................. 9
2.2- CASE COCHER................................................................................................................................................. 9
2.3.- ZONE DE LISTE................................................................................................................................................ 10
2.4.- BOUTON DE COMMANDE................................................................................................................................. 11
2.5.- IDENTIFICATEUR DES CONTROLES................................................................................................................... 12
3.- LES BOITES DE DIALOGUES......................................................................................................................... 13
3.1.- LOBJET USERFORM. ...................................................................................................................................... 13
3.1.1.- Cration dune UserForm...................................................................................................................... 13
3.1.2.- Modification du nom dune UserForm. .................................................................................................. 13
3.1.3.- Modification des proprits dune UserForm. ....................................................................................... 13
3.2.- LA BOITE A OUTILS ......................................................................................................................................... 14
3.2.1.- Affichage ou masquage de la bote outils............................................................................................ 14
3.2.2.- Les contrles de la bote outils............................................................................................................ 14
3.3.- LES CONTROLES SUPPLEMENTAIRES ............................................................................................................... 18
3.4.- MODIFICATION DUN CONTROLE..................................................................................................................... 18
3.4.1.- Modification du nom .............................................................................................................................. 18
3.4.2.- Modification dune proprit ................................................................................................................. 19
3.5.- LA SUPERPOSITION DES CONTROLES ............................................................................................................... 19
4.- LES MENUS ........................................................................................................................................................ 20
4.1.- LE MENU BARRE ........................................................................................................................................ 20
4.2.- LE MENU CONTEXTUEL ............................................................................................................................. 20
5.- REPONSES AUX EVENEMENTS.................................................................................................................... 22
6.- LAIDE EN LIGNE SUR LES PROCEDURES EVENEMENTIELLES ...................................................... 23
7.- ACTIONS POSSIBLES SUR UN DOCUMENT EXCEL................................................................................ 24
7.1.- OUVERTURE ET FERMETURE DUN DOCUMENT EXCEL.................................................................................... 24
7.2.- ACTIONS SUR LOBJET FEUILLE EXCEL ..................................................................................................... 24
7.3.- ACTIONS SUR LOBJET CELLULE EXCEL .................................................................................................... 25
7.4.- AUTRES ACTIONS SUR DES OBJETS EXCEL....................................................................................................... 26
7.5.- QUELQUES EXEMPLES DACTIONS PLUS COMPLEXES....................................................................................... 27
ANNEXES ................................................................................................................................................................. 29
A1.- CONSTANTES, BOUTONS ET ICONES DES BOITES DE MESSAGES....................................................................... 29
A2.- CONSTANTES DE CODE DE TOUCHES ............................................................................................................... 31


IGN / ENSG / CPRI Visual Basic Application pour Excel page 3/33

1.- Prise en main de lenvironnement
1.1.- Dmarrage de Visual basic dans Excel
Dans le menu Outils slectionnez la commande Macro Visual Basic Editor pour
activer lexplorateur de projet.



1.2.- LExplorateur de projet
Lexplorateur de projet affiche une liste hirarchise des projets et de tous les lments
rfrencs par chaque projet et contenus dans un projet.

Ouvre une fentre destine recevoir le code Visual Basic
Le projet et les lments qu'il contient
:
Affiche l'objet slectionn



IGN / ENSG / CPRI Visual Basic Application pour Excel page 4/33

1.3.- LExplorateur d'objets
Affiche les classes, les proprits, les mthodes, les vnements et les constantes disponibles
dans les bibliothques d'objets et les procdures de votre projet. Il permet de rechercher et
d'utiliser des objets que vous crez ainsi que des objets provenant d'autres applications.

Projet/bibliothque
Rechercher un texte
Retourner
Avancer
Afficher la dfinition
Aide
Copier
Afficher/masquer
Rechercher


Zone Projet/bibliothque
Affiche les bibliothques actuellement rfrences pour le projet actif. Vous pouvez ajouter des
bibliothques dans la bote de dialogue Rfrences. All Libraries permet d'afficher
simultanment toutes les bibliothques.

Zone Rechercher un texte
Contient la chane utiliser dans votre recherche. Vous pouvez taper ou choisir la chane
utiliser. La zone Rechercher un texte conserve jusqu' la fermeture du projet les 4 dernires
chanes de recherche que vous avez entres. Vous pouvez utiliser les caractres gnriques
Visual Basic standard lorsque vous tapez une chane.
Pour rechercher un mot entier, utilisez la commande Mot entier du menu contextuel.

Bouton Retourner
Permet de revenir la slection prcdente dans les listes Classes et Membres de . Vous
remontez d'une slection chaque fois que vous cliquez sur ce bouton, jusqu' puisement des
choix prcdents.

Bouton Avancer
Permet de rutiliser vos slections d'origine dans les listes Classes et Membres de chaque fois
que vous cliquez dessus, jusqu' puisement de la liste de slections.

Bouton Copier dans le Presse-papiers
Copie la slection en cours dans la liste Membres de ou le texte du volet Dtails vers le
Presse-papiers. Vous pouvez ensuite coller la slection dans votre code.

Bouton Afficher la dfinition
Dplace le curseur la position laquelle est dfinie la slection dans la liste Membres de ou
Classes de la fentre Code.

IGN / ENSG / CPRI Visual Basic Application pour Excel page 5/33

Bouton Aide
Affiche la rubrique d'aide en ligne correspondant l'lment slectionn dans la liste Classes
ou Membres de . Vous pouvez galement appuyer sur F1.

Bouton Rechercher
Lance une recherche dans les bibliothques sur la classe ou proprit, mthode, constante ou
l'vnement correspondant la chane que vous avez tape dans la zone Rechercher un texte
et ouvre le volet Rsultats de la recherche , dans lequel figurent les informations demandes.

Bouton Afficher/Masquer les rsultats de la recherche
Ouvre ou masque le volet Rsultats de la recherche . Les informations de ce dernier sont
modifies pour afficher les rsultats de la recherche dans la bibliothque ou dans le projet
slectionn dans la liste Projet/bibliothque . Les rsultats de la recherche sont rpertoris par
ordre alphabtique de A Z.

Liste Rsultats de la recherche
Affiche la bibliothque, la classe et le membre correspondant aux lments indiqus dans votre
chane de recherche. Les informations du volet Rsultats de la recherche sont modifies
lorsque vous changez la slection dans la zone Projet/bibliothque .

Liste Classes
Affiche toutes les classes disponibles dans la bibliothque ou dans le projet slectionn dans la
zone Projet/Bibliothque . S'il existe du code rdig pour une classe, cette dernire apparat en
gras. La liste commence toujours par <global>, la liste des membres auxquels l'accs est global.
Si vous slectionnez une classe sans prciser de membre, le membre par dfaut, s'il existe, est
utilis. Le membre par dfaut est indiqu par un astrisque (*) ou par l'icne par dfaut
spcifique ce membre.

Liste Membres de
Affiche les lments de la classe slectionne dans le volet Classes en les triant par groupe,
puis dans l'ordre alphabtique au sein de chaque groupe. Les mthodes, proprits, vnements
ou constantes pour lesquels du code est rdig apparaissent en gras. Vous pouvez modifier
l'ordre de cette liste avec la commande Membres du groupe du menu contextuel de
l'Explorateur d'objets.

Volet Dtails
Affiche la dfinition du membre. Le volet Dtails contient un renvoi la classe ou
bibliothque laquelle l'lment appartient. Certains membres sont dots de renvois leur classe
parent. Par exemple, si le texte du volet Dtails indique que Command1 est dclare en tant
que type de bouton de commande, la classe Bouton de commande apparat si vous cliquez sur le
bouton de commande.
Vous pouvez copier ou faire glisser le texte du volet Dtails vers la fentre Code.

Barre de fractionnement
Spare les volets pour vous permettre de modifier leur taille. Des sparations existent entre :
la zone Classes et la zone Membres de ;
la liste Rsultats de la recherche et les zones Classes et Membres de ;
les zones Classes et Membres de et le volet Dtails .

IGN / ENSG / CPRI Visual Basic Application pour Excel page 6/33

1.4.- La Fentre Code
Pour afficher la fentre de code :
1. slectionnez lobjet qui doit tre associ au code Visual Basic ;
2. cliquez sur le bouton daffichage de la fentre code .
1
2


La fentre Code permet d'crire, d'afficher et de modifier le code Visual Basic. Vous pouvez
ouvrir autant de fentres Code que vous avez de modules, ce qui vous permet de visualiser
facilement le code des diffrentes feuilles ou modules et d'effectuer des oprations de copier-
coller de l'un l'autre.
Vous pouvez ouvrir une fentre Code partir de :
la fentre Projet, en slectionnant une feuille ou un module, et en choisissant le bouton
Afficher le code ;
une fentre UserForm, en double-cliquant sur un contrle ou sur une feuille, en choisissant
Code dans le menu Affichage ou en appuyant sur F7.
Vous pouvez faire glisser le texte slectionn vers :
un autre emplacement de la fentre Code en cours ;
une autre fentre Code ;
les fentres Excution et Espions ;
la Corbeille.

lments de la fentre code

Zone Objet
Affiche le nom de l'objet slectionn. Cliquez sur la flche situe droite de la zone de liste pour
afficher la liste de tous les objets associs la feuille.

Zone Procdures/vnements
Rpertorie tous les vnements reconnus par Visual Basic pour la feuille ou le contrle affich
dans la zone Objet. Lorsque vous slectionnez un vnement, la procdure d'vnement qui est
associe son nom apparat dans la fentre Code.
Si (Gnral) est affich dans la zone Objet, la zone Procdure rpertorie l'ensemble des
dclarations et des procdures gnrales qui ont t cres pour la feuille. Si vous modifiez le
code du module, la zone Procdure affiche toutes les procdures gnrales du module. Dans les
deux cas, la procdure que vous avez slectionne dans la zone Procdure apparat dans la
fentre Code.

IGN / ENSG / CPRI Visual Basic Application pour Excel page 7/33

Toutes les procdures d'un module sont affiches par ordre alphabtique dans une mme liste
avec dfilement. Si vous slectionnez une procdure l'aide des zones de liste droulantes
situes en haut de la fentre Code, le curseur va immdiatement se placer sur la premire ligne
de code de la procdure slectionne.

Barre de fractionnement
Faire glisser cette barre vers le bas a pour effet de fractionner la fentre Code en deux volets
horizontaux dont vous pourrez faire dfiler le contenu de manire totalement autonome. Vous
pouvez ensuite afficher simultanment diffrentes parties de votre code. Les informations qui
apparaissent dans les zones Objet et Procdures/vnements s'appliquent au code du volet qui a
le focus. Si vous faites glisser la barre de fractionnement jusqu'en haut de la fentre, un volet se
ferme.

Barre des indicateurs en marge
Zone grise situe gauche de la fentre Code o apparaissent les indicateurs en marge.

Icne Affichage de la procdure
Affiche la procdure slectionne. La fentre Code ne peut afficher qu'une procdure la fois.

Icne Affichage complet du module
Affiche l'ensemble du code du module.
1.5.- La Fentre Excution



Dans cette fentre, vous pouvez :

taper ou coller une ligne, puis appuyer sur ENTRE pour l'excuter ;
copier le code de la fentre Excution pour le coller dans la fentre Code , mais vous ne
pouvez pas enregistrer le code de la fentre Excution ;
faire glisser et dplacer la fentre Excution n'importe o sur votre cran, sauf si vous en
faites une fentre ancrable l'aide de l'onglet Ancrage de la bote de dialogue Options.
Pour fermer la fentre, cliquez sur la case de fermeture. Si elle n'est pas visible, double-cliquez
sur la barre de titre pour que la case de fermeture apparaisse, puis cliquez sur cette dernire.
En mode Arrt, une instruction figurant dans la fentre Excution est excute dans le contexte
ou la porte indiqu dans la zone Procdure. Par exemple, si vous tapez Print variablename ,
la sortie est la valeur d'une variable locale, comme si la mthode Print s'tait trouve dans la
procdure que vous excutiez quand le programme s'est arrt.


IGN / ENSG / CPRI Visual Basic Application pour Excel page 8/33

1.6.- La Fentre Espions



Cette boite apparat automatiquement lorsque des expressions espionnes sont dfinies dans le
projet. Vous pouvez :
modifier la taille des en-ttes de colonnes en faisant glisser la bordure vers la droite pour les
agrandir ou vers la gauche pour les rduire ;
faire glisser une variable slectionne vers la fentre Excution ou la fentre Espion ;
fermer la fentre en cliquant sur la case de fermeture. Si elle n'est pas visible, double-cliquez
sur la barre de titre pour que la case de fermeture apparaisse, puis cliquez sur cette dernire.
Expression : affiche l'expression espionne avec l'icne Espion, sa gauche.
Valeur : indique la valeur de l'expression au moment du passage au mode Arrt. Vous pouvez
modifier la valeur puis appuyer sur ENTRE, sur les touches flches HAUT et BAS, TAB,
MAJ+TAB, ou cliquer sur l'cran pour valider la modification. Si la valeur est incorrecte, le
champ Modifier reste actif et la valeur est mise en vidence. Un message dcrivant l'erreur
apparat galement. Pour annuler une modification, appuyez sur CHAP.
Type : indique le type de l'expression.
Contexte : affiche le contexte de l'expression espionne. Si le contexte de l'expression n'est pas
dans la porte lors du passage au mode Arrt, la valeur en cours n'est pas indique.
Pour fermer la fentre, cliquez sur la case de fermeture. Si elle n'est pas visible, double-cliquez
sur la barre de titre pour que la case de fermeture apparaisse, puis cliquez sur cette dernire.

IGN / ENSG / CPRI Visual Basic Application pour Excel page 9/33

2.- Cration de formulaires
Sur une feuille de calcul vous pouvez placer des case cocher, des boutons d'options, des listes
droulantes ou des boutons de commande (qui serviront dclencher des macros).
Ces contrles placs sur une feuille de calcul peuvent ne pas tre visible au moment de
l'impression.
2.1.- Case doption
1. dans le menu Affichage , activez la commande Barre d'outils , puis affichez la barre
Formulaire ;
2. cliquez sur le bouton Case doption , puis placez lobjet sur la feuille de calcul ;
3. lorsque lobjet est slectionn, dans le menu Format , activez la commande
Contrle.. ;
4. cliquez sur longlet Contrle , puis indique la valeur souhaite (Non coch, Coch ou
Gris) ;
5. indiquez la cellule lie. La cellule lie tant la cellule qui reoit le n de la case doption
active.

1
2
3
4
5
Cellule lie


2.2- Case cocher
1. dans le menu Affichage , activez la commande Barre d'outils , puis affichez la barre
Formulaire ;
2. cliquez sur le bouton Case cocher , puis placez lobjet sur la feuille de calcul ;
3. lorsque lobjet est slectionn, dans le menu Format , activez la commande Contrle ;
4. cliquez sur longlet Contrle , puis indique la valeur souhaite (Non coch, Coch ou
Gris) ;
5. indiquez la cellule lie. La cellule lie tant la cellule qui reoit VRAI lorsque la case est
coche, FAUX dans lautre cas.


IGN / ENSG / CPRI Visual Basic Application pour Excel page 10/33

1
2
Cellule lie
4
3
5


2.3.- Zone de liste
1. dans le menu Affichage , activez la commande Barre d'outils , puis affichez la barre
Formulaire ;
2. cliquez sur un des boutons Zone de liste, puis placez lobjet sur la feuille de calcul ;
3. lorsque lobjet est slectionn, dans le menu Format , activez la commande Contrle ;
4. cliquez sur longlet Contrle , puis indique la Plage dentre . La plage dentre tant
la plage des cellules contenant les informations qui doivent figurer dans la liste ;
5. indiquez la cellule lie. La cellule lie tant la cellule qui reoit le n du rang de
linformation slectionne dans la liste ;
6. indiquez le Nombre de lignes ,. Le nombre de lignes correspond aux nombre de lignes
affiches lorsque lon clique sur la zone de liste droulante.
1
4
3
5
2
6
Cellule lie
Plage d'entre


IGN / ENSG / CPRI Visual Basic Application pour Excel page 11/33


Remarque :
les cellules lies, les plages dentres, peuvent tre situes sur une autre feuille ;
pour ne pas imprimer ces contrles, dcochez la case Imprimer lobjet .


2.4.- Bouton de commande
1. dans le menu Affichage , activez la commande Barre d'outils , puis affichez la barre
Formulaire ;
2. cliquez sur le bouton Bouton, puis placez lobjet sur la feuille de calcul ;
3. la fentre Affecter une macro saffiche, slectionnez la macro ;
4. cliquez sur Ok ;
5. slectionner le texte du bouton, puis taper le texte qui vous convient.

1
4
3
5
2



IGN / ENSG / CPRI Visual Basic Application pour Excel page 12/33

2.5.- Identificateur des contrles
Contrairement aux boites de dialogue que nous verrons dans le chapitre suivant, les contrles
insrs dans une feuille Excel (Case option, Case cocher, Boutons ) nont pas
didentificateur. La seule de manire de les identifier est de connatre lordre de cration du
contrle dans la feuille Excel. Visual Basic range les contrles dans un tableau de mme type.
Par exemple, si vous crez trois boutons sur votre feuille Excel, VBA cre un tableau Buttons
de trois lments de type Buttons .
De mme, si vous crez deux cases doptions, vous aurez un tableau OptionButtons de deux
lments. Si vous dsirez connatre ltat des cases doptions (par exemple laquelle des deux est
slectionne), vous pouvez crire le code suivant :

For I = 1 To 2
Valeur = Sheets ("nom de la feuille").OptionButtons(I).Value
Debug.Print Valeur
Next

Dans le cas prcdent, Valeur vaudra 1 pour la case coche et une valeur ngative
quelconque pour la case non coche.

Autre exemple : rendre un bouton visible.
Pour connatre lordre de cration du bouton (donc son rang dans le tableau Buttons ), on peut
par exemple parcourir lensemble des boutons de la feuille Excel (faire une boucle sur le nombre
de boutons de la feuille) et comparer lattribut Text de tous les boutons avec celui recherch.
Une fois le rang du bouton trouv, il suffit daffecter la valeur False la proprit Visible
du bouton.

Sheets ("nom de la feuille").Buttons(rang).Visible = False


Note :
Le tableau des boutons de commande a pour nom : Buttons .
Le tableau des Cases cocher a pour nom : CheckBoxes .
Le tableau des Cases doptions a pour nom : OptionButtons .
Le tableau des Zones de liste a pour nom : DropDowns .
Le tableau des Zones de texte a pour nom : Labels .

IGN / ENSG / CPRI Visual Basic Application pour Excel page 13/33

3.- Les boites de dialogues
3.1.- Lobjet UserForm.
3.1.1.- Cration dune UserForm
La commande Userform du menu Insertion vous permet de crer des fentres ou des
botes de dialogue pour votre projet.
Pour crer une fentre, activez la commande UserForm du menu Insertion.

Une fois lobjet UserForm cr, utilisez les boutons de la bote outils pour dessiner des
contrles sur la feuille. Vous pouvez aligner automatiquement les contrles sur la grille en
choisissant l'option correspondante dans l'onglet Gnral de la bote de dialogue Options.
Vous pouvez afficher la grille de feuille et dfinir l'espacement de ses lignes dans l'onglet
Gnral de la bote de dialogue Options.
3.1.2.- Modification du nom dune UserForm.
slectionnez une UserForm ;
dans la partie gauche de la fentre, face Name ,modifiez le nom.



3.1.3.- Modification des proprits dune UserForm.
slectionnez une UserForm ;
cliquez dans la partie gauche de la fentre, face la proprit modifiez, slectionnez la
nouvelle valeur dans le menu droulant.
Remarque : Pour connatre la signification dune proprit, cliquez sur le libell de la proprit
et appuyez sur la touche F1.

IGN / ENSG / CPRI Visual Basic Application pour Excel page 14/33

3.2.- La boite outils
3.2.1.- Affichage ou masquage de la bote outils
Dans le menu Affichage, regardez si une coche saffiche en regard de Bote outils. Si la coche
est prsente, la bote outils saffiche, dans le cas contraire, elle est masque.
Choisissez lune des options suivantes :
pour afficher la bote outils, vrifiez que la coche apparat en regard de Bote outils. Si ce
nest pas le cas, slectionnez Bote outils ;
pour masquer la bote outils, vrifiez quaucune coche napparat en regard de Bote
outils. Si une coche apparat, slectionnez Bote outils pour la supprimer.
3.2.2.- Les contrles de la bote outils
Outil de slection des contrles
Intitul
Zone de texte
Zone de liste modifiable
Zone de liste
Case cocher
Bouton d'option
Bouton bascule
Cadre
Bouton de commande
Onglet
Multipage
Dfilement
Toupie
Zone d'image

3.2.1.- Intitul ( Label )
Un contrle Label dans une feuille affiche un texte descriptif tel que des titres, des lgendes, des
images ou de brves instructions. Par exemple, les tiquettes dun carnet dadresses peuvent
inclure un contrle Label pour un nom, une rue ou une ville. Un contrle Label naffiche pas de
valeurs issues de sources de donnes ou dexpressions ; il est toujours indpendant et ne change
pas lorsque vous vous dplacez dun enregistrement lautre.
La proprit par dfaut dun Label est la proprit Caption.
Lvnement par dfaut dun Label est lvnement Click.
3.2.2.- Zone de texte ( TextBox )
Le contrle zone de texte est le contrle le plus souvent utilis pour afficher les informations
entres par un utilisateur. Il peut galement afficher un ensemble de donnes, tel quune table,
une requte, une feuille de programmation ou le rsultat dun calcul. Si un contrle zone de texte
est dpendant dune source de donnes, les changements apports au contenu dun contrle zone
de texte modifient aussi la valeur de la source de donnes dont il dpend.
Le format appliqu toute partie du texte du contrle zone de texte se rpercutera la totalit du
texte du contrle. Par exemple, si vous changez la police ou la taille dun caractre du contrle,
la modification affecte tous les caractres du contrle.
La proprit par dfaut dun contrle zone de texte est la proprit Value.
Lvnement par dfaut dun contrle zone de texte est lvnement Change.
3.2.3.- Zone de liste ( ListBox )
Affiche une liste de valeurs et vous permet den slectionner une ou plusieurs.
Si le contrle Zone de liste est dpendant dune source de donnes, il enregistre la valeur
slectionne dans cette source de donnes.
Le contrle Zone de liste peut apparatre sous la forme dune liste, dun groupe de contrles
OptionButton ou de contrles CheckBox.

IGN / ENSG / CPRI Visual Basic Application pour Excel page 15/33

La proprit par dfaut dun contrle Zone de liste est la proprit Value.
Lvnement par dfaut dun contrle Zone de liste est lvnement Click.
3.2.4.- Zone de liste modifiable ( ComboBox )
Allie les caractristiques dun contrle Zone de liste et dun contrle zone de texte. Lutilisateur
peut entrer une nouvelle valeur, comme dans un contrle zone de texte ou bien slectionner une
valeur existante comme dans un contrle Zone de liste.
Si un contrle Zone de liste modifiable est dpendant dune source de donnes, il insre dans
cette source de donnes la valeur que lutilisateur entre ou slectionne. Si une liste modifiable
multicolonne est dpendante, la proprit BoundColumn dtermine la valeur enregistre dans la
source de donnes dont dpend la liste modifiable.
La liste dun contrle Zone de liste modifiable se compose de lignes de donnes. Chacune delle
peut contenir une ou plusieurs colonnes qui peuvent apparatre avec ou sans titre. Certaines
applications nutilisent pas les titres de colonne, dautres ne les lutilisent que partiellement.
La proprit par dfaut dun contrle Zone de liste modifiable est la proprit Value.
Lvnement par dfaut dun contrle Zone de liste modifiable est lvnement Change.
3.2.5.- Case cocher ( CheckBox )
Affiche ltat de la slection dun lment.
Utilisez un contrle Case cocher pour permettre lutilisateur de choisir entre deux valeurs
telles que Oui/Non, Vrai/Faux ou Actif/Inactif. Quand lutilisateur slectionne un contrle Case
cocher, une marque spciale (un X, par exemple) saffiche et sa valeur courante est Oui, Vrai
ou Actif ; si lutilisateur ne slectionne pas le contrle Case cocher, celui-ci est vide et sa
valeur est Non, Faux ou Inactif. Selon la valeur de la proprit TripleState, un contrle Case
cocher peut aussi avoir une valeur nulle.
Si un contrle Case cocher est dpendant dune source de donnes, le changement de
paramtre modifie la valeur de cette source. Un contrle Case cocher dsactiv affiche sa
valeur courante mais il apparat ombr et ne permet pas lutilisateur de modifier sa valeur.
Vous pouvez aussi utiliser des cases cocher lintrieur dune zone de groupe pour
slectionner un ou plusieurs lments connexes. Par exemple, vous pouvez crer un bon de
commande contenant une liste des lments disponibles, en faisant prcder chaque lment dun
contrle Case cocher. Lutilisateur peut slectionner un ou plusieurs lments particuliers en
cochant le contrle Case cocher correspondant.
La proprit par dfaut dun contrle Case cocher est la proprit Value.
Lvnement par dfaut dun contrle Case cocher est lvnement Click.
3.2.6.- Bouton doptions ( OptionButton )
Affiche ltat de la slection dun lment faisant partie dun groupe.
Utilisez un contrle Bouton doptions pour afficher si un seul lment contenu dans un groupe
est slectionn. Tous les contrles Bouton doptions dun contrle Frame sexcluent lun lautre.
Si un contrle Bouton doptions est dpendant dune source de donnes, il peut afficher la valeur
de cette source de donnes comme tant Oui/Non, Vrai/Faux ou Actif/Inactif. Si lutilisateur
slectionne le contrle Bouton doptions, la valeur courante est Oui, Vrai ou Actif ; si
lutilisateur ne slectionne pas le contrle Bouton doptions, la valeur est Non, Faux ou Inactif.
Par exemple, dans une application de suivi des stocks, un contrle Bouton doptions peut faire
apparatre si la production dun lment est arrte. Si le contrle Bouton doptions est
dpendant dune source de donnes, le changement de paramtre modifie la valeur de cette
source. Un contrle Bouton doptions dsactiv est indisponible et il naffiche aucune valeur.
Selon la valeur de la proprit TripleState, un contrle Bouton doptions peut aussi avoir une
valeur nulle.

IGN / ENSG / CPRI Visual Basic Application pour Excel page 16/33

Vous pouvez aussi utiliser un contrle Bouton doptions lintrieur dune zone de groupe pour
slectionner un ou plusieurs groupes dlments connexes. Par exemple, vous pouvez crer un
bon de commande contenant une liste des lments disponibles, en faisant prcder chaque
lment dun contrle Bouton doptions. Lutilisateur peut slectionner un lment particulier en
cochant le contrle Bouton doptions correspondant.
La proprit par dfaut dun contrle Bouton doptions est la proprit Value.
Lvnement par dfaut dun contrle Bouton doptions est lvnement Click.
3.2.7.- Bouton bascule (ToggleButton )
Affiche ltat de la slection dun lment.
Utilisez un contrle Bouton bascule pour afficher si un lment est slectionn. Si un contrle
Bouton bascule est dpendant dune source de donnes, il affiche la valeur courante de cette
source de donnes comme tant Oui/Non, Vrai/Faux, Actif/Inactif ou tout autre choix de deux
valeurs. Si lutilisateur slectionne le contrle Bouton bascule, la valeur courante est Oui, Vrai
ou Actif ; si lutilisateur ne slectionne pas le contrle Bouton bascule, la valeur est Non, Faux
ou Inactif. Si le contrle Bouton bascule est dpendant dune source de donnes, le changement
de paramtre modifie la valeur de cette source. Un contrle Bouton bascule dsactiv affiche une
valeur, mais il est indisponible et nautorise pas les changements partir de linterface
utilisateur.
Vous pouvez aussi utiliser un contrle Bouton bascule lintrieur dun contrle Frame pour
slectionner un ou plusieurs groupes dlments connexes. Par exemple, vous pouvez crer un
bon de commande contenant une liste des lments disponibles, en faisant prcder chaque
lment dun contrle Bouton bascule. Lutilisateur peut choisir un lment particulier en
slectionnant le Bouton bascule appropri.
La proprit par dfaut dun contrle Bouton bascule est la proprit Value.
Lvnement par dfaut dun contrle Bouton bascule est lvnement Click.
3.2.8.- Cadre ( Frame )
Cre un groupe de contrles fonctionnel et visuel.
Tous les boutons doption dun contrle Cadre sexcluent lun lautre, de sorte que vous pouvez
utiliser le contrle Cadre pour crer un groupe doptions. Vous pouvez aussi utiliser un contrle
Cadre pour regrouper des contrles dont le contenu est troitement associ. Par exemple, dans
une application qui traite les commandes clients, vous pouvez utiliser un contrle Cadre pour
regrouper noms, adresses et numros de comptes des clients.
Vous pouvez aussi utiliser un contrle Cadre pour crer un groupe de boutons bascules, mais
ceux-ci ne sexcluent pas lun lautre.
Lvnement par dfaut dun contrle Cadre est lvnement Click.
3.2.9.- Bouton de commande (CommandButton )
Lance, termine ou interrompt une action ou une srie dactions.
La macro ou la procdure dvnement affecte lvnement Click du contrle Bouton de
commande dtermine laction de celui-ci. Par exemple, vous pouvez crer un contrle Bouton de
commande qui ouvre une autre feuille. Vous pouvez aussi afficher un texte, une image ou les
deux sur un contrle Bouton de commande.
La proprit par dfaut dun contrle Bouton de commande est la proprit Value.
Lvnement par dfaut dun contrle Bouton de commande est lvnement Click.
3.2.10.- Onglet ( tabStrip )
Prsente un ensemble de contrles connexes sous forme dun groupe visuel.
Vous pouvez utiliser un contrle Onglet pour visualiser diffrents ensembles dinformations. Par

IGN / ENSG / CPRI Visual Basic Application pour Excel page 17/33

exemple, les contrles peuvent reprsenter des informations relatives lemploi du temps
journalier dun groupe de personnes, chaque ensemble dinformations correspondant une
personne diffrente du groupe. Dfinissez le titre de chaque onglet pour afficher le nom dune
seule personne. Vous pouvez ensuite crire un code qui, quand vous cliquez sur longlet, met
jour les contrles pour afficher les informations concernant la personne dont le nom figure sur
longlet.
La proprit par dfaut dun contrle Onglet est la proprit SelectedItem.
Lvnement par dfaut dun contrle Onglet est lvnement Change.
3.2.11.- MultiPage (MultiPage)
Le contrle MultiPage est un conteneur dune collection dobjets Pages dans laquelle chaque
page contient un ou plusieurs objets Page.
Un contrle MultiPage est utile lorsque vous travaillez avec un gros volume dinformations qui
peuvent tre tries en plusieurs catgories. Vous pouvez notamment utiliser un contrle
MultiPage pour afficher les informations contenues dans une candidature et, par exemple,
rserver une page aux renseignements personnels tels que le nom et ladresse, une autre la liste
des prcdents employeurs et une troisime la liste des rfrences. Le contrle MultiPage vous
permet de combiner visuellement des informations connexes tout en conservant un
enregistrement complet facilement accessible.
Les nouvelles pages sont ajoutes droite de la page slectionne.
La proprit par dfaut dun contrle MultiPage est la proprit Value qui renvoie lindex de la
Page couramment active dans la collection de Pages du contrle MultiPage.
Lvnement par dfaut dun contrle MultiPage est lvnement Change.
3.2.12.- Barre de dfilement (ScrollBar )
Retourne ou dfinit la valeur dun autre contrle en fonction de la position du curseur de
dfilement.
Le contrle Barre de dfilement est un contrle autonome que vous pouvez placer sur une
feuille. Son aspect visuel est identique celui de la barre de dfilement prsente dans certains
objets tels quun contrle Zone de liste ou dans la partie droulante dun contrle Zone de liste
modifiable. Toutefois, linverse des barres de dfilement cites dans ces exemples, le contrle
Barre de dfilement autonome ne fait pas partie intgrante dun autre contrle.
Pour utiliser le contrle Barre de dfilement afin de dfinir ou de lire la valeur dun autre
contrle, vous devez crire un code pour les vnements et les mthodes du contrle Barre de
dfilement. Par exemple, pour utiliser le contrle Barre de dfilement en vue de mettre jour la
valeur dun contrle Zone de texte, vous pouvez crire un code lisant la proprit Value du
contrle Barre de dfilement, puis dfinir la proprit Value du contrle Zone de texte.
La proprit par dfaut dun contrle Barre de dfilement est la proprit Value.
Lvnement par dfaut dun contrle Barre de dfilement est lvnement Change.
Pour crer un contrle Barre de dfilement vertical ou horizontal, faites glisser les poignes de
redimensionnement du contrle Barre de dfilement horizontalement ou verticalement sur la
feuille.
3.2.13.- Toupie (SpinButton )
Incrmente et dcrmente des nombres.
Cliquer sur un contrle Toupie ne modifie que la valeur de celui-ci. Vous pouvez crire un code
qui utilise le contrle Toupie pour mettre jour la valeur affiche dun autre contrle. Par
exemple, vous pouvez utiliser un contrle Toupie pour changer le mois, le jour ou lanne dans
une date. Vous pouvez aussi utiliser un contrle Toupie pour faire dfiler une srie de valeurs ou
une liste dlments, ou bien pour modifier la valeur affiche dans une zone de texte.

IGN / ENSG / CPRI Visual Basic Application pour Excel page 18/33


Pour afficher une valeur mise jour laide dun contrle Toupie, vous devez affecter la valeur
du contrle Toupie la partie affiche dun contrle telle que la proprit Caption dun contrle
Label ou la proprit Text dun contrle Zone de texte. Pour crer un contrle Toupie horizontal
ou vertical, faites glisser les poignes de redimensionnement du contrle Toupie horizontalement
ou verticalement sur la feuille.
La proprit par dfaut dun contrle Toupie est la proprit Value.
Lvnement par dfaut dun contrle Toupie est lvnement Change.
3.2.14.- Zone dImage ( Image )
Le contrle Image vous permet dafficher une image comme partie des donnes contenues dans
une feuille. Par exemple, vous pouvez utiliser un contrle Image pour afficher la photographie
des employs dans une feuille du personnel.
Le contrle Image vous permet de couper, de redimensionner ou deffectuer un zoom avant ou
arrire sur limage, mais ne vous permet pas den modifier le contenu. Par exemple, vous ne
pouvez utiliser le contrle Image pour modifier les couleurs dune image, pour la rendre
transparente ou pour affiner la vue de limage. Pour effectuer ces oprations, il vous faut un
logiciel de traitement dimage.
Le contrle Image supporte les formats de fichiers suivants : *.bmp, *.cur, *.gif, *.ico,
*.jpg, *.wmf
3.3.- Les contrles supplmentaires
Pour afficher ou supprimer des contrles de la bote outils :
1. Cliquez avec le bouton droit dans la bote outils.
2. Slectionnez la commande Contrles supplmentaires .


1
2


3.4.- Modification dun contrle
3.4.1.- Modification du nom
1. slectionnez le contrle ;
2. dans la partie gauche de la fentre, face Name ,modifiez le nom.



IGN / ENSG / CPRI Visual Basic Application pour Excel page 19/33

1
2


3.4.2.- Modification dune proprit
1. slectionnez le contrle ;
2. cliquez dans la partie gauche de la fentre, face la proprit modifiez, slectionnez la
nouvelle valeur dans le menu droulant.

1
2


Remarque : Pour connatre la
signification dune proprit, cliquez sur le
libell de la proprit et appuyez sur la
touche F1.


3.5.- La superposition des contrles
On utilise la notion de hirarchie pour superposer les contrles.
Pour avancer ou pour reculer un contrle dans la hirarchie:
slectionnez le contrle repositionner ;
dans le menu Format, slectionnez Ordre ;
dans le menu en cascade, slectionnez Amener au premier plan ou Envoyer larrire-
plan .
Pour dplacer un contrle dune position dans la hirarchie :
slectionnez le contrle repositionner.
dans le menu Format, slectionnez Ordre .
dans le menu en cascade, slectionnez Amener vers lavant ou Envoyer vers larrire .

IGN / ENSG / CPRI Visual Basic Application pour Excel page 20/33

4.- Les menus
4.1.- Le menu barre
Pour crer une nouvelle barre de menu dans votre application, il faut utiliser loutil
personnalis dExcel.


Une fois le menu cr (Cf. documentation sur Excel), il est possible dans votre code Visual
Basic de le rendre visible ou non en utilisant la fonction CommandBars . Cette fonction
peut galement tre utilise pour les menus prdfinis du logiciel Excel ( standard , mise en
forme ). Ci-dessous un exemple de code lanc au dmarrage dune application (dans la
mthode auto_open Cf. chapitre 7.1). Ce code permet de rendre invisible les menus
standard et mise en forme et de rendre visible un menu cr par le programmeur appel
Saisie .

Sub auto_open ()
Application.CommandBars("Standard").Visible = False
Application.CommandBars("Formatting").Visible = False
Application.CommandBars("Saisie").Visible = True
End Sub

4.2.- Le menu contextuel
Cest le menu qui sactive lorsque vous cliquez sur le bouton droit de la souris. Il est possible de
supprimer certaines lignes de ce menus et den crer de nouvelles. En slectionnant une ligne de
ce menu vous pouvez dclencher un module (et donc un traitement). Ci-dessous le code
permettant dactiver le menu contextuel sur le fond dune feuille Excel en cliquant sur le bouton
droit de la souris. Dans ce cas, les lignes 4 et 5 du menu existant sont remplaces par deux lignes
permettant dactiver les modules Moyenne par lve et Moyenne par Matire . Lobjet
menu contextuel est un objet de la classe CommandBars .


IGN / ENSG / CPRI Visual Basic Application pour Excel page 21/33


Private cbBar As CommandBar CommandBar sans s !
Sub Active_Menu_contextuel()
Set cbBar = CommandBars("Cell") 'Cell est le menu contextuel des cellules
cbBar.Controls(4).Delete 'Dtruit le 4eme choix (en partant d'en
'haut) du menu contextuel existant
cbBar.Controls(5).Delete
cbBar.Controls(4).FaceId = 0 'Efface le bouton du menu
cbBar.Controls(4).Caption = "Moyenne par lve" 'libell dans le menu
cbBar.Controls(4).OnAction = "MoyParEleve" 'Active la macro MoyParEleve
cbBar.Controls(5).FaceId = 0 'Efface le bouton du menu
cbBar.Controls(5).Caption = "Moyenne par matire" 'libell dans le menu
cbBar.Controls(5).OnAction = "MoyParMat" 'Active la macro MoyParMat
End Sub



Attention, il est indispensable de dsactiver le menu contextuel pour quil ne soit plus visible
l cran.

Sub Desactive_Menu_contextuel()
CommandBars("cell").Reset
End Sub

Si vous voulez ajouter plus de lignes quil y en avait dans le menu dorigine (9 dans lexemple
ci-dessous), il faut crire le code suivant avant dajouter de nouvelles lignes dans le menu.

Private cbctl As CommandBarControl a ajouter aux declarations
lIndex = 9 on ajoute une 9eme ligne
Set cbctl = cbBar.Controls.Add(Type:=msoControlButton, Before:=lIndex)



Insertion de Moyenne par lve en ligne
4 et de Moyenne par Matire en ligne 5.

IGN / ENSG / CPRI Visual Basic Application pour Excel page 22/33

5.- Rponses aux vnements
Votre application doit pouvoir ragir aux divers vnements, par exemple excuter une
procdure lorsquune feuille est active, ou lorsque la valeur dune cellule est modifie.
Dans la fentre de code, pour chaque objet, ou chaque contrle vous avez une liste de procdures
vnementielles dans lesquelles vous pouvez ajouter du code qui sexcutera lors de la dtection
de lvnement correspondant.
Exemple 1 :
Supposons que vous dsirez excuter une tche lorsque la fentre dun classeur est
redimensionne :
1. dans la fentre du projet, vous slectionnez lobjet Classeur ;
2. dans la fentre de code du classeur, vous slectionnez Workbook ;
3. dans la liste des procdures vnementielles vous slectionnez WindowResize ;
4. il ne vous reste plus qu crire le code lintrieur de la procdure cre par Visual Basic.
1
2
2
3
4

Exemple 2 :
Supposons que vous dsirez excuter une tche lorsque lon cliquera sur un contrle.
1. Dans la fentre du projet, slectionnez la feuille ou la bote de dialogue contenant le
contrle ;
2. Cliquez sur licne pour afficher la fentre de code ;
3. Slectionnez le contrle ;
4. Slectionnez lvnement ;
5. Il ne vous reste plus qu crire le code lintrieur de la procdure cre par Visual Basic.
1
2
3
4
5


IGN / ENSG / CPRI Visual Basic Application pour Excel page 23/33

6.- Laide en ligne sur les procdures vnementielles
Pour revenir aux exemples de la page prcdente, supposons que nous voulions avoir de laide
sur la procdure vnementielle WindowResize .
1. affichez lexplorateur dobjets ;
2. slectionnez la bibliothque Excel ;
3. slectionnez Workbook ;
2
3
4

4. slectionnez WindowResize ;
5. appuyer sur la touche F1 pour obtenir laide ci-dessous.
WindowResize, vnement
Voir aussi Exemple S'applique
Cet vnement survient ds que la fentre d'un classeur est redimensionne.
Syntaxe
Private Sub object_WindowResize (ByVal Wb As Excel.Workbook, ByVal Wn As Excel.Window)
object Application ou Workbook. Pour plus d'informations sur l'utilisation d'vnements avec l'objet
Application, consultez Utilisation d'vnements avec l'objet Application.
Wb Utilis uniquement avec l'objet Application. Classeur affich dans la fentre redimensionne.
Wn Fentre redimensionne.
On ferais de mme pour lexemple 2 de la page prcdente :
1. affichez lexplorateur dobjet ;
2. slectionnez la bibliothque MSForms ;
3. slectionnez CommandButton .
2
3
4

4. slectionnez Click ;
5. appuyer sur la touche F1 pour obtenir laide en ligne.

IGN / ENSG / CPRI Visual Basic Application pour Excel page 24/33

7.- Actions possibles sur un document Excel
7.1.- Ouverture et fermeture dun document Excel
Si vous voulez effectuer un traitement au moment de louverture dun document Excel, vous
devez crire votre code dans un module particulier ayant pour nom : auto_open(). Il est
intressant deffectuer la phase dinitialisation dans ce module.

Sub auto_open ()
Call Initialisation appel dun module Initialisation
End Sub

De mme, si vous voulez effectuer un traitement au moment de la fermeture dun document
Excel, vous devez crire votre code dans un module particulier ayant pour nom : auto_close().

Sub auto_close ()
...
End Sub

7.2.- Actions sur lobjet feuille Excel
Masquer une feuille de calcul
If Sheets("NomOnglet").Visible Then Sheets("NonOnglet").Visible = False
Dmasquer une feuille de calcul
If Not Sheets("NomOnglet").Visible Then Sheets("NonOnglet").Visible = True
Oter la protection dune feuille de calcul
Sheets("NomOnglet").Select
ActiveSheet.Unprotect
Protger une feuille de calcul
Sheets("NomOnglet").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Lancer l'impression dune feuille
Sheets("NomOnglet").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True


IGN / ENSG / CPRI Visual Basic Application pour Excel page 25/33

7.3.- Actions sur lobjet cellule Excel
Affecter la valeur dune cellule une variable.
MaVariable = Sheets("NomOnglet").Cells (N de ligne, N de colonne).Value
Affecter la valeur dune variable une cellule.
Sheets("NomOnglet").Cells(N de ligne, N de colonne).Value = MaVariable
Obtenir ladresse de la cellule active
'Renvoi sous la forme R3C4
Dim RefCel As String
RfCel = ActiveCell.Address(ReferenceStyle:=xlR1C1)
'Pour obtenir la ligne et la colonne
Dim Ligne As Integer, Colonne As Integer
Ligne = CInt(Mid$(RefCel, 2, InStr(RefCel, "C") - 2))
Colonne = CInt(Mid$(RefCel, InStr(RefCel, "C") + 1))
Obtenir ladresse de la plage de cellules slectionnes
ReferenceCelluleActive = Selection.Address(ReferenceStyle:=xlR1C1)
'Renvoi R3C4:R10C5
Slectionner une cellule
Sheets("NomOnglet").Cells(2,2).Select
Activer une cellule
Sheets("NomOnglet").Cells(2,2).Activate
Dplacer la cellule active dune colonne
ActiveCell.Offset(0,1).Activate
Dplacer la cellule active dune ligne
ActiveCell.Offset(1,0).Activate
Slectionner une plage de cellules
With Sheets("NomOnglet ")
Range(.Cells(1,1), .Cells(5,5)).Select
End With
Slectionner plusieurs plages de cellules
Sub SlectionMultiple()
Dim r1, r2, plusieursPlages As Range
Set r1 = Sheets("NomOnglet ").Range(Cells(1,1), Cells(5,2))
Set r2 = Sheets("NomOnglet ").Range(Cells(1,6), Cells(5,8))
Set plusieursPlages = Union(r1,r2)
plusieursPlages.Select
End Sub
Affecter une formule une cellule
Cells(7, 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[-6]C:R[-1]C)"


IGN / ENSG / CPRI Visual Basic Application pour Excel page 26/33

7.4.- Autres actions sur des objets Excel
Supprimer la mise jour de lcran
Application.ScreenUpdating = False
Autoriser la mise jour de lcran
Application.ScreenUpdating = True
Demander une information lutilisateur
MaVariable = InputBox("Entrez le n de la commande supprimer", "")
Envoyer un message lutilisateur
Dim message as string , rep as integer
Chr(13) Pour aller la ligne
message = "ATTENTION : Vous avez oubli d'indiquer le code comptable" +
Chr$(13) + Chr$(13) + "Opration annule!.."
rep = MsgBox(message, 48, "")
Supprimer une ligne
Rows(N de la ligne).Select
Selection.Delete Shift:=xlUp
Insrer une ligne
Rows("N de la ligne ").Select
Selection.Insert Shift:=xlDown
Charger en mmoire une boite de dialogue UserForm
Load UserForm1 Charge un objet sans lafficher
Dcharger une boite de dialogue UserForm
Unload UserForm1
Affichage dune bote de dialogue UserForm
UserForm1.Show Si lobjet spcifi nest pas charg lors de lappel de
la mthode Show, Visual Basic le charge automatiquement.

Remarque :
Un objet UserForm est toujours modal, il en rsulte que lutilisateur doit toujours rpondre avant
dutiliser une autre partie de lapplication. Aucun autre code ne sexcutera tant que lobjet
UserForm ne sera pas masqu ou dcharg. Bien que les autres feuilles de lapplication soient
dsactives pendant laffichage dun objet UserForm, les autres applications ne le sont pas.
Masquer dune bote de dialogue UserForm
UserForm1.Hide Masque un objet sans le dcharger.
Rcuprer linformation contenue dans une zone de texte
MonTexte = NomUserForm.NomZoneDeTexte.Text

IGN / ENSG / CPRI Visual Basic Application pour Excel page 27/33

Test dune case cocher
If NomUserForm.NomCasecocher Then
La case est coche
Else
La case nest pas coche
End If
Test dune case doption
If NomUserForm.NomCaseOptionThen
Loption est coche
Else
Loption nest pas coche
End If
Rcuprer linformation slectionne dans une zone de liste
NomSlection = NomUserForm.NomListe.value
7.5.- Quelques exemples dactions plus complexes
Ajout et suppression dans une listBox
Lexemple suivant ajoute et supprime le contenu dun contrle ListBox . un contrle ListBox
nomm ListBox1, et 2 contrles CommandButton nomms CommandButton1 et
CommandButton2.

Dim EntryCount As Single
Private Sub CommandButton1_Click()
EntryCount = EntryCount + 1
UserForm1.ListBox1.AddItem (EntryCount & " - Slection")
End Sub
Private Sub CommandButton2_Click()
With UserForm1
ListBox1.SetFocus
'Vrifiez que le contrle ListBox contient des lments de liste
If ListBox1.ListCount >= 1 Then 'Si aucune slection, choisissez le
'dernier lment de la liste.
If ListBox1.ListIndex = -1 Then
ListBox1.ListIndex = ListBox1.ListCount-1
End If
ListBox1.RemoveItem (ListBox1.ListIndex)
End If
End With
End Sub
Private Sub UserForm_Initialize()
EntryCount = 0
CommandButton1.Caption = "Ajoutez llment"
CommandButton2.Caption = "Supprimez llment"
End Sub
Transfert de donnes vers le Presse-papiers
Lexemple suivant illustre les mouvements de donnes dun contrle TextBox vers le Presse-
papiers, du Presse-papiers vers un objet DataObject et dun objet DataObject vers un autre
contrle TextBox. La mthode GetFromClipboard transfre les donnes du Presse-papiers vers
un objet DataObject. Les mthodes Copy et GetText sont aussi utilises. Deux contrles
TextBox (TextBox1, TextBox2) et un contrle CommandButton (CommandButton1) sont crs.


IGN / ENSG / CPRI Visual Basic Application pour Excel page 28/33

Dim MyData As DataObject
Private Sub CommandButton1_Click() 'Slectionnez un texte avant de le
'copier dans le Presse-papiers
TextBox1.SelStart = 0
TextBox1.SelLength = TextBox1.TextLength
TextBox1.Copy
MyData.GetFromClipboard
TextBox2.Text = MyData.GetText(1)
End Sub
Private Sub UserForm_Initialize()
Set MyData = New DataObject
TextBox1.Text = "Placez ces donnes dans " & _
"le Presse-papiers, dans un objet " & _
"DataObject, puis dans le contrle " & "TextBox2 !"
End Sub

Lexemple suivant illustre les mouvements de donnes dun contrle TextBox vers un objet
DataObject, dun objet DataObject vers le Presse-papiers et du Presse-papiers vers un autre
contrle TextBox. La mthode PutInClipboard transfre les donnes dun objet DataObject vers
le Presse-papiers. Les mthodes SetText et Paste sont aussi utilises. Deux contrles TextBox
(TextBox1 et TextBox2) et un contrle CommandButton (CommandButton1) sont crs.

Dim MyData As DataObject
Private Sub CommandButton1_Click()
Set MyData = New DataObject
MyData.SetText TextBox1.Text
MyData.PutInClipboard
TextBox2.Paste
End Sub
Private Sub UserForm_Initialize()
TextBox1.Text = "Placez ces donnes dans un " & _
"objet DataObject, dans le " & _
" Presse-papiers, puis dans " & _
"le contrle TextBox2 !"
End Sub

IGN / ENSG / CPRI Visual Basic Application pour Excel page 29/33

Annexes
A1.- Constantes, Boutons et icnes des boites de messages
Un message dans une bote de dialogue attend que l'utilisateur clique sur un bouton puis renvoie
une valeur de type Integer qui indique le bouton choisi par l'utilisateur.

MsgBox(prompt[, buttons] [, title] [, helpfile, context])

Facultatif : expression numrique qui reprsente la somme des valeurs indiquant le nombre et le
type de boutons afficher, le style d'icne utiliser, l'identit du bouton par dfaut, ainsi que la
modalit du message. Si l'argument buttons est omis, sa valeur par dfaut est 0.

L'argument buttons peut prendre les valeurs suivantes :

Constante Valeur Description
vbOKOnly 0 Affiche le bouton OK uniquement.
vbOKCancel 1 Affiche les boutons OK et Annuler.
vbAbortRetryIg
nore
2 Affiche le bouton Abandonner, Ressayer et Ignorer.
vbYesNoCancel 3 Affiche les boutons Oui, Non et Annuler.
vbYesNo 4 Affiche les boutons Oui et Non.
vbRetryCancel 5 Affiche les boutons Ressayer et Annuler.

vbCritical

16
Affiche l'icne Message critique.


vbQuestion

32
Affiche l'icne Requte d'avertissement.


vbExclamation

48
Affiche l'icne Message d'avertissement.


vbInformation

64 Affiche l'icne Message d'information.

vbDefaultButton
1
0 Le premier bouton est le bouton par dfaut.
vbDefaultButton
2
256 Le deuxime bouton est le bouton par dfaut.
vbDefaultButton
3
512 Le troisime bouton est le bouton par dfaut.
vbDefaultButton
4
768 Le quatrime bouton est le bouton par dfaut.
vbApplicationM
odal
0 Bote de dialogue modale. L'utilisateur doit rpondre au message
affich dans la zone de message avant de pouvoir continuer de
travailler dans l'application en cours.
vbSystemModal 4096 Modal systme. Toutes les applications sont interrompues jusqu'
ce que l'utilisateur rponde au message affich dans la zone de
message.

Le premier groupe de valeurs (0 5) dcrit le nombre et le type de boutons affichs dans la bote
de dialogue. Le deuxime groupe (16, 32, 48 et 64) dcrit le style d'icne. Le troisime groupe

IGN / ENSG / CPRI Visual Basic Application pour Excel page 30/33

(0, 256 et 512) dfinit le bouton par dfaut.
Enfin, le quatrime groupe (0 et 4 096) dtermine la modalit de la zone de message. Au moment
d'additionner ces nombres pour obtenir la valeur finale de l'argument buttons, ne slectionnez
qu'un seul nombre dans chaque groupe.

Note Ces constantes sont indiques par Visual Basic pour Applications. Vous pouvez par
consquent les utiliser n'importe o dans votre code la place des valeurs relles
correspondantes.

Valeurs renvoyes

Constante Valeur Bouton
vbOK 1 OK
vbCancel 2 Annuler
vbAbort 3 Abandonner
vbRetry 4 Ressayer
vbIgnore 5 Ignorer
vbYes 6 Oui
vbNo 7 Non

IGN / ENSG / CPRI Visual Basic Application pour Excel page 31/33

A2.- Constantes de code de touches
Les constantes suivantes peuvent remplacer les valeurs relles partout dans votre code :

Constante Valeur Description
vbKeyLButton 0x1 Bouton gauche de la souris
vbKeyRButton 0x2 Bouton droit de la souris
vbKeyCancel 0x3 Touche ANNULER
vbKeyMButton 0x4 Bouton secondaire de la
souris
vbKeyBack 0x8 Touche RET.ARR
vbKeyTab 0x9 Touche TAB
vbKeyClear 0xC Touche EFFACER
vbKeyReturn 0xD Touche ENTRE
vbKeyShift 0x10 Touche MAJ
vbKeyControl 0x11 Touche CTRL
vbKeyMenu 0x12 Touche MENU
vbKeyPause 0x13 Touche PAUSE
vbKeyCapital 0x14 Touche VERR.MAJ
vbKeyEscape 0x1B Touche CHAP
vbKeySpace 0x20 Touche ESPACE
vbKeyPageUp 0x21 Touche PG.PRC
vbKeyPageDown 0x22 Touche PG.SUIV
vbKeyEnd 0x23 Touche FIN
vbKeyHome 0x24 Touche ORIGINE
vbKeyLeft 0x25 Touche FLCHE GAUCHE
vbKeyUp 0x26 Touche FLCHE HAUT
vbKeyRight 0x27 Touche FLCHE DROITE
vbKeyDown 0x28 Touche FLCHE BAS
vbKeySelect 0x29 Touche SLECTION
vbKeyPrint 0x2A Touche IMPR.CRAN
vbKeyExecute 0x2B Touche EXCUTER
vbKeySnapshot 0x2C Touche SNAPSHOT
vbKeyInsert 0x2D Touche INSER
vbKeyDelete 0x2E Touche SUPPR
vbKeyHelp 0x2F Touche AIDE
vbKeyNumlock 0x90 Touche VERR.NUM


Les touches A Z sont les mmes que leurs quivalents ASCII :

Constante Valeur ascii Description
vbKeyA 65 Touche A
vbKeyB 66 Touche B
vbKeyC 67 Touche C
vbKeyD 68 Touche D
vbKeyE 69 Touche E
vbKeyF 70 Touche F
vbKeyG 71 Touche G
vbKeyH 72 Touche H
vbKeyI 73 Touche I

IGN / ENSG / CPRI Visual Basic Application pour Excel page 32/33

vbKeyJ 74 Touche J
vbKeyK 75 Touche K
vbKeyL 76 Touche L
vbKeyM 77 Touche M
vbKeyN 78 Touche N
vbKeyO 79 Touche O
vbKeyP 80 Touche P
vbKeyQ 81 Touche Q
vbKeyR 82 Touche R
vbKeyS 83 Touche S
vbKeyT 84 Touche T
vbKeyU 85 Touche U
vbKeyV 86 Touche V
vbKeyW 87 Touche W
vbKeyX 88 Touche X
vbKeyY 89 Touche Y
vbKeyZ 90 Touche Z

Les touches 0 9 sont les mmes que leurs quivalents ASCII :

Constante Valeur Description
vbKey0 48 Touche 0
vbKey1 49 Touche 1
vbKey2 50 Touche 2
vbKey3 51 Touche 3
vbKey4 52 Touche 4
vbKey5 53 Touche 5
vbKey6 54 Touche 6
vbKey7 55 Touche 7
vbKey8 56 Touche 8
vbKey9 57 Touche 9


Les constantes suivantes reprsentent les touches du pav numrique :

Constante Valeur Description
vbKeyNumpad0 0x60 Touche 0
vbKeyNumpad1 0x61 Touche 1
vbKeyNumpad2 0x62 Touche 2
vbKeyNumpad3 0x63 Touche 3
vbKeyNumpad4 0x64 Touche 4
vbKeyNumpad5 0x65 Touche 5
vbKeyNumpad6 0x66 Touche 6
vbKeyNumpad7 0x67 Touche 7
vbKeyNumpad8 0x68 Touche 8
vbKeyNumpad9 0x69 Touche 9
vbKeyMultiply 0x6A Touche MULTIPLICATION
(*)
vbKeyAdd 0x6B Touche PLUS (+)
vbKeySeparator 0x6C Touche ENTRE
vbKeySubtract 0x6D Touche MOINS ()
vbKeyDecimal 0x6E Touche POINT DCIMAL (.)

IGN / ENSG / CPRI Visual Basic Application pour Excel page 33/33

vbKeyDivide 0x6F Touche DIVISION (/)

Les constantes suivantes reprsentent les touches de fonction :

Constante Valeur Description
vbKeyF1 0x70 Touche F1
vbKeyF2 0x71 Touche F2
vbKeyF3 0x72 Touche F3
vbKeyF4 0x73 Touche F4
vbKeyF5 0x74 Touche F5
vbKeyF6 0x75 Touche F6
vbKeyF7 0x76 Touche F7
vbKeyF8 0x77 Touche F8
vbKeyF9 0x78 Touche F9
vbKeyF10 0x79 Touche F10
vbKeyF11 0x7A Touche F11
vbKeyF12 0x7B Touche F12
vbKeyF13 0x7C Touche F13
vbKeyF14 0x7D Touche F14
vbKeyF15 0x7E Touche F15
vbKeyF16 0x7F Touche F16