Bonjour , voilà j'ai un tableau "grid" et bon en fait j'utilise des fonctions interestpayment et periodpayment, je voudrais faire en sorte que l'incrementation de ma 'period'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
result:= periodpayment (rate,period,nperiods,presentvalue,capital,ptstartofperiod);
se fasse via l'incrementation des cellules ex: celule 1 de la colone 2 = period =1, celule 2 colone 2 = period = 2 etc ...
si vous pouviez m'orienter un peu ca serait bien sympathique
voici le code complet du grid ... je dois dire que je suis bien bloqué là ... car mon tableau d'amortissement ne sera jms correct en utilisant cette façon de faire ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
procedure InitGridM();
var
 
i : integer;
 
montant,montant1:extended;
mens,mens1:extended;
annuite_annuelle,annuite_annuelle1,
annuite,annuite1,annuite_int,annuite_int1,annuite_cap:extended;
percent,percent1:extended;
res,res1,res2,res3,res4,res5:extended;
du,du1:extended;
test,test1,test3:extended;
rate,presentvalue,futurevalue,capital,rate2,presentvalue2,futurevalue2,capital2:extended;
nperiods,nperiods2,period :integer;
result,result2,result3,result4,result5,rep,rep2:extended;
 
 
begin
 
 
 
 
montant1:= strtofloat (form4.montant1.text);
mens1:= strtofloat (form4.primemens1.Caption);
du1:= strtofloat (form4.duree1.text)*12;
percent1:= strtofloat (form4.pourcentage1.Text)/100;// inretet concept30/100
nperiods:=strtoint (form4.nombre_mens.text);// nombre de période
period:=strtoint (form4.num_mens.text);// numéro de la période
rate:=strtofloat(form4.pourcentagetb.Text);//interet composé ex: 0,004074%
presentvalue:=strtofloat(form4.cap_rembourse.Text);//capital déjà remboursé.
futurevalue:= strtofloat(form4.emprunt_total.Text);//montant total du credit interet compris.
capital:= strtofloat(form4.capital_emp.text);//montant emprunté.
rep:= strtofloat(form4.mens.Text);//montant mensualité.
 
//------
 
//Calculs
res1:=power(1+percent1,(1/12))-1;
res3:= roundto(mens1*du1,-4);// couttotal concept30
res5:= (res3-montant1);// montant des interets cooncept30
result:= periodpayment (rate,period,nperiods,presentvalue,capital,ptstartofperiod);//capital OK! enfin différence de 3€ voir avec giova
result2:=interestpayment (rate,period,nperiods,capital,futurevalue,ptstartofperiod);//interet => OK!
result3:= (abs(result))+(abs(result2)); //mensualité en additionnant l'interet et le capital.
result4:= (abs(result))-(abs(rep)); //mensualité en soustrayant capital et mensualité => OK! enfin pas sur ...
result5:= (abs(result))-(abs(rep));// partie de capital
//--------
//Nom des colonnes :
  form4.TM.Cells[0,0] := 'M';
  form4.TM.Cells[1,0] := 'Capital Initial';
  form4.TM.Cells[2,0] := 'Intérêts';
  form4.TM.Cells[3,0] := 'Capital';
  form4.TM.Cells[4,0] := 'Mensualité';
 
  Grid := form4.TM;
 
  for i:=1 to grid.RowCount do      //Initialisation de la première colonnes (nbr d'année)
  begin
    form4.TM.Cells[0,i] := inttostr(i);
  end;
     for i:=1 to grid.RowCount do
    begin
//  form4.ta.cells[1,i]:= inttostr(strtoint(form4.montant.text)- (m));
 
  form4.TM.Cells[1,i]:= floattostr(roundto((montant1 + (i-1)*result),-2));
  end;
 
 
    for i:= 1 to Grid.rowcount do      //Initialisation de la 2ieme colonnes (nbr d'année)
  begin
   form4.TM.cells [2,i] := floattostr(abs(roundto(( result4 + (i-1)),-2)));
 
  end;
    for i:= 1 to Grid.RowCount do      //Initialisation de la 3ieme colonnes (nbr d'année)
  begin
    form4.TM.Cells[3,i] := floattostr(abs(roundto(( result - (i-1)),-2)));
  end;
    for i:= 1 to Grid.RowCount do      //Initialisation de la 4ieme colonnes (nbr d'année)
  begin
    form4.TM.Cells[4,i] := floattostr(mens1);
  end;
 
end;
merci d'avance ..