Vous êtes sur la page 1sur 11

Les fonctions VBA

Maj 2008

Liste des fonctions VBA


I. Introduction
Il existe un peu plus de 150 fonctions en Visual Basic. Mme s'il vous est impossible de
toutes les mmoriser, il est important de connatre leur existence ou tout du moins les
grandes catgories de fonctions de manire pouvoir orienter votre recherche.
En effet, il est particulirement inutile de rinventer la roue et avant de vous lancer dans
l'criture d'un programme, vous devez vous demander si Visual Basic ne possde pas
une fonction qui rpond votre besoin.
Pour prendre un exemple, si vous souhaitez extraire la racine carre d'un nombre, ne
tentez pas de rdiger une macro qui accomplisse cette tche ; la fonction Sqr fera trs
bien l'affaire. Nous allons donc vous prsenter diffrentes catgories de fonctions et
quand vous aurez un besoin particulier, il vous faudra consulter ces listes afin de vrifier
si une fonction convient vos exigences.
Les tableaux listent les fonctions par catgorie et par ordre alphabtique, chaque nom de
fonction tant accompagn d'une courte description. Si vous reprez une fonction qui est
susceptible de vous intresser, il faudra aller voir sa description complte dans l'aide en
ligne.

II. Les fonctions de chane


Comme leur nom l'indique, les fonctions de chane travaillent sur des chanes de
caractres ; la plupart de ces fonctions s'emploient trs souvent dans les programmes et
il est par consquent important de connatre les principales et notamment les fonctions
suivantes :
Asc
Chr
InStr
InStrRev
LCase
Left
Len
LTrim
Mid
Replace
Right

Page 1/ 12

Renvoie une donne de type Integer reprsentant le code de caractre


correspondant la premire lettre d'une chane.
Renvoie une valeur de type String contenant le caractre associ au code
de caractre indiqu.
Renvoie une valeur de type Variant (Long) indiquant la position de la
premire occurrence d'une chane l'intrieur d'une autre chane.
Renvoie la position d'une occurrence d'une chane dans une autre,
partir de la fin de la chane.
Renvoie une valeur de type String convertie en minuscules.
Renvoie une valeur de type Variant (String) contenant le nombre indiqu
de caractres d'une chane en partant de la gauche.
Renvoie une valeur de type Long contenant le nombre de caractres
d'une chane ou le nombre d'octets requis pour stocker une variable.
Renvoie une valeur de type Variant (String) contenant une copie d'une
chane en supprimant les espaces de gauche.
Renvoie une valeur de type Variant (String) contenant un nombre
indiqu de caractres extraits d'une chane de caractres.
Renvoie une chane dans laquelle une sous-chane spcifie a t
remplace plusieurs fois par une autre sous-chane.
Renvoie une valeur de type Variant (String) contenant le nombre indiqu
de caractres d'une chane en partant de la droite.

Les fonctions VBA

Maj 2008

Renvoie une valeur de type Variant (String) contenant une copie d'une
chane en supprimant les espaces de droite.
Renvoie une valeur de type Variant (String) comprenant le nombre
Space
d'espaces indiqu.
Str
Renvoie une valeur de type Variant (String) reprsentant un nombre.
Renvoie une valeur de type Variant (Integer) indiquant le rsultat d'une
StrComp
comparaison de chanes.
StrConv
Renvoie une valeur de type Variant (String) convertie au format indiqu.
Renvoie une valeur de type Variant (String) contenant une chane
String
constitue d'un caractre rpt sur la longueur indique.
Renvoie une chane contenant des caractres dont l'ordre a t invers
StrReverse
par rapport une chane donne.
Renvoie une valeur de type Variant (String) contenant une copie d'une
Trim
chane en supprimant les espaces de gauche et de droite.
Renvoie une valeur de type Variant (String) contenant la chane
UCase
indique, convertie en majuscules.
Si vous fouillez dans l'aide en ligne, vous serez sans doute surpris de voir que certaines
fonctions de chane sont doubles, comme par exemple Left et Left$ ou bien encore Mid
et Mid$ ; apparemment, quand on examine les explications sur ces fonctions jumelles,
on ne note aucune diffrence.
Et pourtant, elles existent et nous allons cette occasion reparler des variables de type
Variant. Vous vous souvenez peut-tre que je vous avais dit que le type de donnes
Variant tait trs souple et qu'il accomplissait une partie du travail votre place.
Ce travail a bien videmment un cot et ce que vous n'avez pas faire, vous le payez en
termes de performance. En fait, la diffrence entre Mid et Mid$ a trait au type de
variable avec lequel la fonction va travailler : Mid travaille avec des donnes Variant et
Mid$ travaille avec des donnes String. La belle affaire me direz-vous puisque cette
distinction est totalement transparente pour vous. En ralit, elle ne l'est pas puisque la
fonction Mid$ est dans certains cas presque deux fois plus rapide que son quivalent qui
marche avec des variables Variant. Mme si la programmation n'est pas votre activit
principale et que vous n'avez aucun souci d'optimisation de votre code, il est important
de comprendre ces diffrences et de pouvoir les valuer. Nous allons voir dans l'exemple
suivant qu'il est trs facile de mettre en place une procdure de test de performance et
vous verrez qu'un petit programme peut fournir des rsultats significatifs :
RTrim

