XL 2016 Fonction personnalisée

Bebzinda

XLDnaute Nouveau
Bonjour a tous! Un exercice excel me demande de créer une fonction personnalisée qui calcul la surface du rectangle (hauteur*largeur) et de la tester sur une feuille de calcul. Alors j'ai écrit ce code:
Fonction SurfaceRectangle(hauteur as double, largeur as double) as double
SurfaceRectangle=worksheetfunction.hauteur*largeur
End fonction.
Mais cela ne fonctionne pas.
 

mapomme

XLDnaute Barbatruc
Bonjour @Bebzinda :),

Fonction n'existe pas en VBA. C'est Function ;). VBA cause américain.

WorksheetFunction n'est ni adapté à votre exercice ni au stade d'apprentissage où vous êtes.

Comme hauteur et largeur sont de type Double (donc des nombres), on fait tout simplement le produit (code dans module1):
VB:
Function SurfaceRectangle(hauteur As Double, largeur As Double) As Double
   SurfaceRectangle = hauteur * largeur
End Function
 

Pièces jointes

  • Bebzinda- surface- v1.xlsm
    16.3 KB · Affichages: 17
Dernière édition:

Bebzinda

XLDnaute Nouveau
Bonjour @Bebzinda :),

Fonction n'existe pas en VBA. C'est Function ;). VBA cause américain.

WorksheetFunction n'est ni adapté à votre exercice ni au stade d'apprentissage où vous êtes.

Comme hauteur et largeur sont de type Double (donc des nombres), on fait tout simplement le produit (code dans module1):
VB:
Function SurfaceRectangle(hauteur As Double, largeur As Double) As Double
   SurfaceRectangle = hauteur * largeur
End Function
Ah ok merci pour la précision. C'est plutôt function. Maintenant la question de module! Le module dans lequel j'ai écrit le code contient déjà un autre code pour surface du cercle qui répond bien au test.
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Bebzinda, mapomme,

Maintenant, la question du module ! Le module dans lequel j'ai écrit le code contient déjà un autre code pour la surface du cercle qui répond bien au test.

un module n'a rien à voir avec la quadrature du cercle : c'est tout à fait possible de mettre plusieurs subs et functions dans un même module ; mais pour éviter d'avoir des modules trop longs, tu peux ajouter d'autres modules standards : dans la fenêtre "Microsoft Visual Basic", fais Alt i m pour insérer un module ; après ton 1er module standard Module1, les suivants seront automatiquement nommés successivement Module2, Module3, Module4, etc... :)

soan
 
Dernière édition:

Bebzinda

XLDnaute Nouveau
Bonjour Bebzinda, mapomme,



un module n'a rien à voir avec la quadrature du cercle : c'est tout à fait possible de mettre plusieurs subs et functions dans un même module ; mais pour éviter d'avoir des modules trop longs, tu peux ajouter d'autres modules standards : dans la fenêtre "Microsoft Visual Basic", fais Alt i m pour insérer un module ; après ton 1er module standard Module1, les suivants seront automatiquement nommés successivement Module2, Module3, Module4, etc... :)

soan
Merci!! T
Bonjour Bebzinda, mapomme,



un module n'a rien à voir avec la quadrature du cercle : c'est tout à fait possible de mettre plusieurs subs et functions dans un même module ; mais pour éviter d'avoir des modules trop longs, tu peux ajouter d'autres modules standards : dans la fenêtre "Microsoft Visual Basic", fais Alt i m pour insérer un module ; après ton 1er module standard Module1, les suivants seront automatiquement nommés successivement Module2, Module3, Module4, etc... :)

soan
Merci Pour l'éclaircissement!!!
 

Discussions similaires

Réponses
4
Affichages
471
Réponses
0
Affichages
359

Statistiques des forums

Discussions
315 140
Messages
2 116 689
Membres
112 837
dernier inscrit
Sting