Forum Clubic

VBA: créer une fonction sum

Salut
J’ai un petit problème! Je dois créer une fonction somme dans VBA (je sais que la fonction somme existe déjà dans excel, mais mon prof veut que l’on fasse ça)
J’ai tapé dans VBA:

Function maFonction(x As Double)
maFonction=worksheetfunction.sum(x)
End Function

Et quand je tape: maFonction(A1:A7) dans excel, ça ne marche pas!!

Je pense que c’est le x qui ne va pas! mais je ne sais pas quoi mettre!
Merci de m’aider! je ne comprend rien à VBA!

quand je tape: maFonction(A1:A7)
si tu tapes quelque chose dans une cellule et que tu attends une valeur en retour, il faut mettre un ‘=’
=maFonction(A1:A7)

Function maFonction(x As Double)
D’après l’exemple que tu donnes, ton argument est une plage de cellules (c’est normal).
Il est donc du type Range et non pas double comme tu l’as écrit.
Par contre, tu dois préciser le type de valeur que doit retourner ta fonction, et là ça doit être un double
Function maFonction(x As Range) as double

maFonction=worksheetfunction.sum(x)
A vérifier, mais je ne suis pas sûr qu’il ne faille pas utiliser la forme
maFonction=application.worksheetfunction.sum(x)

Mais si j’étais à la place de ton prof, tant qu’à faire faire du VBA, ce que j’attendrais comme réponse c’est la réécriture de la fonction Sum :
MaFonction=0
Dim c as Range
for each c in x
MaFonction = MaFonction+c
next

Merci BEAUCOUP de ton aide, maintenant tout marche bien!!