Quel est l'intérêt des procédures Function ?

  • Initiateur de la discussion KiWin
  • Date de début
K

KiWin

Guest
Bonjour,

J'ai bien compris la fonctionnement des procédures Function, mais je n'en vois pas l'intérêt...

Prenons l'exmple fourni ds l'aide VBA de Office XP :

Sub Main()
temp = Application.InputBox(Prompt:= _
"Veuillez entrer la température en degrés F.", Type:=1)
MsgBox "La température équivaut à " & Celsius(temp) & " degrés C."
End Sub

Function Celsius(fDegrees)
Celsius = (fDegrees - 32) * 5 / 9
End Function

N'est t'il pas plus simple d'écrire :

Sub Main()
temp = Application.InputBox(Prompt:= _
"Veuillez entrer la température en degrés F.", Type:=1)
Celsius = (temp - 32) * 5 / 9
MsgBox "La température équivaut à " & Celsius(temp) & " degrés C."
End Sub

Qui peut m'expliquer ce qui m'échappe ?? Merci.
 
C

chris

Guest
Bonjour
L'interet des fonctions dans Excel :
- dans les modules VBA il peut être nécessaire de faire plusieurs fois appel au même traitement sur des plages différentes ou des valeurs différentes : au lieu de réécrire sensiblement les même lignes de code, on crée une fonction générique qu'on peut appeler à chaque fois qu'on en a besoin en lui passant en paramêtres les valeurs ou plages à traiter.
De même qu'au long du code on fait appel à des fonctions fournies par Excel, on peut faire appel à nos propres fonctions.

- ces fonctions peuvent aussi servir de fonction personnalisées si elles sont stockées dans une macro complémentaire.

Chris
 
T

Ti

Guest
pour s'en tenir à une définition simple, une procédure effectue un traitement (modifier la valeur de cellules, la mise en forme d'une page pour l'impression etc) et une fonction renvoie une valeur (le calcul de Pi, la conversion d'une valeur de degrés celsius en degrés Farenheit dans ton exemple etc).

précision de vocabulaire : une procédure fonction n'existe pas ! c'est l'un, ou l'autre
 
K

KiWin

Guest
Merci à tous les deux de votre réponse.

Chris, effectivement vu sous cet angle je comprend que ça puisse servir. Y'a t'il d'autres cas de figures ou le recours à un fonction est nécéssaire ?

Ti, je ne veux pas avoir l'air d'en savoir plus que je ne sais, mais les fonctions sont des procédures qui effectuent un traitement et qui peuvent éventuellement renvoyer une valeur, mais "Function" est bien une procédure :
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/modcore/html/decontipsfordefiningproceduresinvba.asp
 
K

KiWin

Guest
Au fait il y a petite erreur, personne ne l'a vue ?? :)

Sub Main()
temp = Application.InputBox(Prompt:= _
"Veuillez entrer la température en degrés F.", Type:=1)
Celsius = (temp - 32) * 5 / 9
MsgBox "La température équivaut à " & Celsius(temp) & " degrés C."
End Sub
 
T

Ti

Guest
OK je comprends la source de la confusion, c'est vrai que VB parle de Sub au lieu de procédure. Dans d'autres langages (en Delphi par exemple) on parle simplement de procédure ou de fonction et on s'en tient à la définition que je donne plus haut.

Donc je pourrais reformuler ma réponse ainsi :
- Une procédure-Sub effectue un traitement (modifier la valeur de cellules, la mise en forme d'une page pour l'impression etc)

- Une procédure-Function renvoie une valeur (le calcul de Pi, la conversion d'une valeur de degrés celsius en degrés Farenheit dans ton exemple etc).
 
J

JulienMorgendorfer

Guest
Bonjour à tous,
Tu sais Kiwin, ça dépend.
Pour ma part, j'ai commencé par des cours d'algo afin de comprendre la logique de programmation. Ensuite en passant par vb et delphi, je me sui rendu compte que finalement la logique est la même.
 

Discussions similaires

Statistiques des forums

Discussions
314 202
Messages
2 107 159
Membres
109 759
dernier inscrit
Exceller11