Calcul de VPM avec VC

cs_chris tuckers 137 Messages postés jeudi 8 septembre 2005Date d'inscription 7 mars 2008 Dernière intervention - 29 mars 2006 à 18:24 - Dernière réponse :  Hugo
- 26 janv. 2018 à 12:43
Bonjour tout le monde.
J'ai une question très très difficile !!! Avis aux amateurs de mathématiques !!

Je cherche à reproduire la fonction VPM d'Excel en php, mais avec une VC (ou valeur résiduelle) soit :

SI(Montantfinancé"";"";VPM(TEG/12;nbrprelevement;montantfinancé;-VC))

Merci a tous ceux qui vont se casser la tete !!
chris tuckers, l'as de coeur
Afficher la suite 

Votre réponse

9 réponses

malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 30 mars 2006 à 09:53
0
Merci
Hello,

je ne suis ni doué en math, ni avec Excel...donc, si tu pouvais expliquer ce que fait cette fonction, on pourrait toujours essayer de coder l'algo en php :-)
Commenter la réponse de malalam
cs_chris tuckers 137 Messages postés jeudi 8 septembre 2005Date d'inscription 7 mars 2008 Dernière intervention - 30 mars 2006 à 10:18
0
Merci
Alors attention c'est compliquer quand même .

Je souhaite calculer un loyer, j'ai donc un montant financé, que l'on va appelé MF
Une durée : on va l'appelé D
un taux, on va l'appelé T
une valeur capitalisé que l'on appelle VC. La VC signifie qu'une fois que je revendrais mon materiel, il sera au prix de VC.
et le montant du loyer que l'on appellera L

en fait j'arrive a calculer mais sans la VC ce qui ferait : (MF*(T/100))/D=L

En gros ce que je veux c'est que le montant total des loyers + VC = montant financé.

Vous avez compris ????
chris tuckers, l'as de coeur
Commenter la réponse de cs_chris tuckers
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 30 mars 2006 à 11:05
0
Merci
Oula, j'ai cherché sur internet...l'algo est très complexe!
Je me pencherai peut-être dessus plus tard, mais pour le moment, pas le temps, désolé!
Commenter la réponse de malalam
cs_chris tuckers 137 Messages postés jeudi 8 septembre 2005Date d'inscription 7 mars 2008 Dernière intervention - 30 mars 2006 à 11:07
0
Merci
ok tu as réussi a trouver des algo ??? moi j'en ai trouvé aucun !! a chaque la VC n'est pas dans le calcul, pourrais tu m'indiquer tes sources s'il te plait ?

chris tuckers, l'as de coeur
Commenter la réponse de cs_chris tuckers
Commenter la réponse de malalam
cs_chris tuckers 137 Messages postés jeudi 8 septembre 2005Date d'inscription 7 mars 2008 Dernière intervention - 30 mars 2006 à 11:26
0
Merci
ok merci je vais continuer a reflechir mais bon, ca a pas l'air d'etre facile !!

chris tuckers, l'as de coeur
Commenter la réponse de cs_chris tuckers
cs_christuckers 75 Messages postés jeudi 27 juillet 2006Date d'inscription 26 mars 2010 Dernière intervention - 26 juil. 2010 à 11:41
0
Merci
Pour info : fonction VPM simple en terme echu :

<?php
function CalculVPM($mensualite, $pourcent_annuel, $prix) {
$t_mensuel=($pourcent_annuel/12)/100;
$R=(1-pow((1+$t_mensuel),-$mensualite))/$t_mensuel;
$VPM=(($prix)/$R);
return $VPM;
}
function Calcul2VPM($mensualite2, $pourcent_annuel2, $prix2) {
$tmensuel2=$prix2*(($pourcent_annuel2/12)/100)/(1-pow((1+$pourcent_annuel2/12),-($mensualite2)));
}
$mensualite=48; //exemple
$pourcent_annuel=5.45;//exemple
$prix=93600;//exemple
$mensualite2=48;//exemple
$pourcent_annuel2=5.45;//exemple
$prix2=93600;//exemple

$cout_mensuel=sprintf ("%.2f",CalculVPM($mensualite,$pourcent_annuel,$prix));

print ("pour $prix € au tx annuel de $pourcent_annuel %, sur $mensualite mois, vous rembourserez par mois $cout_mensuel € pour un montant total de ".$cout_mensuel * $mensualite.")");
echo "
";
$cout_mensuel2=sprintf ("%.2f",Calcul2VPM($mensualite2,$pourcent_annuel2,$prix2));

print ("pour $prix2 € au tx annuel de $pourcent_annuel2 %, sur $mensualite2 mois, vous rembourserez par mois $cout_mensuel2 € pour un montant total de ".$cout_mensuel2 * $mensualite2.")");

?>
Commenter la réponse de cs_christuckers
0
Merci
function vpm($taux, $npm, $va, $vc = 0, $type = 0){
if(!is_numeric($taux) || !is_numeric($npm) || !is_numeric($va) || !is_numeric($vc) || !is_numeric($type)):
return false;
endif;

if($type > 1|| $type < 0):
return false;
endif;

$tauxAct = pow(1 + $taux, -$npm);

if((1 - $tauxAct) == 0):
return 0;
endif;

$vpm = ( ($va + $vc * $tauxAct) * $taux / (1 - $tauxAct) ) / (1 + $taux * $type);
return -$vpm;
}
Commenter la réponse de elbazz
0
Merci
Bonjour ici. j’ai travaillé sur un projet qui nécessitait du calcul de VPM, j’ai utilisé la méthode de calcul de la VPM en php décrite plus haut.
Constat : les valeurs trouvées étaient inférieures aux valeurs trouvées lorsqu’on fait directement le calcul avec mes paramètres dans excel. Alors après des recherches je suis tombé sur un une librairie Javascript reprenant un ensemble de fonctions financières utilisées dans le cadre d’emprunt ou de de placement.

Voici le lien
https://github.com/vinnyroundfoot/Hypo-js

J’ai du traduire le code javascript en php

Voici l’exemple

private function arrondi($m, $dec)
{
$montantArrondi = $m;
if (ctype_digit ($dec) && intval($dec, 10))
{
$r = pow(10, $dec);
$montantArrondi = round($m * $r)/$r;
}
return $montantArrondi;

}

private function VPM($Kd, $n, $t, $dec)
{

if ($n == 0) {
return 0;
}

if ($t == 0) {
return $this ->arrondi($Kd / $n, $dec);
}
return $this ->arrondi($Kd * $t / (1 – pow(1 + $t, -$n)), $dec);
}

Kd = Capital en début de période
n = Nombre de période
t = taux
dec représente le nombre de chiffre après la virgule
Commenter la réponse de Hugo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.