|
PROCÉDURES ET FONCTIONS
Pour essayer les lignes de code indiquées ci-dessous,
vous devez tout d'abord ouvrir Excel, ouvrir l'environnement VB (, puis :
- .
- Écrivez ou collez le code dans ce module.
- Cliquez n'importe où à l'intérieur de ce code
- Exécutez le code en cliquant sur le bouton
ou en appuyant sur la touche F5.
- Vérifiez le résultat dans le classeur actif.
Une procédure Sub est une série d'instructions écrites
en VB, elles sont délimitées par les instructions Sub et
End Sub. Elle exécute des actions mais ne renvoie pas de valeurs.
Une procédure Sub peut recevoir des arguments tels que des constantes,
des variables ou des expressions passées par la procédure
appelante, ces arguments sont mis entre parenthèse après
l'instruction Sub et son nom. Si une procédure Sub n'a pas d'argument,
la paire de parenthèses est vide mais obligatoire. Pour les exemples
suivants, tapez une valeur et mettez en forme une cellule puis
sélectionnez-la, ensuite tapez le code indiqué dans une
feuille module :
- Sans arguments, la procédure copie la cellule active et la
copie 1 ligne vers le bas et 1 colonne vers la droite, puis sélectionne
cette dernière :
Sub Copie_Decale()
ActiveCell.Copy ActiveCell.Offset(1, 1)
ActiveCell.Offset(1, 1).Select
End Sub
- Avec arguments, la procédure fonctionne de la même manière,
mais on lui précise sur quelle cellule elle va travailler.
Sub Copie_Decale_bis(AdressePlage As String)
Dim UnePlage As Range
Set UnePlage = Range(AdressePlage)
UnePlage.Copy UnePlage.Offset(2, 2)
UnePlage.Offset(2, 2).select
End Sub
Pour exécuter cette procédure, tapez Copie_Decale_bis("A2") dans
la fenêtre puis appuyez
sur Entrée, remplacez éventuellement A2 par
l'adresse de votre cellule.
Une procédure Function est une série d'instructions écrites
en VB, elles sont délimitées par les instructions Function
et End Function . Elle exécute des actions et renvoie une valeur.
Elle peut recevoir des arguments tels que des constantes, des variables
ou des expressions passées par la procédure appelante,
ces arguments sont mis entre parenthèse après l'instruction
Function et son nom. Si une procédure Function n'a pas d'argument,
la paire de parenthèses est vide mais obligatoire.
Cette procédure est communément appelé fonction car elle
renvoie une valeur, il est préférable d'indiquer quel type de valeur
elle renvoie dans l'instruction Function. Pour renvoyer cette valeur, vous devez
la lui affecter à son nom dans une ou plusieurs instructions.
Pour les exemples suivants, tapez une valeur dans une cellule puis sélectionnez-la,
ensuite tapez le code indiqué dans une feuille module :
- Sans arguments, la fonction renvoie le code de la couleur de fond
de la cellule active :
Public Function Code_Couleur() As String
Code_Couleur = ActiveCell.Interior.ColorIndex
Code_Couleur = "La couleur de la cellule active est : " & Code_Couleur
End Function
Pour exécuter cette procédure, tapez Range("B1")=Code_Couleur() dans
la fenêtre Exécution, puis appuyez sur Entrée.
- Avec arguments, la procédure fonctionne de la même manière,
mais on lui précise sur quelle cellule elle doit lire la couleur
de fond :
Public Function Code_Couleur_Bis(AdressePlage
As String) As String
Dim UnePlage As Range
Set UnePlage = Range(AdressePlage)
Code_Couleur_Bis = UnePlage.Interior.ColorIndex
Code_Couleur_Bis = "La couleur de la cellule " & AdressePlage & " est
: " & Code_Couleur_Bis
End Function
Pour exécuter cette procédure, tapez range("B3")=Code_Couleur_Bis("A2") dans
la fenêtre , puis
appuyez sur Entrée, remplacez éventuellement A2 par
l'adresse de votre cellule.
Pour appeler une procédure, vous utilisez l'instruction Call:
tapez Call, un espace puis son nom, si elle a un ou des arguments, tapez également
un espace, puis les arguments séparés par une virgule,
ces derniers doivent être dans l'ordre. Vous pouvez omettre Call.
En utilisant nos exemples ci-dessus, vous écrivez :
Call Copie_Decale
Call Copie_Decale_bis "A2"
Ou
Copie_Decale
Copie_Decale_bis "A2"
Pour appeler une fonction, vous affectez la valeur de la fonction à une
variable , à une autre fonction ou à une propriété d'objet.
Les arguments sont inscrits dans l'ordre, séparés par
une virgule et entre parenthèse. Si la valeur de la fonction
ne vous intéresse pas, appelez-la comme une procédure.
Avec nos exemples, vous écrivez :
Range("B2")=Code_Couleur()
MsgBox(Code_Couleur_Bis("A2"))
Cette dernière ligne affiche dans une boîte message la valeur
renvoyée par la fonction Code_Couleur_Bis,
essayez-la en l'écrivant dans la fenêtre puis
appuyez sur Entrée.
|