Bonjour,

Je suis novice en VBA et j'ai un petit souci sur ma programmation.
Je souhaite en effet que l'utilisateur entre le montant du capital emprunté, son taux d'intérêt, le nombre d'années de l'emprunt ainsi que le coût de son assurance pour pouvoir calculé le coût total de son emprunt.

Je pense que l'algorithme est bon mais en fait j'ai un problème de déclaration de variables je crois pour a(), i(), c()...
Il ne voit pas ce que c'est...

Comment dois-je faire?
Je vous envoie toute ma programmation car je ne suis pas non plus certaine que l'erreur vienne de ça:

Voici la programmation:
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
Sub CommandButton1_Click()
 
'Aquisition des informations
Dim ca As Integer, n As Integer, tx As Integer
 
ca = Val(TextBox1) 'Capital emprunté (Euros)
n = Val(TextBox2) 'Nombre de périodes (en mois)
tx = Val(TextBox3) 'Taux fixe d'emprunt (%)
If tx = 0 Then tx = 0.0000001
txm = tx / 100 / 12
 
'Amortissement le 1er mois
a(1) = ca * txm / ((1 + txm) ^ n - 1)
 
'Intérêt 1er mois
i(1) = ca * txm
 
'somme prélevée mensuelle
pr = i(1) + a(1)
 
'Début de la boucle du tableau d'amortissement
'Le tableaux c() contiendra le capital restant dû période après période (mois après mois) en euros.
'Le tableaux i() contiendra les intérets filés à la banque sur chaque période, en euros
'Le tableaux a() contiendra le capital remboursé sur chaque période, en euros.
c(1) = ca
totalint = 0
 
For xx = 2 To n
c(xx) = c(xx - 1) - a(xx - 1)
i(xx) = c(xx) * txm
a(xx) = pr - i(xx)
totalint = totalint + i(xx)
Next xx
 
derr = a(n) - c(n)
a(n) = c(n)
i(n) = i(n) + derr
 
If tx = 0.000001 Then
i(1) = 0
For xx = 2 To n
a(xx) = c(1) / n
i(xx) = 0
c(xx) = c(xx - 1) - a(xx)
Next xx
totalint = 0
derr = 0
a(n) = c(n)
End If
 
totalint = totalint + i(1) + derr
 
 
'Affichage du résultat
Label6 = Int(totalint * 100 + 0.5) / 100 'Total des intérets
 
 
 
'Création de deux OptionBox : Option1 et Option2
'On ne testera que Option1 qui cochée permet d'indiquer au programme
'le prix de l'assurance par période (Euros/mois) si l'on coche Option1
'le prix de l'assurance en % du capital si l'on coche l'Option2
 
If OptionButton1.Value = True Then
TextBox5 = Int((Val(TextBox4) * 100 / Val(TextBox1)) * 100) / 100
'On a donné le prix de l'assurance par période
'Affichage pour information en % du capital
Else
TextBox4 = Int((Val(TextBox5) / 100 * Val(TextBox1)) * 100) / 100
'On a donné le prix de l'assurance en % du capital
'Affichage pour informationpar de ce prix par période
End If
 
'Affichage des résultats
Label10 = Val(TextBox4) * Val(TextBox2) 'Assurance totale à payer
Label13 = Int((pr + Val(TextBox4)) * 100 + 0.5) / 100 'Echéance mensuelle
 
Label15 = Val(Label10) + Val(Label6) 'Cout total du crédit, assurance et intérets compris.
 
 
End Sub
Je sais qu'il y'a des personnes supers balaises sur ce forum donc ... je vous serais très reconnaissante d'y jeter un oeil ou deux!! Merci bcp d'avance!

A très bientôt
Elo