Creer un tableau

Résolu
nono78220 Messages postés 181 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 28 octobre 2010 - 27 déc. 2006 à 15:13
nono78220 Messages postés 181 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 28 octobre 2010 - 15 janv. 2007 à 11:56
Hello,

Bonnes fêtes à tous tout d'abord. Je rappelle que je développe en vb6.
Voici mon code avec les commentaires:

'Procedure calcul amortissement lineaire
Private Sub CalculAmortissement()
'L'amortissement
d'un bien se calcule sur n années à un taux T. Ex: j'amortis un
oridnateur sur 3 ans. Le taux est 100%/3 = 33.33%. Autres ex: j'amortis
un materiel  sur 5 ans. Le taux est 100%/5 = 20%
L'année de l'achat,
le bien s'amortis sur un prorata temporis. Ex: j'achete le bien le'
11/11/2006, je ne peux l'amortir l'année de l'achat que sur 2 mois
(novembre et decembre). LA derniere année de l'amortissement tu
l'amortis sur les mois restants (soit dans cet exemple 10 mois)
Entre ces 2 années, tu l'amortis sur 12 mois.
Dans mon code:
L'amortissement de l'année de l'achat se nomme vntAmortissementPremiereAnnee
L'amortissement de la derniere année se nomme vntAmortissementDerniereAnnee
(vntDuree est la durée de l'amortissement ; vntAnnee est l'année de l'achat)
L'amortissement entre ces 2 années se nomme vntAmortissementMilieu
vntAnneeDebut et vntAnneeFin correspondent aux années d'amortissement sur 12 mois (sans le prorata)
Donc ma boucle do while calcule l'amortissement sur 12 mois pleins sans tenir compte du prorata temporis.

J'aimerais
rendre les résulats sous forme d'un tableau à 2 colonnes: 1 colonne
contenant l'année et dans un 2ème colonne en regard l'amortissement
annuel.

J'y ai réfléchji ce WE et j'ai trouvé cette solution: j'ai incrementé une variable

Mais est ce mieux avec un tableau et comment faire ?

vntAnneeDebut = vntAnnee + 1
vntAnneeFin = vntAnnee + vntDuree - 1
vntDerniereAnnee = vntAnnee + vntDuree

vntAmortissementPremiereAnnee = (vntPrix * vntTaux * vntProrata) / 12
vntAmortissementDerniereAnnee = (vntPrix * vntTaux * (12 - vntProrata)) / 12

dim NONO as string

Do While vntAnneeDebut <= vntAnneeFin
vntAmortissementMilieu = vntPrix * vntTaux
NONO = NONO & vbnewline &  "Année : " & vntAnneeDebut & "Amortissmeent annuel : " & vntAmortissementmilieu & vbnewline
vntAnneeDebut = vntAnneeDebut + 1
Loop
End Sub

5 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
27 déc. 2006 à 17:11
et si tu utilises un tableau dynamique :

Private Sub Command2_Click()
  Dim tabl(vntduree - 1)
  For i = 1 To vntduree
     tabl(i - 1) = vntAnnee + i & " " '& le_resultat_de_tes_calculs_ pour_cette_année
  Next
End Sub

Et si ce que tu appelle un "tableau" est finalement 2 groupes de textboxes içndéxées et s'appelant annee(n) et resultat(n

Private Sub Command3_Click()
  For i = 1 To vntduree
    annee(i-4) = vntAnnee + i
    resultat(i-1) =  le_resultat_de_tes_calculs_ pour_cette_année  
  Next
End Sub
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
27 déc. 2006 à 16:52
Je ne vais pas te donner ta solution, mais juste un exemple dont tu devrais t'inspirer :

Const vntAnnee = 2000
Const vntduree = 5


Private Sub Command2_Click()
  For i = 1 To vntduree
     MsgBox vntAnnee +  i
  Next
End Sub
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
27 déc. 2006 à 17:22
Ah oui !
et si tu veux avoir une chose flexible et que finalement tes paramètres (dont la durée, donc) sont saisis par l'utilisateur, il te faudra créer dynamiquement ton "tableau" afin qu'il contienne le bon nombre de textboxes.

Tu pourras alors peut-être t'insprirer de ce que j'ai écrit là :

http://www.vbfrance.com/codes/DRESSAGE-AUTOMATIQUE-PARAMETRE-GRILLE-TEXTBOXES_40559.aspx
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
27 déc. 2006 à 17:24
gaffe (gros doigts) :
corriger ici
annee(i-4) = vntAnnee + i

par, bien évidemment :
annee(i- 1) = vntAnnee + i
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nono78220 Messages postés 181 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 28 octobre 2010
15 janv. 2007 à 11:56
Merci Jmfmarques.
0
Rejoignez-nous