Flux rss
Rechercher : dans
Par : Mots clés Nom d'utilisateur
Messages sans réponse

Pb: VBA-Calcul emprunt, crédit, annuités....

Elo97133, le dimanche 18 mai 2008 à 14:43:09 
 Signaler ce message aux modérateurs

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:

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..... à vos ordis!! Merci bcp d'avance!

A très bientôt ;-)

Elo

Configuration: Windows XP
Firefox 2.0.0.6

1

michel_m, le dimanche 18 mai 2008 à 16:09:40
  • +1

Bonjour,

Ton texte:
"Je sais qu'il y'a des personnes supers balaises sur ce forum donc..... à vos ordis"

est complètement débile et a l'air de dire: si je n'y arrive pas , c'est qu'il faut être super balaise

d'autre part, on n'est absolument forcé d'être sensible aux fayots.


Bon petit topo sur les variables (pour les détails, c'est dans l'aide microsoft)

Tx est décimal donc le type est single et non integer
Ca ton capital est limité à 32767 si veux aller plus loin :type long
n esst déclaré byte donc limité à 256 soit >=21 ans, si tu veux aller au delà prend un intéger

ta transformation de textbox par la fonction val est sure mais très lourde, fais des essais avec les fonctions de conversion (voir l'aide)

Voilà, utiliser VBA pour un calcul d'emprunt est luxueux les formules suffiraient mais on t'a peut être demandé de le faire par VBA

Michel

Répondre à michel_m

2

Elo97133, le dimanche 18 mai 2008 à 16:27:31

Bonjour Michel,

Ton poste m'a fait sourrire.... Loin de moi cette idée!
C'est juste que je me suis rendue compte que sur ce site.... l'exemple est du coup vérifié.... de nombreuses personnes sont très réactives à toutes les demandes d'aide et répondent dans des temps reccords.
Je n'ai donc pas du tout voulu dire que "si je n'y arrive pas , c'est qu'il faut être super balaise" car comme je l'ai dit je suis novice et n'ai pas du tout peur de dire que je suis un boulet en VBA et que si ça se trouve l'erreur sera ridicule pour la personne qui m'aidera.

"d'autre part, on n'est absolument forcé d'être sensible aux fayots." ... un peu d'humour!!... il ne faut pas voir le mal partout! Quand je vois à la vitesse où je vais, en restant bloquée plusieurs heures sur un problème qu'une personne arrive à résoudre en 10 min... je ne peux alors que dire que je la trouve balaise! loool

En effet, je n'ai pas le choix... on doit rendre ce projet dans le cadre d'un cours....
Merci pour les liens... j'y vais sur le champ!

Merci pour ton aide !

Répondre à Elo97133

3

Elo97133, le dimanche 18 mai 2008 à 16:32:01

Je reviens juste pour mettre l'accent sur quelque-chose.... je pense que le souci vient de c(), a() et i() qui ne sont pas déclarées car lorsque je fais le deboggage il s'arrête dessus.

Que dois-je rajouter pour que le programme soit fonctionnel?

Répondre à Elo97133

4

michel_m, le dimanche 18 mai 2008 à 17:01:41

Le mieux est que tu éxécutes ton prog en pas à pas par la touche F8

tu peux voir la valeur de tes variables en passant la souris (en amont du surlignage jaune) ou en installant l'espion (debogage-ajouter un esion), tu verras ainsi les erreurs
D'autre part, évite au maximum les variables à 1 lettre car on est obligé de se remémorer leur signification lors d'une recherche d'erreur ou une maintenance pourquoi pas ("interet_verse" plutot que "i"?). Un bon prog est d'abord un code prévu pour la maintenance facile.

Répondre à michel_m

5

michel_m, le dimanche 18 mai 2008 à 17:05:34

Le mieux est que tu éxécutes ton prog en pas à pas par la touche F8

tu peux voir la valeur de tes variables en passant la souris (en amont du surlignage jaune) ou en installant l'espion (debogage-ajouter un esion), tu verras ainsi les erreurs
D'autre part, évite au maximum les variables à 1 lettre car on est obligé de se remémorer leur signification lors d'une recherche d'erreur ou une maintenance pourquoi pas ("interet_verse" plutot que "i"?). Un bon prog est d'abord un code prévu pour la maintenance facile.

Répondre à michel_m

6

Elo97133, le lundi 19 mai 2008 à 10:10:57

C'est bon...

Problème résolu...
C'était bien ça, je devais déclarer mes variables a(), c() et i() en tableau.

Dim ca As Long, n As Integer, tx As Single
Dim a(1000) As Single, i(1000) As Single, c(1000) As Single

Parfait ça marche très bien

Merci!

Répondre à Elo97133

7

 lucile, le vendredi 2 janvier 2009 à 14:09:57

Je cherche a faire la même chose que toi mais sans tableau tu crois que c'est possible


ca serais pour géré mes emprunts

Répondre à lucile
Calcul emprunt sur excel Bonjour, Je souhaite faire une étude de ma capacité d'emprunt en partant d'une mensualité souhaité de xxx euros je voudrais connaître le montant de mon emprunt Avec toute ma reconnaissance marcel www.commentcamarche.net/forum/affich-10232941-calcul-emprunt-sur-excel
FORMULE SOUS EXCEL CALCUL ECH CREDIT (Résolu) Bonjour, je dois inserer dans un tableau excel la formule me permettant de trouver l'écheance d'un crédit. j'ai bien trouver des simulateurs, et même la formule mais c son incrementation dans la cellule qui me pose pb apparemment, je dois mettre le nb... www.commentcamarche.net/forum/affich-11284727-formule-sous-excel-calcul-ech-credit
Insérer des formules de calcul par VBA (Résolu) Bonjour, j'ai fais une marco Excel et je cherche à insérer dans certaines colonnes de mon tableau une formule de calcul style: =SI(ET(ESTVIDE(C7);ESTVIDE(B7));"";SI(B7="";C7;SI(C7="";-B7;C7-B7))) comment faire pour la traduire en vba? faut il tout... www.commentcamarche.net/forum/affich-3448030-inserer-des-formules-de-calcul-par-vba
VBA et les collections d'objets.VBA et les collections d'objets Quand plusieurs (beaucoup de) contrôles sont mis sur une feuille ou un Userform il est parfois fastidieux d'écrire du code dans chaque évènement des contrôles. Ce Tuto vous permet de traiter vos contrôles comme... www.commentcamarche.net/faq/sujet-10397-vba-et-les-collections-d-objets
[Excel] Chemin et nom de stockage de feuille de calculIndiquer automatiquement le chemin d'accès (path) et le nom de stockage de toute feuille de calcul Noter dans une cellule (A& par exemple) la formule : =cellule("nomfichier";A1) A chaque sauvegarde et/ou déplacement de fichier dans votre... www.commentcamarche.net/faq/sujet-962-excel-chemin-et-nom-de-stockage-de-feuille-de-calcul
VBA Un timer une seconde tout simpleEn VBA, il n'y a pas (du moins à ma connaissance) de composant Timer. On peut en créer un très facilement. Dans un module de feuille Activer/ dés activer le timer : Placer un bouton sur Feuil1 et mettre le code... Private Sub... www.commentcamarche.net/faq/sujet-10315-vba-un-timer-une-seconde-tout-simple
EMPRUNT USERFORMBONJOUR J'ai réalisé un programme en vba excel relatif à un emprunt à annuité constante. je souhaiterai dans mon programme à l'aide d'un userform afficher les résultats dans une LISTBOX et sur ma feuille de calcul. En vain cela dépasse mes... www.commentcamarche.net/forum/affich-8590248-emprunt-userform
Excel amortissement empruntBonjour, c urgent je dois faire un tableau amortissement emprunt ou il y a une colonne echeance, je dois utiliser la fonction ligne() et si pour qu s'affiche que le nombre de ligne d'echeance. le nombre echeance=durée de l'emprunt*périodicité. merci... www.commentcamarche.net/forum/affich-4467710-excel-amortissement-emprunt
Script de calcul ne marche que sur IEBonjour, J'ai trouvé un petit script de calcul mais j'ai 2 problèmes : le 1er : il ne fonctionne que sur IE, et j'aimerais si s'est possible qu'il fonctionne sur tous les navigateurs. le 2eme : quand on change la valeur du transport le prix total ne... www.commentcamarche.net/forum/affich-12211456-script-de-calcul-ne-marche-que-sur-ie
Télécharger Calcul de prêtCalcul de prêt est un logiciel Freeware qui permet de calculer les caractéristiques d'un prêt ou d'un emprunt. L'application est capable de déduire pour vous différentes inconnues, selon les données en votre possession. Calcul de prêt vous donnera le... www.commentcamarche.net/telecharger/telecharger-34057835-calcul-de-pret
Télécharger Simulateur d'Emprunt à taux constantNous n’avons pas toujours la chance d’avoir notre gestionnaire de compte bancaire disponible à tout moment ou au bout de fil pour une simulation de crédit. Pourquoi perdre du temps ? Effectuez la simulation vous-même ! Impossible, dites-vous ? Ce... www.commentcamarche.net/telecharger/telecharger-34056654-simulateur-d-emprunt-a-taux-constant
Télécharger Home Credit Card ManagerHome Credit Card Manager est une application de comptabilité. Il permet de gérer ses comptes bancaires et d'enregistrer toutes les dépenses par catégorie. Il suffit d'entrer les opérations de crédit pour une période donnée et toutes les transactions... www.commentcamarche.net/telecharger/telecharger-34057429-home-credit-card-manager
Tableur - Les feuilles de calculLa notion de feuille de calcul Un tableur présente les données et les formules sous forme d'un tableau (lignes et colonnes) appelé feuille de calcul. Une feuille de calcul est constitué de lignes (numérotées à l'aide de chiffres) et de colonnes... www.commentcamarche.net/contents/tableur/tabfeuille.php3
Opérations de calculOpérations calculatoires Les opérateurs de calcul ne sont pas des opérations dérivées dans la mesure où ils ne peuvent pas être exprimés à l'aide des opérateurs de base. Ils permettent néanmoins de faire des opérations très utiles (parfois... www.commentcamarche.net/contents/relation/opcalc.php3