<< Retour au sommaire

 

VBA, Les procédures et les fonctions

 

 

 

Table des matières

  1. Les procédures sans paramètres ;
  2. Les procédures avec un paramètre ;
  3. Les fonctions.

 

Les procédures sans paramètres

 

Qu’est-ce qu’une procédure ?

Spécialisée dans l’exécution d’une tâche précise, elle peut donc être appelée et exécutée depuis les macros.

 

Vous devez au préalable ouvrir le fichier source d’une macro depuis l’éditeur VBA.

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 VBA 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 clairement 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

' Touche de raccourci du clavier: Ctrl+y

' Exécution de la procédure DéplacementDroit

DeplacementDroit

End Sub

 

Les procédures avec un paramètre

 

Pour l’exécution de certaines procédure, nous devons passer en paramètre une donnée au moment de son appel.

 

La syntaxe :

Public Sub NomDELaProcédure (paramètre)

Le code VBA 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

' 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

 


Les fonction

 

Une fonction est en quelque sorte une procédure mais qui retourne une valeur, un résultat après son exécution.

 

La syntaxe :

Public Function NomDeLaFonction (Paramètre1, Paramètre2 etc)

Code VBA 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 appeler la fonction :

 

Sub EssaiDeCalcul()

' EssaiDeCalcul Macro

'

‘ 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