DDB, fonction
Renvoie un double spécifiant l’amortissement d’un actif pour une période spécifique à l’aide de la méthode de solde à double diminution ou d’une autre méthode que vous spécifiez.
Syntaxe
DDB(cost, salvage, life, period, [ factor ])
La fonction DDB comprend les arguments nommés suivants :
Élément | Description |
---|---|
coût | Obligatoire. Double spécification du coût initial de la ressource. |
sauvetage | Obligatoire. Double spécification de la valeur de la ressource à la fin de sa durée de vie utile. |
vie | Obligatoire. Double spécifiant la durée de vie utile de la ressource. |
période | Obligatoire. Double spécifiant la période pour laquelle l’amortissement de l’actif est calculé. |
facteur | Optional. Variant spécifiant la vitesse à laquelle le solde diminue. S’il n’est pas précisé, la valeur par défaut est 2 (méthode d’amortissement dégressif à taux double). |
Remarques
La méthode d’amortissement dégressif à taux double calcule l’amortissement à un taux accéléré. L’amortissement est plus important au cours de la première période, puis ralentit au cours des périodes suivantes
Les argumentsde durée et de période doivent être exprimés dans les mêmes unités. Par exemple, si life est exprimé en mois, period doit également l’être. Tous les arguments doivent être des nombres positifs.
La fonction DDB utilise la formule suivante pour calculer l’amortissement sur une période donnée :
Amortissement / période = ((coût - de récupération) * facteur) / durée de vie
Exemple
Cet exemple utilise la fonction DDB pour retourner l’amortissement d’un bien pour une période spécifiée en fonction du coût initial (InitCost
), de la valeur de récupération à la fin de la durée de vie utile de l’actif (SalvageVal
), de la durée totale de vie de l’actif en années (LifeTime
) et de la période en années pour laquelle l’amortissement est calculé (Depr
).
Dim Fmt, InitCost, SalvageVal, MonthLife, LifeTime, DepYear, Depr
Const YRMOS = 12 ' Number of months in a year.
Fmt = "###,##0.00"
InitCost = InputBox("What's the initial cost of the asset?")
SalvageVal = InputBox("Enter the asset's value at end of its life.")
MonthLife = InputBox("What's the asset's useful life in months?")
Do While MonthLife < YRMOS ' Ensure period is >= 1 year.
MsgBox "Asset life must be a year or more."
MonthLife = InputBox("What's the asset's useful life in months?")
Loop
LifeTime = MonthLife / YRMOS ' Convert months to years.
If LifeTime <> Int(MonthLife / YRMOS) Then
LifeTime = Int(LifeTime + 1) ' Round up to nearest year.
End If
DepYear = CInt(InputBox("Enter year for depreciation calculation."))
Do While DepYear < 1 Or DepYear > LifeTime
MsgBox "You must enter at least 1 but not more than " & LifeTime
DepYear = InputBox("Enter year for depreciation calculation.")
Loop
Depr = DDB(InitCost, SalvageVal, LifeTime, DepYear)
MsgBox "The depreciation for year " & DepYear & " is " & _
Format(Depr, Fmt) & "."
Voir aussi
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.