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