Sub testperf1()
Dim boucle As Double
chaine = " La femme des uns fait le bonheur des autres "
depart = Timer 'dclenche le chrono
For boucle = 1 To 1000000
Dim x
x = Mid(chaine, 26, 7)
Next boucle
fin = Timer ' arrte le chrono
MsgBox (fin - depart)
' affiche le rsultat en secondes
End Sub
Ce premier programme initialise une chane de caractres puis dclenche un compteur
l'aide de la fonction Timer qui renvoie une valeur reprsentant le nombre de secondes
coules depuis minuit.
Une boucle est excute ensuite un million de fois. A l'intrieur de cette boucle, on
Page 2/ 12

Les fonctions VBA

Maj 2008

initialise une variable qui est de type Variant tant donn qu'aucun type n'est dclar et
on ralise une opration sur une chane de caractres. A la fin de la boucle, on dclenche
un deuxime chrono et on affiche la diffrence entre les deux chronos, c'est--dire le
temps coul pendant le droulement de la boucle.
Le deuxime programme de test est similaire sauf qu'on prend la peine de dclarer les
variables chane en tant que String et qu'on utilise la fonction Mid$ :

Sub testperf2()
Dim chaine As String
Dim boucle As Double
chaine = " La femme des uns fait le bonheur des autres "
depart = Timer
For boucle = 1 To 1000000
Dim x As String
x = Mid$(chaine, 26, 7)
Next boucle
fin = Timer
MsgBox (fin - depart)
End Sub
Le tableau ci-dessous vous montre les rsultats des tests effectus sur huit fonctions. La
deuxime colonne indique le temps avec la fonction renvoyant une variable Variant et la
troisime colonne indique le temps avec la fonction renvoyant une variable String. Les
valeurs de temps sont exprimes en secondes.

Fonction

Variant

String

Diffrence en %

x = Mid(chaine, 26, 7)
1.54
1.14
0,35
x = Left(chaine, 20)
1.30
.92
0,41
x = Right(chaine, 20)
1.30
.92
0,41
x = LTrim(chaine)
1.30
.99
0,31
x = RTrim(chaine)
1.26
.98
0,29
x = Trim(chaine)
1.38
1.10
0,25
x = LCase(chaine)
12.14
11.87
0,02
x = UCase(chaine)
11.32
10.93
0,04
Mme s'il faut prendre ces mesures avec des pincettes, elles sont suffisamment
significatives sur certaines fonctions pour que cela puisse avoir un impact dans certains
programmes qui font un usage intensif du traitement des chanes de caractres.
Ces deux petits programmes ont surtout un but pdagogique : ils vous montrent qu'il est
ais d'crire une macro pour tester deux versions diffrentes d'un mme programme. De
plus, ils vous enseignent que la facilit fait finalement perdre du temps et qu'on a
toujours intrt tre le plus explicite possible dans un programme car on gagne en
temps et en lisibilit.

III. Les fonctions de date


