Professional Documents
Culture Documents
EXCEL 2000
Juliette Dibie-Barthlemy
novembre 2005
U.E.R. dInformatique
PLAN
I.
II.
Lenregistreur de macro________________________________________________ 2
II.1.
II.2.
II.3.
Exercice________________________________________________________________ 4
III.
III.1.
III.2.
III.3.
III.4.
III.5.
Exercice_______________________________________________________________ 10
IV.
IV.1.
IV.2.
IV.3.
V.
V.2.
Les collections__________________________________________________________ 16
V.3.
V.4.
Exercice_______________________________________________________________ 17
V.5.
V.6.
Exercice_______________________________________________________________ 18
V.7.
V.8.
Exercice_______________________________________________________________ 19
V.9.
Les vnements_________________________________________________________ 20
V.10.
Exercice ____________________________________________________________ 22
V.11.
V.12.
VI.
VI.1.
VI.2.
Exercice_______________________________________________________________ 28
VI.3.
VI.4.
Exercice_______________________________________________________________ 30
VII.
VII.1.
31
32
34
34
35
35
VII.2.
VII.3.
VII.4.
VII.5.
Exercice ____________________________________________________________ 41
VII.6.
VII.7.
La boucle Do...Loop_________________________________________________________________
Exercice ___________________________________________________________________________
La boucle For...Next_________________________________________________________________
La boucle For Each...Next____________________________________________________________
Linstruction Exit____________________________________________________________________
Exercice ___________________________________________________________________________
VII.8.
44
44
45
46
46
46
Exercice ___________________________________________________________________________ 47
VII.9.
Le dbogage _________________________________________________________ 48
VIII.
VIII.1.
VIII.2.
VIII.3.
VIII.4.
IX.
58
58
59
61
Afficher un objet UserForm partir dun bouton dune feuille de calcul _______ 63
Bibliographie _______________________________________________________ 64
I.
Page 1
Page 2
Page 3
II.3. EXERCICE
Crer une macro MACROMOIS qui crit les noms de mois Janvier, Fvrier et
Mars en colonne partir de la cellule active. Utiliser lenregistreur de macro
avec rfrence relative aux cellules.
Page 4
III. LENVIRONNEMENT
EDITOR
VISUAL
BASIC
fentre proprits
module de code
Page 5
Page 6
Page 7
Page 8
1) Pour que la date du jour soit crite dans la cellule G2 (et non dans la cellule
G1) en caractres gras et italiques (et non plus seulement en italique), il faut :
(a) modifier l'instruction Range("G1").Select en remplaant G1 par G2 ; (b)
ajouter la fin de la procdure l'instruction Selection.Font.Bold=True.
2) Activer la commande FICHIER ENREGISTRER TEST-MACRO.XLS.
3) Retourner dans EXCEL, effacer le contenu des cellules A1 et G1, puis
excuter la macro MACRO1 laide de la commande OUTILS MACRO MACROS.
Page 9
III.5. EXERCICE
La macro MACROMOIS doit avoir peu prs le code suivant :
Sub MacroMois()
ActiveCell.FormulaR1C1 = "Janvier"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "Fvrier"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "Mars"
End Sub
L'instruction ActiveCell.Offset(1,0).Range("A1").Select slectionne (Select)
une cellule (Range) qui est sur une ligne en dessous et sur la mme colonne
(Offset(dplacement_ligne, dplacement_colonne)) que la cellule active
(ActiveCell).
L'instruction ActiveCell.Offset(1,0).Range("A1").Select peut tre remplace
par linstruction ActiveCell.Offset(1,0).Select.
Modifier la macro pour que le nom de mois Avril soit crit, en caractres gras et
italiques, dans la cellule qui se trouve dans la colonne de droite et sur la mme
ligne que la cellule o est crit Janvier.
Janvier
Fvrier
Mars
Avril
Page 10
Page 11
Slectionner
BOUTON
PERSONNALISE
dans la liste
COMMANDES et le faire glisser
vers la barre d'outils.
4)
Le
bouton MODIFIER LA
SELECTION devient alors actif.
Cliquer dessus et activer la
UNE
commande
AFFECTER
MACRO
5) Slectionner la macro MACRO1 et cliquer sur le bouton OK.
Page 12
Page 13
Page 14
Slectionner NOUVEAU
MENU dans la liste COMMANDES
et le faire glisser vers la barre
de menu entre les menus
FENETRE et ? dEXCEL.
Page 15
Page 16
V.4. EXERCICE
Ecrire linstruction qui permet de faire rfrence la cellule B2 dans la
deuxime feuille de calcul de nom FEUIL2 du classeur TEST-MACRO.XLS.
Page 17
V.6. EXERCICE
Ecrire linstruction qui permet daffecter la valeur de la cellule B2 de la
deuxime feuille de calcul du classeur TEST-MACRO.XLS la cellule active.
Page 18
V.8. EXERCICE
Expliquer ce que fait la macro suivante ?
Sub MacroSelection()
Range("A1:B6").Select
Selection.Font.Bold = True
Selection.Value = "Bonjour"
End Sub
Complter cette macro pour que Bonsoir soit crit dans la cellule B6.
Page 19
Ecrire une procdure qui dtecte chaque nouvelle plage de cellules ou cellule
slectionne par lutilisateur dans la feuille de calcul FEUIL1 du classeur TESTMACRO.XLS et colorie son fond en bleu.
Avant dcrire cette procdure, il faut se poser plusieurs questions :
identifier lobjet dont on veut traiter lvnement. Dans notre cas, il sagit de
la feuille de calcul FEUIL1 qui est un objet Worksheet ;
identifier lvnement traiter dans la liste des vnements associs lobjet
considr. Dans notre cas, on sintresse chaque nouvelle slection dune
plage de cellules ou cellule dans la feuille de calcul, ce qui correspond
lvnement SelectionChange ;
crire le code VBA appropri dans la procdure associe lvnement
choisi.
Page 20
Page 21
V.10. EXERCICE
Ecrire une procdure qui affiche Bonjour ! dans la cellule active avec la police
suivante : taille 12, style italique, couleur rouge, chaque fois que lutilisateur
active la feuille de calcul FEUIL2.
Avant dcrire cette procdure, il faut se poser plusieurs questions :
identifier lobjet dont on veut traiter lvnement ;
identifier lvnement traiter dans la liste des vnements associs lobjet
considr ;
crire le code VBA appropri dans la procdure associe lvnement
choisi.
Page 22
Page 23
Page 24
V.12. COMMENT
OBTENIR
QUELQUES ASTUCES
DE
LAIDE :
Page 25
VI. LES
FONCTIONS
LUTILISATEUR
DEFINIES
PAR
VBA offre la possibilit de crer ses propres fonctions, qui peuvent tre utilises
dans EXCEL comme nimporte quelle fonction intgre.
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 dune liste
darguments entre parenthses, 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
Une fonction indique la valeur retourner en initialisant son nom avec la valeur
de retour.
Remarque : Les crochets [ ] signifient que les arguments sont facultatifs.
Attention : Dans VBA, les arguments dune fonction sont spars par des
virgules, alors que dans EXCEL ils sont spars par des points-virgules.
Page 26
Page 27
VI.2. EXERCICE
Ecrire une fonction qui permet de calculer la surface dun rectangle
(hauteur*largeur) et la tester dans EXCEL.
Page 28
Page 29
VI.4. EXERCICE
Ecrire une fonction permettant de calculer lcart entre la valeur maximale et la
valeur minimale dune plage de cellules passe en argument laide des
fonctions intgres dEXCEL Max et Min et la tester dans EXCEL.
Page 30
Page 31
Option Explicit
Sub MacroTestVariable()
Dim valeur
valeur = Range("A1").value
If valleur >= 18 And valleur <= 20 Then Range("B1").value = "OK"
End Sub
VBA dtecte une erreur la compilation : la variable valleur nest pas dfinie.
Pour ajouter automatiquement linstruction Option Explicit tous les nouveaux
modules de code crs, activer la commande OUTILS OPTIONS..., cliquer sur
longlet EDITEUR et cocher la case DECLARATION DES VARIABLES OBLIGATOIRE.
Page 32
Exemple :
Dim Nom As String
Nom = "Jean " & "Dupond"
Remarque sur linitialisation des variables : Selon leur type, les variables ne sont
pas initialises avec la mme valeur :
les variables de type Byte, Integer ou Long sont initialises 0 ;
les variables de type Single, Double ou Currency sont initialises 0 ;
les variables de type Boolean sont initialises False ;
les variables de type String sont initialises "" (la chane vide) ;
les variables de type Date sont initialises 00:00:00 ;
les variables de type Variant sont initialises "" (la chane vide) (il en est
de mme pour les variables dclares implicitement).
Page 33
Page 34
Exercice
En saidant ventuellement de laide en ligne de lditeur de Visual Basic,
expliquer ce que fait cette procdure.
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim NbFeuilles As Integer
Dim n As Integer
Dim nom As String
Dim chaine As String
NbFeuilles = ThisWorkbook.Sheets.Count
n = Sh.Index
nom = Sh.Name
chaine = "Feuille " & n & "/" & NbFeuilles & " : " & nom
Range("A1").Value = chaine
End Sub
Page 35
VII.2. EXECUTER
ARGUMENT
UNE
PROCEDURE
SANS
Page 36
La fonction MsgBox
La fonction MsgBox affiche un message dans une bote de dialogue, attend que
l'utilisateur clique sur un bouton, puis renvoie un entier indiquant le bouton
choisi par l'utilisateur. Elle a la syntaxe suivante (les arguments entre crochets
sont facultatifs) :
MsgBox(prompt[,buttons][,title][,helpfile, context])
o prompt est le message affich dans la bote de dialogue, buttons correspond
au type de boutons de la bote de dialogue et title est le titre de la bote de
dialogue (cf. aide en ligne de lditeur de Visual Basic laide de la touche F1.).
1) Ouvrir le classeur TEST-MACRO.XLS, puis lditeur de Visual Basic.
2) Insrer un nouveau module de code laide de la commande INSERTION
MODULE et saisir la macro suivante :
Sub MacroTestMessage()
Call MsgBox("Bonjour ! ", , "Accueil")
End Sub
3) Excuter la macro laide de la commande EXECUTION
EXECUTER SUB/USERFORM ou cliquer sur licne
Page 37
Dans lexemple prcdent, une question est pose lutilisateur, mais sa rponse
nest pas rcupre : on ne sait pas sil a pass une bonne journe. Il se pose
alors le problme de rcuprer la valeur de retour de la fonction MsgBox. Pour
ce faire, il ne faut pas utiliser linstruction Call pour appeler MsgBox.
reponse = MsgBox(prompt:="Avez-vous pass une bonne journe?")
On peut tester la valeur de retour de la fonction MsgBox (cf. aide en ligne de
lditeur de Visual Basic), comme suit :
Sub MacroTestMessage3()
Dim reponse As String
reponse = MsgBox(prompt:="Avez-vous pass une bonne journe? ",
Buttons:=vbYesNo, Title:="Accueil !")
If reponse = vbYes Then
Call MsgBox("Bonjour ! ", , "Accueil")
Else
Call MsgBox("Bonsoir ! ", , "Accueil")
End If
End Sub
Excel VBA INA-PG Juliette Dibie-Barthlemy
Page 38
La fonction InputBox
La fonction InputBox affiche une invite dans une bote de dialogue, attend que
l'utilisateur tape du texte ou clique sur un bouton, puis renvoie le contenu de la
zone de texte sous la forme d'une chane de caractre. Elle a la syntaxe suivante
(les arguments entre crochets sont facultatifs) :
InputBox(prompt[,title][,default][,xpos][,ypos] [,helpfile,context])
o prompt est le message affich dans la bote de dialogue et title est le titre de
la bote de dialogue (cf. aide en ligne de lditeur de Visual Basic).
Si lutilisateur ne saisit rien dans la zone de texte, la fonction InputBox renvoie
la chane de caractres vide "".
5) Saisir la macro suivante et lexcuter.
Sub MacroTestDialogue()
Dim reponse As String
reponse = InputBox("Quel age avez-vous ?", "Saisie age")
If reponse = "" Then
Call MsgBox("Vous n'avez pas rpondu la question !", , "Erreur")
Else
Call MsgBox("Vous avez " & reponse & " ans", , "Age")
End If
End Sub
Loprateur & permet de concatner des chanes de caractres. Par exemple, si la
rponse donne par lutilisateur est 22, alors on a :
"Vous avez " & reponse & " ans" = "Vous avez 22 ans"
Page 39
Lors de lappel dune procdure ou dune fonction, les valeurs de ses arguments
peuvent tre spcifies par position ou par nom.
Exemple :
arguments spcifis par position
Call MsgBox("Bonjour ! ", , "Accueil")
arguments spcifis par nom
Call MsgBox(prompt :="Bonjour ! ", Title :="Accueil")
Page 40
VII.5. EXERCICE
Ecrire une procdure qui calcule la surface dun cercle partir du rayon donn
par lutilisateur.
Page 41
Le bloc If
La structure de bloc If permet aux sections Then et Else de contenir plusieurs
instructions. Elle peut avoir lune des deux syntaxes suivantes :
If condition Then
If condition_1 Then
Instructions_si_vrai
Instructions_1
[Else
ElseIf condition_2 Then
Instructions_si_faux]
Instructions_2
End If
ElseIf condition_3 Then
Instructions_3
...
Else
Instructions_n
End If
Dans une structure de bloc If, il faut imprativement aller la ligne aprs le
Then.
Remarque : Les crochets [ ] signifient que le bloc Else est facultatif.
Lorsque le bloc If contient une ou plusieurs sections ElseIf, les diffrentes
conditions sont testes jusqu ce quune soit value vraie. Si aucune
condition nest vrifie, les instructions de la section Else, si elle existe, sont
excutes. Si aucune condition nest vrifie et si la section Else nexiste pas, le
bloc If ne fait rien.
Page 42
VBA offre la possibilit dutiliser les oprateurs logiques suivants : Or, Xor (ou
exclusif), And, Not.
Exemple :
Sub BonjourHeureIf()
Dim heure As Integer
Dim mes As String
heure = Left(Time, 2)
Page 43
La boucle Do...Loop
La boucle Do...Loop est utilise lorsque lon veut que la rptition des
instructions sarrte quand une condition donne est vrifie. On distingue
plusieurs syntaxes possibles.
Do While condition
Instructions
Loop
Do Until condition
Instructions
Loop
Avec ces deux boucles, les instructions peuvent ne jamais tre excutes. Pour
quelles soient excutes au moins une fois, on peut utiliser lune des deux
syntaxes suivantes :
Do
Instructions
Loop While condition
Do
Instructions
Loop Until condition
Exercice
Que fait la boucle suivante (la fonction LCase convertit tous les caractres en
minuscules) ? La Rcrire avec linstruction Do...Loop While.
Do
rep = InputBox("Voulez-vous continuer ? (O/N)")
Loop Until LCase(rep) = "n"
Page 44
La boucle For...Next
La boucle For...Next est utilise lorsque lon connait lavance le nombre de
fois o lon veut que les instructions soient rptes.
For compteur = nbdbut To nbfin [Step nbpas]
Instructions
instructions excutes un nombre dtermin de fois
Next compteur
Les instructions de la boucle For...Next sont excutes un nombre dtermin de
fois. Lorsque loption Step nest pas renseigne, le compteur est incrment de
1 chaque itration et les instructions sont excutes nbdbut - nbfin fois.
Exemple :
La procdure suivante calcule la somme des n premiers entiers :
Sub SommeEntiers()
Dim somme As Integer
Dim compteur As Integer
Dim n As Integer
n = InputBox("Donner un entier :", "Saisie entier")
For compteur = 1 To n
somme = somme + compteur
Next compteur
Call MsgBox("Somme des " & n & " premiers entiers : " & somme)
End Sub
Le compteur peut tre, chaque itration, incrment de la valeur de nbpas.
Exemple :
For compteur = 20 To 0 Step -2
Call MsgBox(compteur)
Next compteur
Page 45
Linstruction Exit
Linstruction Exit permet de quitter un bloc Do...Loop, For...Next, Function,
ou Sub. Sa syntaxe est la suivante :
Exit Do
Exit For
Exit Function
Exit Sub
Exemple :
La boucle suivante sarrte lorsque la rponse rep est n ou N :
Do
Rep = InputBox("Voulez-vous continuer ? (O/N)")
If LCase(rep) = "n" Then Exit Do
Loop
Exercice
Ecrire la fonction CompteLignes qui permet de compter le nombre de lignes de
la plage de cellules MaPlage passe en argument et la tester dans EXCEL.
Function CompteLignes(MaPlage As Range) As Integer
Vous pourrez utiliser la boucle For Each...Next. pour parcourir les lignes
(proprit Rows de lobjet Range) de la plage de cellules MaPlage.
Page 46
tableau de 10 entiers
accs au premier lment du tableau
accs au dernier lment du tableau
Les tableaux sont trs utiles pour traiter des listes dlments. La fonction Array
renvoie une variable de type Variant contenant un tableau.
Exemple :
Dim ListeJours As Variant
ListeJours = Array("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi",
"Samedi", "Dimanche")
La fonction UBound renvoie la valeur maximale des index dun tableau.
Exemple :
UBound(ListeJours) renvoie 6.
Exercice
Ecrire la fonction VerifierJours(Jour As String) qui permet de vrifier que la
chane de caractres passe en argument est bien un jour de la semaine et qui
renvoie un boolen, et la tester dans EXCEL.
Page 47
VII.9. LE DEBOGAGE
Le dbogage consiste rgler les erreurs directement lies au code dun
programme. Trois types derreur peuvent affecter un programme crit en VBA :
des erreurs de compilation qui surviennent lorsque VBA rencontre une
instruction quil ne reconnat pas ;
des erreurs dexcution ;
des erreurs logiques : le programme sexcute mais le rsultat obtenu ne
correspond pas celui attendu.
Page 48
Page 49
6) Insrer de nouveau des lignes dans la liste de donnes pour obtenir la mme
liste de donnes que celle du point (1).
7) Dans lditeur de Visual Basic, espionner la valeur des variables
Cellule.Row et Cellule laide de la commande DEBOGAGE AJOUTER UN
ESPION. La fentre ESPIONS souvre.
8) Rduire la fentre de lditeur de Visual Basic de faon voir le classeur
EXCEL au second plan.
9) Excuter pas pas la procdure SupprLignesVides laide de la commande
DEBOGAGE PAS A PAS DETAILLE (touche F8). Observer attentivement leffet de
chaque instruction de la procdure sur le classeur EXCEL et examiner les valeurs
prises par les variables Cellule.Row et Cellule.
Valeur de Cellule.Row Valeur de Cellule
Action
1
"nom"
2
"Detila"
3
"Gautier"
4
""
Suppression de la ligne 4
5
"Leforet"
6
"Michelet"
Lorsque la procdure atteint la cellule A4, la ligne 4 est supprime. Cela a pour
consquence de dcaler toutes les cellules vers le haut. La cellule A5 passe alors
en A4, la cellule A6 en A5... La boucle For Each...Next traite ensuite la cellule
suivante soit la cellule A5. Le contenu de la cellule prcdemment en A5 ne sera
donc pas trait, puisque cette cellule est passe en A4.
10) Arrter lexcution de la procdure laide de la commande EXECUTION
ARRET.
Page 50
11) Une solution possible au bogue est de drouler une boucle commenant par
la dernire cellule de la liste de donnes.
Sub SupprLignesVidesCorrige()
Dim compteur As Integer
Dim DerLigne As Integer
Dim MaPlage As Range
Set MaPlage = Range("A1:A19")
DerLigne = MaPlage.Rows.Count
For compteur = DerLigne To 1 Step -1
If IsEmpty(Range("A" & compteur)) Then Rows(compteur).Delete
Next compteur
End Sub
Pour information
Les principaux outils de dbogage proposs par lditeur de Visual Basic dans le
menu DEBOGAGE sont les suivants.
Excution pas pas : pour excuter un programme pas pas, placer le
curseur dans la procdure excuter et activer la commande DEBOGAGE PAS
A PAS DETAILLE. Lexcution dune procdure pas pas permet den
examiner le droulement instruction aprs instruction. La procdure est dite
en mode arrt. On peut tout moment retourner un mode dexcution
normal.
Les bulles daide : pour visualiser la valeur dune variable, activer la
commande OUTILS OPTIONS, cliquer sur longlet EDITEUR et cocher la case
INFO-BULLES AUTOMATIQUES. Lorsque le curseur est plac au dessus dune
variable, la valeur de celle-ci apparat dans une bulle daide.
La fentre Variables locales : pour visualiser la valeur des variables et
constantes aux diffrents stades de lexcution pas pas dun programme,
activer la commande AFFICHAGE FENETRE VARIABLES LOCALES.
Les points darrt : les points darrt permettent dinterrompre lexcution
dun programme sur une instruction prcise. Pour dfinir un point darrt sur
une instruction douteuse, activer la commande DEBOGAGE BASCULER LE
POINT DARRET.
Les espions : pour espionner la valeur dune variable, activer la commande
DEBOGAGE AJOUTER UN ESPION. Pour afficher la fentre ESPIONS, activer la
commande AFFICHAGE FENETRE ESPIONS.
La pile dappels : la pile dappels recense toutes les procdures ou fonctions
en cours dexcution, selon leur ordre dappel. Pour afficher la pile des
appels, activer la commande AFFICHAGE PILE DES APPELS.
Page 51
VIII.
Les objets UserForm sont des botes de dialogue dfinies par lutilisateur.
Ce chapitre explique comment crer une bote de dialogue permettant de saisir
les clients dune entreprise, comme le montre la capture dcran suivante :
Page 52
Page 53
Page 54
Intitul
bouton de commande
Cet objet est compos des contrles suivants : un INTITULE et une ZONE DE LISTE
MODIFIABLE pou saisir le titre du client (Madame, Mademoiselle ou Monsieur),
trois INTITULES et trois ZONES DE TEXTE pour saisir le nom, le prnom et le
tlphone du client et deux BOUTONS DE COMMANDE OK et Annuler.
Pour placer un contrle dans lobjet UserForm, cliquer sur lobjet voulu de
la BOITE A OUTILS et le faire glisser vers lobjet UserForm. Ds quun contrle a
t plac sur lobjet UserForm, dfinir son nom grce la proprit NAME.
Attention : Il est recommand dutiliser des noms vocateurs pour ses contrles,
qui permettent didentifier le type dobjet quils reprsentent et leur utilit.
4) Placer les diffrents contrles de lobjet UserForm et modifier leurs
proprits comme suit :
Contrle
proprit NAME proprit CAPTION proprit FONT
INTITULE
Titre :
police TIMES NEW
IntitulTitre
ROMAN, taille 10
ZONE DE LISTE ComboBoxTitre
"
MODIFIABLE
INTITULE
ZONE DE TEXTE
INTITULE
ZONE DE TEXTE
INTITULE
ZONE DE TEXTE
BOUTON
DE
IntitulNom
TextBoxNom
IntitulPrnom
TextBoxPrnom
IntitulTl
TextBoxTl
ButtonOK
Nom :
Prnom :
Tlphone :
"
"
"
"
"
"
OK
COMMANDE
BOUTON
DE
ButtonAnnuler
Annuler
COMMANDE
Page 55
VIII.2. AFFICHER
USERFORM
ET
FERMER
UN
OBJET
de
dialogue
Page 56
VIII.3. ASSOCIER
USERFORM
DU
CODE
UN
OBJET
Les contrles placs sur un objet UserForm et lobjet UserForm lui mme sont
rceptifs aux vnements utilisateurs qui les affectent (clic souris sur un bouton
de commande, saisie d'une valeur dans une zone de texte). On peut ainsi crer
des procdures dites procdures vnementielles, qui se dclencheront lorsque
lvnement correspondant sera repr.
La syntaxe dune procdure vnementielle attache un contrle de nom
NomContrle (proprit NAME) et dclenche par un vnement
NomEvnement est la suivante :
Private Sub NomContrle_NomEvnement()
...
End Sub
Dans le cas dune procdure vnementielle attache un objet UserForm, le
nom de lobjet UserForm (proprit NAME) napparat pas dans les instructions
de dclaration de la procdure. Il est remplac par le mot cl UserForm comme
suit :
Private Sub UserForm_Nomvnement ()
...
End Sub
Page 57
Exercice
Associer le code ncessaire au bouton Annuler pour que la bote de dialogue
soit ferme lorsque lon clique dessus.
Page 58
Page 59
Page 60
Call Sheets("Clients").Range("A1"). _
Sort(Key1:= Sheets ("Clients").Columns("B"), Header:=xlYes)
Call Unload(Me)
End Sub
Page 61
Page 62
1) Aller dans EXCEL et cliquer sur longlet CLIENTS. Positionner le curseur sur
une cellule vide de la feuille de calcul CLIENTS et activer la commande
AFFICHAGE BARRE D'OUTILS FORMULAIRES.
2) Une barre d'outils FORMULAIRES apparat. Cliquer sur l'objet
BOUTON, puis cliquer sur la feuille de calcul CLIENTS.
3) Dans la nouvelle fentre AFFECTER UNE MACRO qui apparat,
slectionner la macro ProgPrincSaisieClients et cliquer sur le
bouton OK.
4) Cliquer sur le bouton BOUTON 1 et renommer le SAISIE CLIENTS.
Page 63
IX. BIBLIOGRAPHIE
Anne Caracache. Excel 5 pour Windows, Formation Rapide, Perfectionnement.
Dunod, 1994.
Jean-Franois Sehan. Excel 5 pour Windows, Macros Visual Basic, Formation
Rapide, Perfectionnement. Dunod, 1995.
Paul McFedries. Excel pour Windows 95, Secrets dexperts. SAMS, 1995.
Mikal Bidault. Excel & VBA. CampusPress, 2002.
Rob Bovey, Stephen Bullen, John Green, Robert Rosenberg. VBA pour Excel
2002 La rfrence du programmeur. CampusPress, 2002.
Page 64