Function calcul evolution

Ortnext

XLDnaute Nouveau
Bonnjour à tous, j'ai crée une fonction qui me permet de calculer l'évolution entre deux montants, cependant la valeur ne s'affiche pas quand j'essaye de l'executer.


Public Function Evolution(aAmountBef As Double, aAmountAft As Double) As Double
Dim res As Double
res = ((aAmountAft - aAmountBef) / aAmountAft) * 100
Evolution = res
End Function

Voila. Merci de votre réponse.
 

Ortnext

XLDnaute Nouveau
Re : Function calcul evolution

Sais tu comment je peux faire un arrondi dans mon fonction?
C'est quand même bizarre que ca marche car je lui passe un Range en paramètre alors que j'ai déclarer un Double. Et pourtant quand je change en Range ca ne marche pas.
 

tototiti2008

XLDnaute Barbatruc
Re : Function calcul evolution

Bonjour Ortnext, Bonjour chasseur,

Si, ça marche avec des Range aussi, mais dans la mesure où c'est la valeur des cellules qui t'intéresse (et pas d'autres propriétés des objets cellules), tu as autant rester avec des Double

La fonction round permet d'arrondir au plus proche

exemple, en mettant les Range pour montrer que ça fonctionne

Code:
Public Function Evolution(aAmountBef As Range, aAmountAft As Range) As Double
Dim res As Double
res = Round(((aAmountAft - aAmountBef) / aAmountAft) * 100, 2)
Evolution = res
End Function
 

Ortnext

XLDnaute Nouveau
Re : Function calcul evolution

Une dernière question, je suis un peu pointilleux mais j'aimerais avoir le signe % avec mon résultat,
J'ai beau essayé de le callé derrière mais ca ne marche pas.
Est-ce possible de le mettre dans res alors que je l'ai déclarer en double?
 

tototiti2008

XLDnaute Barbatruc
Re : Function calcul evolution

Re,

Le format pourcentage est un fomat de cellule
une fonction ne renvoie qu'une valeur, à toi de formater la cellule pour que la valeur s'affiche comme tu le souhaites
sinon, on peut renvoyer un texte comme résultat qui contiendra le signe "%" à la fin mais tu ne pourra pas faire de calculs avec
 

tototiti2008

XLDnaute Barbatruc
Re : Function calcul evolution

Re,

Oui, c'est ce que j'ai essayé de t'expliquer
Ce n'était pas clair, donc ?
Aucune fonction Excel ne permet de formater une cellule, celles que tu programmes en VBA pas plus que les autres
A toi de formater la cellule au format pourcentage (et enlever le * 100 dans ta fonction Evolution) mais tu ne peux pas demander à la fonction de le faire
 

Discussions similaires

Réponses
1
Affichages
539

Statistiques des forums

Discussions
312 493
Messages
2 088 952
Membres
103 989
dernier inscrit
jralonso