Bonjour,
J'aimerais vous poser une question : Quel est l'intérêt de créer une fonction + une procédure alors que je peux le réaliser qu'avec une seule procédure ?
Je m'explique à l'aide de l'exemple suivant :
Ci-dessus un code n'utilisant qu'une procédure.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Option Explicit Dim MesBonbon As Long ' Variable numérique qui contiendra le nombre de bonbons Dim MesScoubidou As Long ' Variable numérique qui contiendra le nombre de scoubidous Sub CompterLesac() Dim Ligne As Long ' Variable numérique pour balayer les lignes de la feuille. Dim Colonne As Long Ligne = 1 ' Initialise Ligne à 1 Colonne = 3 MesBonbon = 0: MesScoubidou = 0 ' Variables mises à zéro par sécurité. While Cells(Ligne, Colonne) <> "" ' Tant Que cellule(y,x) n'est pas vide. If Cells(Ligne, Colonne) = "x" Then MesBonbon = MesBonbon + 1 ' Les bonbons. If Cells(Ligne, Colonne) = "s" Then MesScoubidou = MesScoubidou + 1 ' Les scoubidous. Ligne = Ligne + 1 ' Passe à la ligne suivante. Wend MsgBox "J'ai " & MesBonbon & " bonbons et " _ & MesScoubidou & " scoubidous dans mon cartable." End Sub
Ci-dessus le code répondant au même "besoin" mais faisant appel à une fonction + une procédure.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 Option Explicit Dim MesBonbon As Long ' Variable numérique qui contiendra le nombre de bonbons Dim MesScoubidou As Long ' Variable numérique qui contiendra le nombre de scoubidous Sub CompterLeCartable() Call CompterPoche(3) ' Alimente MesBonbon et MesScoubidou MsgBox "J'ai " & MesBonbon & " bonbons et " _ & MesScoubidou & " scoubidous dans mon cartable." End Sub Function CompterPoche(MaColonne As Long) As Long Dim Ligne As Long ' Variable numérique pour balayer les lignes de la feuille. Ligne = 1 ' Initialise Ligne à 1 MesBonbon = 0: MesScoubidou = 0 ' Variables mises à zéro par sécurité. While Cells(Ligne, MaColonne) <> "" ' Tant Que cellule(y,x) n'est pas vide. CompterPoche = CompterPoche + 1 ' Incrémente le nombre d'éléments trouvés. If Cells(Ligne, MaColonne) = "x" Then MesBonbon = MesBonbon + 1 ' Les bonbons. If Cells(Ligne, MaColonne) = "s" Then MesScoubidou = MesScoubidou + 1 ' Les scoubidous. Ligne = Ligne + 1 ' Passe à la ligne suivante. Wend End Function
Pourriez-vous m'expliquer l'intérêt d'utiliser les fonctions ?
Je vous remercie,
Bien à vous,
Stéphane Drihem
PS: l'exemple pris correspond à l'apprentissage de Laurent Ott sur le lien suivant : http://laurent-ott.developpez.com/tu...ba-tome-1/#LIV
Partager