Vous êtes sur la page 1sur 2

Pour qu'une fonction renvoie une valeur, attribuez cette valeur au nom de la

fonction (TestFonction = intCalc dans l'exemple suivant).


Vous pouvez affecter la valeur autant de fois que n�cessaire et la placer n'importe
o� dans la proc�dure. Attention toutefois � ajouter des conditions de sortie si
vous deviez utiliser des boucles r�cursives, dans le style TestFonction =
TestFonction(5), sinon vous provoquerez une erreur 28 "Espace pile insuffisant".
Vba
S�lectionnez

Le langage VBA (inclus dans Office 2010 de Microsoft�) est un excellent outil pour
s'initier � la programmation.
Robert Chevallier pr�sente ici tous les �l�ments n�cessaires � un apprentissage
rigoureux et progressif de la programmation VBA :
Le lecteur apprendra � r�aliser des applications assez complexes, aussi bien dans
la gestion de donn�es que dans le domaine financier,
et � se servir � bon escient de la couleur au sein des feuilles de calcul. Il
trouvera ensuite plusieurs applications qui permettent de
d�velopper des calculs num�riques sophistiqu�s et de visualiser rapidement les
r�sultats recherch�s.

d�finition des variables et des instructions, organisation des donn�es, ex�cution


du code. La structuration des programmes est expos�e en plusieurs �tapes,
des probl�mes les plus simples � ceux qui exigent des raisonnements plus �labor�s.
L'ouvrage donne la marche
� suivre pour d�velopper des applications dans le cadre du tableur Excel� en
utilisant le minimum d'objets.

Sub Essai()
'Renvoie 2020
MsgBox TestFonction(20)
End Sub

Function TestFonction(Arg1 As Double) As Double


Dim intCalc As Double

intCalc = (Arg1 * 100) + Arg1


TestFonction = intCalc
End Function

Si aucune valeur n'est attribu�e � l'argument name, la proc�dure renvoie une valeur
par d�faut.
Une fonction num�rique renvoie la valeur 0.
Une fonction de type String renvoie une cha�ne de longueur nulle "".
Une fonction de type Variant, la valeur Empty.
Une fonction de type Object renvoie Nothing.

Le m�me exemple que pr�c�demment, renvoie 0 car aucune valeur n'est attribu�e au
nom "TestFonction" (mise en commentaire de la ligne TestFonction = intCalc):
Vba
S�lectionnez

Sub Essai()
'Renvoie 2020
MsgBox TestFonction(20)
End Sub

Function TestFonction(Arg1 As Integer) As Long


Dim intCalc As Double

intCalc = (Arg1 * 100) + Arg1


'TestFonction = intCalc
End Function

Si la fonction doit renvoyer une r�f�rence d'objet (par exemple Range), la donn�e
attribu�e � l'argument name doit �tre trait�e avec le mot cl� Set:
Set DerniereCellule = .Cells(NumLigne, NumCol) dans l'exemple suivant.
Vba
S�lectionnez

Sub Test()
Dim Cible As Range

Set Cible = DerniereCellule(ActiveSheet)


MsgBox Cible.Address
End Sub

End With
End Function

'R�cup�re la dernier cellule utilis�e dans la feuille sp�cifi�e


'(Cet exemple ne g�re pas les feuilles totalement vides)
Function DerniereCellule(Ws As Worksheet) As Range
Dim NumLigne As Double, NumCol As Integer

With Ws
NumLigne = .Cells.Find("*", .Range("A1"), , , xlByRows, xlPrevious).Row
NumCol = .Cells.Find("*", .Range("A1"), , , xlByColumns, xlPrevious).Column

Set DerniereCellule = .Cells(NumLigne, NumCol)

Vous aimerez peut-être aussi