Bonjour,
Je vous sollicite aujourd'hui pour un problème qui est sans doutes plus mathématique que de développement.
Je suis en train de développer un petit logiciel ayant attrait à la gestion locative.
Pour ce faire, l'utilisateur va renseigner différents champs créé dynamiquement dont les suivants :
Le montant du loyer (ChpAjtLoyLog())
De combien de mois le premier mois de loyer est décalé ([i]ChpDecalLoyer()[i/])
L'indice de révision annuel des loyers (TextBox_EvolIRL)
Je dois remplir la 6ème colonne d'un tableau (nommé matrice()) avec le montant total des loyers perçus.
Par exemple :
Le projet commence au 1er janvier 2017 (TextBox_DateDeb)
Le logement n°1 a un loyer de 100€ dont le premier loyer est décalé de 3 mois
Le logement n°2 a un loyer de 200€ dont le premier loyer est décalé de 1 mois
L'indice annuel de révision des loyers est de 0,5%.
Ainsi, j'aimerai que mon tableau (matrice) soit complété comme suit :
matrice(5,0) : 0 dans tous les cas (là dessus, aucun soucis)
matrice(5,1) : 0
matrice(5,2) : 200 (logement n°2)
matrice(5,3) : 200 (logement n°2)
matrice(5,4) : 300 (logement n°1+n°2)
matrice(5,5) : 300 (logement n°1+n°2)
...
matrice(5,13) : 200+0.5%+100 = 301 (logement n°2+0.5% +logement n°1)
matrice(5,14) : 200+0.5% + 100+0.5% = 301.5 (logement n°2+0.5% +logement n°1+0.5%)
matrice(5,15)=301.5 (idem)
...
matrice(5,25) : 200*(1+(0,5%))^2 + 100*0.5% = 302.005 (logement n°2+0.5%*2 +logement n°1+0.5%)
matrice(5,26) : 200*(1+(0,5%))^2 + 100*(1+(0,5%))^2 = 303.0075 (logement n°2+0.5%*2 +logement n°1+0.5%*2)
...
Sachant que le nombre de logement total est contenu dans la variable contLogmt, et que la première colonne de mon tableau (matrice()) contient les dates, à interval mensuel demarrant à la valeur de TextBox_DateDeb.
J'ai réussis à remplir la 6ème colonne de mon tableau en décallant les premiers loyers comme l'avait renseigné l'utilisateur en utilisant le code ci-dessous :
Pour l'instant, j'arrive seulement à augmenter le montant des loyers de l'indice de révision à chaque 1er janvier, (mais pas à la date "anniversaire" du premier loyer payé pour chacun des logement). Pour ce faire, j'utilise le code suivant :
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 Dim decaLoyer As Integer Dim DateMatrice As Date Dim DateDebutLoyers As Date Dim loyercourant As Integer For b = 1 To contLogmt decaLoyer = ChpDecalLoyer(b).Text DateMatrice = TextBox_DateDeb.Text DateDebutLoyers = DateAdd(DateInterval.Month, decaLoyer + 1, DateMatrice) For a = 1 To 360 DateMatrice = DateAdd(DateInterval.Month, 1, DateMatrice) If DateMatrice >= DateDebutLoyers Then loyercourant = ChpAjtLoyLog(b).Text matrice(5, a) = matrice(5, a) + loyercourant End If Next Next
Je sollicite donc votre aide pour arriver à calculer cette valeur de façon plus juste, à chaque "anniversaire" du premier loyer payé pour chacun des logements.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim temps As Integer For a = 1 To 360 temps = Year(matrice(0, a)) - Year(matrice(0, 1)) If temps >= 1 Then temps = temps - 1 matrice(5, a) = matrice(5, a) * (1 + TextBox_EvolIRL.Text / 100) ^ temps Next
Merci d'avance pour votre aide.
Partager