Bonjour,

J'ai créé une fonction me permettant de calculer les soldes restants dus :

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
 
 
Function SRD(ByVal Capital As Double, ByVal taux_banque As Double, ByVal per As Integer, ByVal Duree As Integer, ByRef St As Variant)
 
 
    Dim Bs(999) 'Initialisation de la matrice des soldes restant du
    'Indice de calcul
    Dim i As Integer, j As Integer
 
    'Calcul du taux périodique
    tx_p = (1 + taux_banque) ^ (1 / per) - 1
 
    Bs(0) = Capital
 
    'Calcul des soldes restants dûs périodiques
    For i = 1 To per * Duree
        Bs(i) = Bs(i - 1) - (Capital * tx_p / (1 - (1 + tx_p) ^ (-Duree * per)) - tx_p * Bs(i - 1))
    Next
    '// Fin du calcul
 
 
    'Calcul du solde restant dû annuel
    For i = 0 To Duree - 1
 
        For j = i * per To per * (i + 1) - 1
 
            St(i) = St(i) + Bs(j) / per
 
        Next
 
    Next
    '// Fin du calcul
 
End Function
J'ai un problème quand j'essaye de l'appliquer comme suit :

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
 
 
Sub essai()
 
Dim P(100)
 
For i = 2 To 100
    P(i) = SRD(12500000, 0.035, 12, 3, 1000000)
 
    MsgBox P(i)
Next i
 
End sUB
 
Incompatiblité de type ! 
 
La fonction est bien correcte mais je crois que je m'y prends mal à l'application, merci d'avance pour votre aide
 
Cordialement