Les procédures et fonctions
Le sommaire :
Une procédure est en quel que sorte une macro qui n’est pas rattachée à un raccourci clavier.
Elle exécute une tâche précise, elle peut être utilisée depuis les macros.
Vous devez tout d’abord ouvrir le fichier source d’une macro.
Ensuite, placez-vous en haut du fichier en réalisant le raccourci clavier CTRL +Origine.
C’est à partir de cet endroit du fichier que vous pouvez écrire la procédure…
Voici la première syntaxe d’une procédure :
Public Sub NomDeLaProcédure()
Le code de la procédure
End Sub
La description :
NomDeLaProcédure est le nom de la procédure, c’est vous qui devez déterminer son nom. Le nom doit bien sûr être parlant, il doit exprimer le traitement que la procédure réalise.
Voici un exemple, ici, la macro Essai exécute la procédure intitulée Deplacementdroit.
La procédure deplacementDroit est définie avant la macro, elle déplace le curseur d’une cellule vers la droite par l’intermédiaire de la commande ActiveCell.OffSet.
Public Sub DeplacementDroit()
' Procédure qui déplace le curseur vers la cellule de droite
ActiveCell.Offset(0,
1).Select
End Sub
Maintenant, depuis les macros du classeur, vous pourrez
utiliser la procédure de la manière suivante :
Sub essai()
'
' essai Macro
' Macro enregistrée le 19/03/2008 par BOULANGER
'
' Touche de raccourci du clavier: Ctrl+y
' utilisation de la procédure DéplacementDroit
DeplacementDroit
End Sub
Pour l’exécution de certaines procédure, nous devons passer en paramètre une donnée au moment de l’appel de la procédure.
La syntaxe :
Public Sub NomDELaProcédure (paramètre)
Le code de la procédure
End Sub
La description :
NomDeLaProcédure est le nom de la procédure.
Paramètre est la déclaration de la variable de passage à la procédure, elle peut être par exemple :
NombrePersonnes As Integer
Voici un exemple.
Ici, la macro Essai utilise la procédure Deplacement, qui déplace le curseur d’une colonne à gauche ou d’une colone à droite selon la valeur du paramètre.
Le paramètre est de type String, il peut prendre deux valeurs, « Gauche » et « droit » :
Public Sub Deplacement(Direction As String)
' Procédure qui déplace le curseur vers la cellule de gauche ou de droite
' selon la valeur du paramètre
If
Direction = "gauche" Then
ActiveCell.Offset(0, -1).Select
End If
If
Direction = "droit" Then
ActiveCell.Offset(0, 1).Select
End If
End Sub
Maintenant, voici comment une macro va pouvoir utiliser la
procédure :
Sub essai()
'
' essai Macro
' Macro enregistrée le 19/03/2008 par BOULANGER
'
' Touche de raccourci du clavier: Ctrl+y
' utilisation de la procédure Déplacement
' avec le paramètre gauche
Deplacement ("gauche")
' avec le paramètre droit
Deplacement ("droit")
End Sub
Une fonction est en quelque sorte une procédure mais qui retourne une valeur, un résultat.
La qyntaxe :
Public Function NomDeLaFonction (Paramètre1, Paramètre2 etc)
Code de la fonction
NomDeLaFonction = ValeurARetourner
End function
La description :
NomDeLaFonction est le nom de la fonction, il doit être explicite.
Paramètres1, Paramètre2 etc, sont les données passées en paramètres à la fonction et entre parenthèses.
Ici dans la déclaration de la fonction, vous devez spécifier le nom de la variable et son type.
Par exemple, pour une fonction qui accueillerait le nom et l’âge d’un client :
Public
Function Client(Nom as String,Age as Integer)
NomDeLaFonction = ValeurARetourner, est la ligne qui permet de retourner un résultat.
A titre d’exemple, nous allons faire une fonction intitulée Produit qui calcule le produit de deux valeurs passées en paramètres.
Ces 2 valeurs seront demandées à l’utilisateur dans le script EssaiDeCalcul.
Public
Function Produit(Val1 As String, val2 As String)
‘ déclaration de la variable qui contiendra le résultat
Dim ResultatProduit As Integer
‘ Réalisation de la multiplication
ResultatProduit = CInt(Val1) * CInt(val2)
‘ Retourne le résultat, donc le produit
Produit = CStr(ResultatProduit)
End Function
Voici maintenant le code de la macro qui va utiliser la fonction :
Sub EssaiDeCalcul()
'
' EssaiDeCalcul Macro
' Macro enregistrée le 30/03/2008 par BOULANGER
'
‘ Déclaration des variables qui contiendront les deux valeurs saisies par l’utilisateur
Dim PremièreValeur As String
Dim DeuxièmeValeur As String
‘ demande à l’utilisateur de saisir les deux valeurs
PremièreValeur = InputBox("Première valeur", "Veuillez saisir la première valeur")
DeuxièmeValeur = InputBox("Deuxième valeur", "Veuillez saisir la deuxième valeur")
‘ exécution de la fonction Produit avec passage en paramètres des deux valeurs
ProduitAAfficher = Produit(PremièreValeur, DeuxièmeValeur)
‘ affichage du résultat, donc du produit
MsgBox (ProduitAAfficher)
End Sub
Philippe BOULANGER