TABLEAU D'AMORTISSEMENT D'UN EMPRUNT

trabi11fr Messages postés 40 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 décembre 2008 - 19 déc. 2008 à 23:10
 La saucisse masquée - 13 juin 2017 à 14:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/16592-tableau-d-amortissement-d-un-emprunt

La saucisse masquée
13 juin 2017 à 14:58
Merci Beaucoup :)
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
23 déc. 2008 à 10:13
comme perso je n'y comprend pas grand chose non plus,
et encore moins sur ces formules financières ;o)
trabi11fr Messages postés 40 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 décembre 2008
22 déc. 2008 à 20:11
Bonne idée, j'aurai du y penser avant.;-((((
Merci pour le mal que tu te donnes avec moi......
Excuse moi d'être aussi pinailleur, surtout pour quelqu'un qui n'y connait pas grand chose...;-))

@++
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
22 déc. 2008 à 16:00
teste le résultat et si c'est négatif...
n'imprime pas ou met 0, ou ... ce que tu veux
@+
trabi11fr Messages postés 40 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 décembre 2008
22 déc. 2008 à 15:42
YES.!!!
maintenant ça fonctionne.!!
Je ne peux pas juger de la "propreté" de ton code car je ne suis pas un grand spécialiste (je suis plutôt un "script raider".;-)).
Peut-on éviter le reste en fin de calcul qui donne une valeur négative?
************
Mois Année Echéance Principal Intérêts Reste Payé
11 3 35 1630.40 13.07 1636.74 57521.45
12 3 36 1636.92 6.55 -0.18 59164.92
55000.18 4164.74 59164.92
***********
Pour ce calcul :
somme 55000
année 3
taux 4.8

Je sais, je cherche la petite bête.....
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
22 déc. 2008 à 13:15
alors surtout ne me demande pas pourquoi
avec IE, ça ne fonctionne pas ! les
document.write ne doivent pas lui plaire ?
( pas trouvé, mais pas cherché beaucoup ! )

j'ai donc
ajouté devant la balise <html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

remplacé les document.write par impr+=
et ajouté un var impr="" en tête