Les fonctions de date sont nombreuses en Visual Basic et de nombreux exemples sont
disponibles dans la FAQ. Si vous avez traiter des dates dans votre programme, il serait
bien rare que vous ne trouviez pas dans cette liste une fonction qui rponde vos
besoins.

Page 3/ 12

Les fonctions VBA

Date
DateAdd
DateDiff
DatePart
DateSerial
DateValue
Day
Hour
Minute

Month
MonthName
Now

Second
Time
Timer
TimeSerial
TimeValue
Weekday
WeekdayName
Year

Maj 2008

Renvoie une valeur de type Variant (Date) contenant la date


systme actuelle.
Renvoie une valeur de type Variant (Date) contenant une date
laquelle un intervalle de temps spcifi a t ajout.
Renvoie une valeur de type Variant (Long) indiquant le nombre
d'intervalles de temps entre deux dates donnes.
Renvoie une valeur de type Variant (Integer) contenant l'lment
spcifi d'une date donne.
Renvoie une valeur de type Variant (Date) correspondant une
anne, un mois et un jour dtermins.
Renvoie une valeur de type Variant (Date).
Renvoie une valeur de type Variant (Integer) indiquant un nombre
entier compris entre 1 et 31, inclus, qui reprsente le jour du mois.
Renvoie une valeur de type Variant (Integer) indiquant un nombre
entier compris entre 0 et 23 inclus, qui reprsente l'heure du jour.
Renvoie une valeur de type Variant (Integer) indiquant un nombre
entier compris entre 0 et 59, inclus, qui reprsente la minute de
l'heure en cours.
Renvoie une valeur de type Variant (Integer) indiquant un nombre
entier compris entre 1 et 12, inclus, qui reprsente le mois de
l'anne.
Renvoie une chane indiquant le mois spcifi.
Renvoie une valeur de type Variant (Date) indiquant la date et
l'heure en cours fournies par la date et l'heure systme de votre
ordinateur.
Renvoie une valeur de type Variant (Integer) indiquant un nombre
entier compris entre 0 et 59, inclus, qui reprsente la seconde de la
minute en cours.
Renvoie une valeur de type Variant (Date) indiquant l'heure
systme en cours.
Renvoie une valeur de type Single reprsentant le nombre de
secondes coules depuis minuit.
Renvoie une valeur de type Variant (Date) contenant une heure
prcise (heure, minute et seconde).
Renvoie une valeur de type Variant (Date) contenant une heure.
Renvoie une valeur de type Variant (Integer) contenant un nombre
entier qui reprsente le jour de la semaine.
Renvoie une chane indiquant le jour de la semaine spcifi.
Renvoie une valeur de type Variant (Integer) contenant un nombre
entier qui reprsente l'anne.

IV. Les fonctions mathmatiques


Abs
Atn
Cos
Exp
Page 4/ 12

Renvoie une valeur de


absolue d'un nombre.
Renvoie une valeur de
Renvoie une valeur de
Renvoie une valeur de

mme type que celle transmise, indiquant la valeur


type Double indiquant l'arctangente d'un nombre.
type Double indiquant le cosinus d'un angle.
type Double indiquant la valeur de e (base des

Les fonctions VBA

Maj 2008

logarithmes npriens) lev une puissance.


Renvoie la partie entire d'un nombre.
Renvoie une valeur de type String reprsentant un nombre sous forme
Hex
hexadcimale.
Int
Renvoie la partie entire d'un nombre.
Renvoie une valeur de type Double indiquant le logarithme nprien d'un
Log
nombre.
Renvoie une valeur de type Variant (String) reprsentant la valeur octale
Oct
d'un nombre.
Renvoie une chane de caractres de type Variant (String) indiquant
Partition
l'endroit o un nombre apparat au sein d'une srie calcule de plages de
valeurs.
Rnd
Renvoie une valeur de type Single contenant un nombre alatoire.
Round
Renvoie un nombre arrondi un nombre spcifi de positions dcimales.
Renvoie une valeur de type Variant (Integer) indiquant le signe d'un
Sgn
nombre.
Sin
Renvoie une valeur de type Double indiquant le sinus d'un angle.
Sqr
Renvoie une valeur de type Double indiquant la racine carre d'un nombre.
Tan
Renvoie une valeur de type Double indiquant la tangente d'un angle.
Renvoie le nombre contenu dans une chane de caractre sous la forme
Val
d'une valeur numrique d'un type appropri.
Certaines de ces fonctions sont trs spcialises (comme les fonctions trigonomtriques)
et ne vous serviront sans doute que trs rarement. En revanche vous utiliserez souvent
les fonctions Abs, Int, Round et Val.
Fix

