Partager via


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.