Bonjour,
Après maintes vaines tentatives de recherche sur la toile ou d’essai avec mes maigres connaissances en VBA, je m’en remets aux experts.
Je vous explique : j’ai besoin d’une formule assez souple pour calculer un délai de récupération (DR, un indicateur financier) qui n’existe pas dans les fonctions Excel. Le résultat à l’arrivée est de la forme « 3 an(s) 234 jour(s) ».
Le principe, c’est de pouvoir sélectionner des cases en lignes, par exemple A1 : D1, il s’agit de la seule variable (cumul de cash flows, actualisés ou non) mais il faut pouvoir sélectionner en ensemble de cellules en ligne et, rien que ça, ça dépasse mes compétences en VBA…
La formule doit effectuer ces actions :
On part du principe DR = 0.
Si la première cellule de l’ensemble est inférieure à 0, on passe à la deuxième cellule, si cette 2ème cellule est négative, on fait DR + 1 … et l’opération se répète à la 3ème cellule, etc. Si la 1ère cellule est 0 ou >0, on a DR = « immédiat ».
Dès que la fonction atteint la première cellule positive, elle enregistre DR temporairement sous X
Ex : Si on a sélectionné les cellules A1 : D1 comme cash flows, et que B1 est positive, alors DR= 0. Si c’est D1 la première positive, on a DR=1.
Pour la précision en jour, on souhaite une estimation linéaire donc la fonction fait ensuite :
(abs(dernière cellule négative)/(abs(dernière cellule négative)+première cellule positive))*365
Elle enregistre le résultat sous Y
Ex : toujours avec le même, si B1 première positive, on aura
abs(A1)/(abs (A1)+B1),
si C1 première positive, on aura
abs (B1)/(abs(B1)+C1)
Résultat, dans le case à la fin, on voit apparaître X an(s) Y jour(s)
Ouf, voilà, c’est compliqué… c’est pour ça que je le fais à la main pour le moment mais ça me prend bien 2 minutes à chaque fois.
Je n’ai aucune idée de comment faire… s’il y a ici des petits génies de la macro, je vous soumets mon problème…
Merci de votre aide,
Arnaud.
Après maintes vaines tentatives de recherche sur la toile ou d’essai avec mes maigres connaissances en VBA, je m’en remets aux experts.
Je vous explique : j’ai besoin d’une formule assez souple pour calculer un délai de récupération (DR, un indicateur financier) qui n’existe pas dans les fonctions Excel. Le résultat à l’arrivée est de la forme « 3 an(s) 234 jour(s) ».
Le principe, c’est de pouvoir sélectionner des cases en lignes, par exemple A1 : D1, il s’agit de la seule variable (cumul de cash flows, actualisés ou non) mais il faut pouvoir sélectionner en ensemble de cellules en ligne et, rien que ça, ça dépasse mes compétences en VBA…
La formule doit effectuer ces actions :
On part du principe DR = 0.
Si la première cellule de l’ensemble est inférieure à 0, on passe à la deuxième cellule, si cette 2ème cellule est négative, on fait DR + 1 … et l’opération se répète à la 3ème cellule, etc. Si la 1ère cellule est 0 ou >0, on a DR = « immédiat ».
Dès que la fonction atteint la première cellule positive, elle enregistre DR temporairement sous X
Ex : Si on a sélectionné les cellules A1 : D1 comme cash flows, et que B1 est positive, alors DR= 0. Si c’est D1 la première positive, on a DR=1.
Pour la précision en jour, on souhaite une estimation linéaire donc la fonction fait ensuite :
(abs(dernière cellule négative)/(abs(dernière cellule négative)+première cellule positive))*365
Elle enregistre le résultat sous Y
Ex : toujours avec le même, si B1 première positive, on aura
abs(A1)/(abs (A1)+B1),
si C1 première positive, on aura
abs (B1)/(abs(B1)+C1)
Résultat, dans le case à la fin, on voit apparaître X an(s) Y jour(s)
Ouf, voilà, c’est compliqué… c’est pour ça que je le fais à la main pour le moment mais ça me prend bien 2 minutes à chaque fois.
Je n’ai aucune idée de comment faire… s’il y a ici des petits génies de la macro, je vous soumets mon problème…
Merci de votre aide,
Arnaud.