V. Les fonctions financires


Ces fonctions sont l'quivalent des fonctions financires que l'on trouve dans Excel (la
troisime colonne du tableau indique d'ailleurs le nom correspondant Excel).
Si vous dveloppez une macro avec Excel, il est sans doute prfrable d'utiliser les
fonctions internes d'Excel mais si vous devez faire du calcul financier dans un programme
Word ou Access, il sera plus facile d'utiliser les fonctions de Visual Basic.

DDB

FV

IPmt

IRR

MIRR
Nper
Page 5/ 12

Renvoie une valeur de type Double indiquant l'amortissement d'un


bien au cours d'une priode spcifique en utilisant la mthode
d'amortissement dgressif taux double ou toute autre mthode
prcise.
Renvoie une valeur de type Double indiquant le futur montant
d'une annuit base sur des versements constants et priodiques
et sur un taux d'intrt fixe.
Renvoie une valeur de type Double indiquant le montant, sur une
priode donne, d'une annuit base sur des versements constants
et priodiques et sur un taux d'intrt fixe.
Renvoie une valeur de type Double indiquant le taux de rendement
interne d'une srie de mouvements de trsorerie priodiques
(paiements et encaissements).
Renvoie une valeur de type Double indiquant le taux de rendement
interne modifi d'une srie de mouvements de trsorerie
priodiques (paiements et encaissements).
Renvoie une valeur de type Double indiquant le nombre

DDB

VC

INTPER

TRI

TRIM
NPM

Les fonctions VBA

NPV

Pmt

PPmt

PV
Rate
SLN
SYD

Maj 2008

d'chances d'une annuit base sur des versements constants et


priodiques et sur un taux d'intrt fixe.
Renvoie une valeur de type Double indiquant la valeur nette
actuelle d'un investissement, calcule en fonction d'une srie de
mouvements de trsorerie priodiques (paiements et
encaissements) et d'un taux d'escompte.
Renvoie une valeur de type Double indiquant le montant d'une
annuit base sur des versements constants et priodiques et sur
un taux d'intrt fixe.
Renvoie une valeur de type Double indiquant le remboursement du
capital, pour une chance donne, d'une annuit base sur des
versements constants et priodiques et sur un taux d'intrt fixe.
Renvoie une valeur de type Double indiquant le montant actuel
d'une annuit base sur des chances futures constantes et
priodiques, et sur un taux d'intrt fixe.
Renvoie une valeur de type Double indiquant le taux d'intrt par
chance pour une annuit.
Renvoie une valeur de type Double indiquant l'amortissement
linaire d'un bien sur une priode donne.
Renvoie une valeur de type Double indiquant l'amortissement
global d'un bien sur une priode donne.

VAN

VPM

PRINCPER

VA
TAUX
AMORLIN
SYD

VI. Les fonctions de gestion de fichiers


Ces fonctions permettent de manipuler des fichiers au sens large du terme et vous
pouvez aussi bien obtenir le nom d'un fichier, connatre ses attributs, calculer sa
longueur que le parcourir octet par octet. Cela tant, on prfrera souvent une autre
mthode pour manipuler des fichiers et notamment par le biais de l'objet
FileSystemObject que nous tudierons plus tard.
CurDir
Dir

EOF
FileAttr
FileDateTime
FileLen
FreeFile
GetAttr
Input

Page 6/ 12

Renvoie une valeur de type Variant (String) indiquant le chemin en


cours.
Renvoie une valeur de type String reprsentant le nom d'un fichier,
d'un rpertoire ou d'un dossier correspondant une chane de
recherche, un attribut de fichier ou au nom de volume d'un lecteur.
Renvoie une valeur de type Integer contenant la valeur Boolean True
lorsque la fin d'un fichier ouvert en mode Random ou Input squentiel
est atteinte.
Renvoie une valeur de type Long reprsentant le mode d'ouverture
des fichiers avec l'instruction Open.
Renvoie une valeur de type Variant (Date) indiquant la date et l'heure
de cration ou de dernire modification d'un fichier.
Renvoie une valeur de type Long indiquant la longueur en octets d'un
fichier.
Renvoie une valeur de type Integer reprsentant le prochain numro
de fichier pouvant tre utilis par l'instruction Open.
Renvoie une valeur de type Integer indiquant les attributs du fichier
ou du dossier.
Renvoie une valeur de type String contenant les caractres lus dans

Les fonctions VBA

Loc
LOF
Seek

Maj 2008

un fichier ouvert en mode Input ou Binary.


Renvoie une valeur de type Long indiquant la position de
lecture/criture courante dans un fichier ouvert.
Renvoie une valeur de type Long reprsentant la taille, exprime en
octets, d'un fichier ouvert l'aide de l'instruction Open.
Renvoie une valeur de type Long indiquant la position de
lecture/criture courante dans un fichier ouvert l'aide de l'instruction
Open.

VII. Les fonctions logiques


Choose

Slectionne et renvoie une valeur partir d'une liste d'arguments.


Renvoie l'un ou l'autre de deux arguments selon l'valuation d'une
Iif
expression.
Renvoie une valeur de type Boolean qui indique si une expression peut
IsDate
tre convertie en date.
Renvoie une valeur de type Boolean indiquant si une variable a t
IsEmpty
initialise.
Renvoie une valeur de type Boolean qui indique si une expression est une
IsError
valeur d'erreur.
Renvoie une valeur de type Boolean qui indique si un argument facultatif
IsMissing
de type Variant a t pass dans une procdure.
Renvoie une valeur de type Boolean qui indique si une expression ne
IsNull
contient aucune donne valide (Null).
Renvoie une valeur de type Boolean qui indique si une expression peut
IsNumeric
tre interprte comme un nombre.
Renvoie une valeur de type Boolean qui indique si un identificateur
IsObject
reprsente une variable objet.
value une liste d'expressions et renvoie une valeur de type Variant ou
Switch
une expression associe la premire expression de la liste qui a pour
valeur True.
Parmi toutes ces fonctions, vous utiliserez surtout la fonction Iif qui permet de faire un
test conditionnel If Then sur une seule ligne et les fonctions IsEmpty et IsNull.
Exemple :

Dim sexe as string


sexe=IIF(civilite="Mr","Masculin","Fminin")

VIII. Les fonctions de conversion


Les fonctions de conversion sont extrmement importantes et elles seront bien souvent
le seul remde pour ne pas commettre des erreurs de type.
Vous devez vous rappeler qu'il est en effet impossible de mlanger les types de donnes
au sein d'une mme expression ; si je souhaite, par exemple, afficher dans une bote de
dialogue le nom d'un tudiant suivi de sa moyenne gnrale aux examens, il faut que je
fasse une conversion de la note puisque je n'ai pas le droit de mettre bout bout une
variable caractre et une variable numrique. Je vais donc employer une fonction de
conversion qui va changer le type de la variable numrique en caractre.
Page 7/ 12

Les fonctions VBA

Maj 2008

Le programme suivant illustre cette technique :

Dim nometudiant As String


Dim moyenne As Double
nometudiant = "MARTIN"
moyenne = 12
' Erreur de type
' MsgBox (nometudiant + " : " + moyenne)
' Conversion donc pas d'erreur
MsgBox (nometudiant + " : " + CStr(moyenne))
Les fonctions de conversion convertissent une expression en un type de donnes
spcifique. Leur syntaxe est la suivante :

Nom_de_fonction(expression)
L'argument expression peut tre n'importe quelle expression de chane ou expression
numrique et le nom de la fonction dtermine le type renvoy, comme le montre le
tableau suivant

Fonction Type renvoy


CBool
CByte

Plage de valeurs de l'argument


expression

Boolean
Byte

Toute chane ou expression numrique valide.


0 255.
-922 337 203 685 477,5808
CCur
Currency
922 337 203 685 477,5807.
CDate
Date
Toute expression de date valide.
CDbl
Double
-1.79769313486231E308
Si l'argument expression pass la fonction excde la plage de valeurs du type de
donnes cible, une erreur se produit. Il est donc prfrable avant de raliser une
conversion de s'assurer qu'elle soit valide. Vous utiliserez pour ce faire des fonctions
logiques comme par exemple la fonction IsDate pour dterminer si la valeur de
l'argument date peut tre convertie en date ou en heure.
La fonction CDate reconnat les littraux date et heure ainsi que certains nombres
appartenant la plage de dates autorises. Lors de la conversion d'un nombre en date,
la partie entire du nombre est convertie en date. Si le nombre comprend une partie
dcimale, celle-ci est convertie en heures exprimes en partant de minuit.
La fonction CDate reconnat les formats de date dfinis dans les paramtres rgionaux de
votre systme. L'ordre des jours, mois et annes risque de ne pouvoir tre dfini si les
donnes sont fournies dans un format diffrent des paramtres de date reconnus. De
plus, les formats de date complets prcisant le jour de la semaine ne sont pas reconnus.
Il existe d'autres fonctions de conversion comme Str ou Val mais il vaut mieux utiliser
les fonctions normalises. Par exemple, la fonction Val ne respecte pas les conventions
trangres alors que la fonction CCur reconnat divers types de sparateurs dcimaux,
de sparateurs des milliers et diverses options montaires, selon les paramtres
rgionaux de votre ordinateur.

IX. Les fonctions systme


Command

Page 8/ 12

Renvoie la partie argument de la ligne de commande utilise pour


lancer Microsoft Visual Basic ou un programme excutable

Les fonctions VBA

Maj 2008

dvelopp avec Visual Basic.


Arrte momentanment l'excution afin que le systme
DoEvents
d'exploitation puisse traiter d'autres vnements.
Renvoie la valeur de type String associe une variable
Environ
d'environnement du systme d'exploitation. Non disponible sur le
Macintosh.
Renvoie une liste des cls et leurs valeurs respectives (cres
GetAllSettings
l'origine l'aide de l'instruction SaveSetting), figurant dans une
entre d'application de la base de registres de Windows..
Renvoie une valeur de cl d'une entre d'application de la base de
GetSetting
registres de Windows.
Renvoie une valeur de type Integer indiquant le mode IME (Input
IMEStatus
Method Editor) en cours de Microsoft Windows ; disponible
uniquement dans les versions destines aux pays asiatiques.
Utilise sur Macintosh pour convertir une constante quatre
MacID
caractres en une valeur pouvant tre exploite par les fonctions
Dir, Kill, Shell et AppActivate.
Excute un script AppleScript et retourne une valeur renvoye par le
MacScript
script, le cas chant.
Renvoie une valeur de type Long indiquant le code de couleur RGB
QBColor
correspondant au numro de couleur indiqu.
RGB
Renvoie un entier de type Long reprsentant le code RGB.
Lance un programme excutable et renvoie une valeur de type
Shell
Variant (Double) reprsentant l'identificateur (ID) de la tche
excute en cas de succs, ou un zro en cas d'chec.
Renvoie une valeur de type String qui fournit des informations sur
TypeName
une variable.
Renvoie une valeur de type Integer qui indique le sous-type d'une
VarType
variable.
Ces fonctions donnent des renseignements sur l'tat du systme et vous en aurez
rarement besoin car certaines sont vraiment trs spcialises. La fonction VarType peut
tre intressante pour bien comprendre le rle des types de donnes.

X. Les fonctions de tableau


Array
Filter
IsArray
Join
LBound
Split
UBound

Page 9/ 12

Renvoie une variable de type Variant contenant un tableau.


Renvoie un tableau de base zro contenant un sous-ensemble d'un tableau
de chane bas sur des critres de filtre spcifis.
Renvoie une valeur de type Boolean qui indique si une variable est un
tableau.
Renvoie une chane cre par la jonction de plusieurs sous-chanes contenues
dans un tableau.
Renvoie une valeur de type Long contenant le plus petit indice disponible
pour la dimension indique d'un tableau.
Renvoie un tableau de base zro une dimension contenant le nombre
spcifi de sous-chanes.
Renvoie une valeur de type Long contenant le plus grand indice disponible
pour la dimension indique d'un tableau.

Les fonctions VBA

Maj 2008

Rappel : un tableau est une variable particulire qui peut contenir plusieurs valeurs ;
chaque valeur du tableau s'appelle un lment et on accde chaque lment par un
numro nomm indice.

XI. Les fonctions de gestion d'objet


Excute une mthode d'un objet ou dfinit ou renvoie une proprit
d'un objet.
CreateObject
Cre et renvoie une rfrence un objet ActiveX.
GetObject
Renvoie une rfrence un objet fourni par un composant ActiveX.
De plus amples dtails sur la programmation oriente objet sous VB sont disponibles
dans le tutoriel de Xavier VLIEGHE.
CallByName

XII. Les fonctions de gestion d'erreur


Si on veut bien programmer, il faut tre paranoaque et prvoir le pire. Les fonctions de
gestion d'erreur vous permettent de traiter prventivement les erreurs ventuelles qui
peuvent se produire dans votre programme.
CVErr
Error

Renvoie une donne de type Variant et de sous-type Error contenant un numro


d'erreur spcifi par l'utilisateur.
Renvoie le message d'erreur correspondant un numro d'erreur donn.

XIII. Les fonctions de formatage


Format

FormatCurrency
FormatDateTime
FormatNumber
FormatPercent

Renvoie une valeur de type Variant (String) contenant une


expression formate en fonction des instructions contenues dans
l'expression de mise en forme.
Renvoie une expression formate sous forme de valeur de type
Currency utilisant le symbole montaire dfini dans le Panneau
de configuration du systme.
Renvoie une expression formate sous forme de date ou d'heure.
Renvoie une expression formate sous forme de nombre.
Renvoie une expression formate sous forme de pourcentage
(multipli par 100) avec un caractre % de fin.

XIV. Les fonctions d'interface utilisateur


InputBox
MsgBox

Page 10/ 12

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 valeur de type String.
Affiche 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

Les fonctions VBA

Maj 2008

bouton choisi par l'utilisateur.


La fonction MsgBox est trs simple d'utilisation. En revanche, il nous faut dire un mot de
InputBox qui est aussi une fonction importante dans le cadre du dialogue hommemachine puisqu'elle permet de rcuprer des informations saisies par l'utilisateur.
Il est trs important de noter que la valeur renvoye par InputBox est une variable
String ce qui signifie que si vous faites saisir un nombre un utilisateur, il faudra en
principe le convertir, grce une fonction de conversion telle que CDbl, CInt ou CLng,
en une variable numrique, mme si Visual Basic n'est parfois pas trs regardant.
La syntaxe de InputBox ressemble celle de MsgBox :

InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])


