1 pièce(s) jointe(s)
Tableau d'amortissement VBA
Bonjour à tous,
Je souhaite créer un tableau d'amortissement en VBA (type actuariel, c'est-à-dire que l'amortissement doit être recalculé à la fin de chaque mois) et je me retrouve avec le code suivant (et une erreur de syntaxe avec la ligne en gras) :
avec C11 : date de valeur (début de l'amortissement)
C12 : date d'échéance (fin de l'amortissement)
Code:
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
| Sub Amortissement()
i = 0
With Sheets("liste des opérations")
Set plage_amort = Range(.[A8], .[A8].End(xlDown))
'demander à lutilisateur le numéro dopération à amortir
operation = InputBox("Veuillez entrer le numéro d'opération à amortir", "Amortissements")
'vérification de lexistence du numéro dans la liste des opérations disponibles
For Each cell In plage_amort
If cell.FormulaR1C1 = operation Then i = i + 1
Next cell
If i = 0 Then MsgBox ("Cette opération n'existe pas")
If i <> 0 Then
Sheets("tableau d'amortissement").Select
Range("C5").Select
ActiveCell.FormulaR1C1 = operation
With Sheets("tableau d'amortissement")
.[B16].FormulaR1C1 = .[C11]
'calculer le nombre de mois entre la date déchéance et la date de valeur
compteur = (.[C12] - .[C11])/30
'commencer léchéancier à la cellule B17 jusqua echeance
For j = 17 To compteur
.[B&j] = [date(year(B&(j-1)),month(B&(j-1))+1,Day(B&(j-1))]
Next j
End With
End If
End With
End Sub |
J'obtiens une erreur type 424, il n'est pas possible d'employer une variable j dans ce type de formule ?
Par ailleurs, ma seconde question est de savoir s'il est possible de faire en sorte de distinguer les mois à 31 et 30 jours; car mon code ne fait qu'incrémenter d'un mois la date d'arrêté d'amortissement (la formule de calcul est dans une autre cellule et n'entre pas dans le code VBA) mais ne prend pas en compte les jours exacts et ne prend pas en compte non plus que la date d'échéance puisse être un jour du mois quelconque (le code s'arrête à la fin du mois en question).
Je vous laisse le fichier en pièce jointe.
D'avance merci à tous !