Vous êtes sur la page 1sur 4

Cálculo de depreciaciones para bienes estatales versión 1.

Fórmula =DEPINV(fecha adquisición, fecha cierre, tasa de depreciación anual, valor


de compra, valor residual, tipo)

fecha adquisición = Fecha de compra del bien (fecha de PECOSA)


fecha cierre = Fecha fin de inventario
tasa de depreciación anual = En porcentaje
valor de compra = Valor histórico de compra o en libros
valor residual = El valor final del bien (generalmente es 1 despues de quedar totalmente
depreciado)
tipo = valor entero para obtener los siguientes datos:

 0 = Depreciación del periodo (anual)


 1 = Depreciación acumulada (años anteriores)
 2 = Número de meses para calcular la depreciación del periodo
 3 = Número de meses para calcular la depreciación acumulada
 4 = Número de meses transcurridos desde la compra hasta la fecha de cierre o hasta
el máximo posible
 5 = Valor neto depreciado

Function DEPINV(fecha_compra As Date, fecha_cierre As Date, tasa_anual As


Single, valor_compra As Single, valor_residual As Integer, tipo As
Integer) As Variant

'Application.MacroOptions
Dim mestot As Integer
Dim mesmax As Integer
Dim mesdif As Integer
Dim mesacu As Integer
Dim deprper As Variant
Dim depracu As Variant
Dim valneto As Variant

'--------------------------------------
AI = Val(Year(fecha_compra))
AF = Val(Year(fecha_cierre))
mesdiai = Format(fecha_compra, "dd/mm/")
mesdiaf = Format(fecha_cierre, "dd/mm/")
mestot = DateDiff("m", fecha_compra, fecha_cierre)
mesmax = 12 / tasa_anual

mesdif = mestot - mesmax


If mestot < mesmax Then
mesmax = mestot
End If

If AF - AI = 0 Then

mesper = DateDiff("m", CDate(mesdiai & AI), CDate(mesdiaf & AF))


mesacu = 0

ElseIf AF - AI = 1 Then

mesper = DateDiff("m", CDate("31/12/" & AI), CDate(mesdiaf & AF))


mesacu = DateDiff("m", CDate(mesdiai & AI), CDate("31/12/" & AI))

ElseIf AF - AI > 1 Then

If mesdif >= 12 Then

mesper = 0
mesacu = mesmax

ElseIf mesdif > 0 And mesdif < 12 Then

mesper = DateDiff("m", CDate("31/12/" & (AF - 1)), CDate(mesdiaf


& AF))
mesper = mesper - mesdif
mesacu = mesmax - mesper

If mesper < 0 Then


mesper = 0
mesacu = mesmax
End If

Else

mesper = DateDiff("m", CDate("31/12/" & (AF - 1)), CDate(mesdiaf


& AF))
mesacu = DateDiff("m", CDate(mesdiai & AI), CDate("31/12/" & (AF
- 1)))
End If

Else

deprper = CVErr(xlErrNull)
depracu = CVErr(xlErrNull)
valneto = CVErr(xlErrNull)

End If

'--------------------------------------

If mesmax >= 0 And valor_compra >= valor_residual Then

deprper = (((valor_compra - valor_residual) * tasa_anual) / 12) * mesper


depracu = (((valor_compra - valor_residual) * tasa_anual) / 12) * mesacu
valneto = valor_compra - (deprper + depracu)

Else

deprper = CVErr(xlErrNull)
depracu = CVErr(xlErrNull)
valneto = CVErr(xlErrNull)

End If

'---------------------------------------

Select Case tipo

Case 0 'depreciacion del periodo


DEPINV = Str(Round(deprper, 2))
Case 1 'depreciacion acumulada
DEPINV = Str(Round(depracu, 2))
Case 2 'meses para periodo
DEPINV = mesper
Case 3 'meses para acumulado
DEPINV = mesacu
Case 4 'meses transcurridos desde la compra hasta la fecha de cierre o
hasta el máximo posible
DEPINV = mesmax
Case 5 'valor neto
DEPINV = Str(Round(valneto, 2))
End Select

End Function

Vous aimerez peut-être aussi