Avec les arguments :
Facultatif. Expression de chane affiche par dfaut dans la zone de texte en
l'absence de toute autre valeur. Si l'argument default est omis, la zone de
texte qui s'affiche est vide.
Facultatif. Expression numrique indiquant, en twips, la distance horizontale
qui spare le bord gauche de l'cran de la bordure gauche de la bote de
xpos
dialogue. Si l'argument xpos est omis, la bote de dialogue est centre
horizontalement.
Facultatif. Expression numrique indiquant, en twips, la distance verticale qui
spare le haut de l'cran de la bordure suprieure de la bote de dialogue. Si
ypos
l'argument ypos est omis, la bote de dialogue est positionne verticalement,
environ un tiers de l'cran en partant du haut.
Pour votre gouverne, vous pouvez retenir qu'un twip est un 20me de point et qu'un
point est approximativement un 72me de pouce qui, comme chacun le sait, mesure
2,54 centimtres. Visual Basic utilise les twips en interne pour la rsolution de l'affichage
et certains paramtres de fonctions doivent tre exprims dans cette mesure. Il n'y a pas
malheureusement de correspondance directe entre les twips et les pixels car les twips
dpendent de la taille de la police qui peut varier d'un systme l'autre.
default

XV. Les fonctions d'impression


Spc Utilise avec l'instruction Print # ou la mthode Print pour positionner la sortie.
Tab Utilise avec l'instruction Print # ou la mthode Print pour positionner la sortie.

Page 11/ 12