var impr="";
impr+=("\");

en fin de script ajouté le print...
ça doit baigner

le plus simple (?) je te met la source :

======================================
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html>
<head>
<title>prêts</title>
<script type=\"text/JavaScript\">

function Mef(valeur)
{ dec=\" \"+Math.floor(valeur*100)/100;
i=dec.lastIndexOf(\".\");
if (i!=(dec.length-3)) {
if (i<0) { dec=dec+\".00\"; } else {
if (i>(dec.length-2)) { dec=dec.substring(0,i+2); }
else { z=\"00\";
dec=dec+z.substring(0,dec.length-i-1); }}}
if (dec.length>12) { dec=dec.substring(0,11); }
else { if (dec.length<12) { b='';
for (z=0;z<=12-dec.length;z++) b=b+\" \";
dec=b+dec; } }
return dec; }

function Calcul() {
Af=document.Saisie.Montant.value;
if (Af<1) alert (\"montant du prêt erroné\"); else {
Y=document.Saisie.Duree.value;
if (Y<1 || Y>35) alert(\"Durée erronée\"); else {
Nf = Y * 12;
Ir=document.Saisie.Taux.value;
if (Ir<1 || Ir>20) alert(\"Taux erroné\"); else {
Rf = (Ir / 1200);
P1 = Af * ( Rf / ( 1 - ( 1 / ( Math.pow ( ( 1 + Rf ), Nf ) ) ) ) ) ;
Pf = Math.floor ( ( P1 + 0.005 ) * 100) / 100 ;
impr+=(\"Prêt de \"+document.Saisie.Montant.value+\"? sur \"+document.Saisie.Duree.value+
\" ans, au taux de \"+document.Saisie.Taux.value+\"% => Echéances de \" + Pf + \"? par mois
\");
Amort=new Array();
Amort[0,1] = Af;
Cp=0;
Ci=0;
var impr=\"\";
impr+=(\"<table border=0>\");
impr+=(\"----
Mois |Année |\");
impr+ =(\" Echéance |\");
impr+= (\" Principal |Intérêts |\");
impr+ =(\" Reste |Payé |\");
for ( I= 1 ; I <= Nf ; I++ ) {
Amort[I, 2] = Amort[I - 1, 1] * Rf;
Amort[I, 2] = Math.floor((Amort[I, 2] + 0.005) * 100) / 100;
Amort[I, 1] = Amort[I - 1, 1] - Pf + Amort[I, 2];
Amort[I, 1] = Math.floor ( ( Amort[I, 1] + 0.005 ) * 100 ) / 100;
T1 = I - Math.floor ( ( I - 1 ) / 12 ) * 12;
T2 = 1 + Math.floor ( ( I - 1 ) / 12 );
impr+=(\"----
"+T1+", \");
impr+=(\" "+T2+", \");
impr+=(\" "+I+", \");
impr+=(\" "+Mef(Pf - Amort[I, 2])+", \");
impr+=(\" "+Mef(Amort[I,2])+", \");
impr+=(\" "+Mef(Amort[I, 1])+", \");
impr+=(\" "+Mef(Pf * I)+", \");
Cp = Cp + Pf - Amort[I, 2];
Ci = Ci + Amort[I, 2];
}
Cp = Math.floor((Cp + 0.005) * 100) / 100;
Ci = Math.floor((Ci + 0.005) * 100) / 100;
impr+=(\"----
, , , \");
impr+=(\" "+Mef(Cp)+", \");
impr+=(\" "+Mef(Ci)+", \");
impr+=(\" , \");
impr+=(\" "+Mef(Cp+Ci)+", \");
impr+=("
");
document.body.innerHTML+=impr;
window.print();
}}}}
</script>
</head>

<center>
Montant

du prêt |
Durée en

années
|
Taux

Entiers . Décimales
|

----
<form name =\"Saisie\" method=\"post\"
action=\"javascript:Calcul();\">
|
|
|
|</form>

</html>

je me rends compte, que j'ai totalement
modifé cela chez moi, et qu'il reste ici
des choses "pas bien", dès que je prends
le temps je mettrais une version ( un
peu plus ) propre
mais j'ai paré au plus vite...
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
22 déc. 2008 à 12:53
ah... je viens de contrôler...
tu dois utiliser IE !
effectivement, il doit rester un zouzou avec lui
avec les autres navigateurs, ça baigne
je regarde et te dis.
@+
trabi11fr Messages postés 40 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 décembre 2008
22 déc. 2008 à 12:42
Ben non. J'avais déjà essayé et ça ne fonctionne pas. On obtient bien l'affichage à l'écran mais c'est tout.
Le seul moyen d'imprimer reste "Fichiers / Imprimer" mais ce n'est pas très "pratique".
J'ai essayé d'inserer un bouton pour imprimer, mais toute modification ou ajout dans le code provoque son plantage.
Ce qui rend impossible une "personnalisation" de l'affichage des résultats (fond couleur, logo en tête,etc..). J'ai tout juste pu centrer le tableau dans la page. Seule l'affichage de départ peut être personnalisé (la partie html du code).
Dommage car c'est un très bon code pour les calculs....

@+.;-)))
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
22 déc. 2008 à 11:47
juste derrière le dernier document.write
...
document.write("</table>");
window.print();
}}}}
</script>
...
@+
trabi11fr Messages postés 40 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 décembre 2008
22 déc. 2008 à 11:17
Euh? oui? où ça alors? Parce que j'avais déjà essayé de le placer en différents endroits fin de script et ça n'a jamais fonctionné.:-((((
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
22 déc. 2008 à 08:55
très bien... mais j'ai répondu n'importe quoi,
l'alcool sans doute, soit trop, soit pas
encore ma dose....
window.print c'est imprimer la page, pas une
ligne, donc ce que je te suggérais ne peut pas
fonctionner.
fais plus simplement ce print en fin de script.
@+
trabi11fr Messages postés 40 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 décembre 2008
20 déc. 2008 à 18:18
Merci pour ta réponse.
C'est la deuxième solution qui m'intéresse.;-))))
Je vais l'essayer.
@+
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
20 déc. 2008 à 08:20
merci.
soit tu utilises le menu de ton navigateur : Fichiers / Imprimer,
soit tu remplaces les document.write par des window.print,
[ en remplaçant les table/tr/td... pour la mise en forme à
l'écran par des espaces pour le "cadrage" à l'imprimante
si nécessaire ]
@+
trabi11fr Messages postés 40 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 décembre 2008
19 déc. 2008 à 23:10
excellent script, mais comment obtenir le résultat sous forme imprimé?
Ou tout au moins pouvoir l'imprimer à partir d'un bouton?
J'ai fait plusieurs essais mais je n'ai rien trouvé. Je ne suis pas très doué....
Merci
Rejoignez-nous