Hình 2
Public Function YearOfBreak(cost As Double, life As Integer, rate As Double) As Integer
Dim ret As Integer Gia tri tro ve
Dim depX As Double muc kh nam theo pp so du giam dan
Dim depY As Double muc kh nam theo gia tri con lai / so nam con lai
Dim i As Integer
For i = 1 To life
depX = (cost * ((1 - rate / life) ^ (i - 1))) * (rate / life)
depY = (cost * ((1 - rate / life) ^ (i - 1))) / (life - i + 1)
If depX <= depY Then
ret = i
Exit For
End If
Next i
YearOfBreak = ret
End Function
Public Function Depreciation(cost As Double, life As Integer, rate As Double, year As Integer) As Double
cost la nguyen gia cua tai san co dinh
life la so nam su dung cua tai san co dinh
rate he so dieu chinh
year la nam can tinh
-------------------------
Dim YearBreak As Integer
Dim YearsAfBreak As Integer so nam con lai sau diem break
Dim NetAtBreak As Double GTCL dau nam break
Dim ret As Double Gia tri tro ve
If life < year Or year < 1 Then
Exit Function
End If
YearBreak = YearOfBreak(cost, life, rate)
If year < YearBreak Then
ret = cost * ((1 - rate / life) ^ (year - 1)) * (rate / life)
Else
NetAtBreak = cost * ((1 - rate / life) ^ (YearBreak - 1))
YearsAfBreak = life - YearBreak + 1
ret = NetAtBreak / YearsAfBreak
End If
Depreciation = ret
End Function
Public Function NetValue(cost As Double, life As Integer, rate As Double, year As Integer) As Double
cost la nguyen gia cua tai san co dinh
life la so nam su dung cua tai san co dinh
rate he so dieu chinh
year la nam can tinh
--------------------------
Dim YearBreak As Integer
Dim YearsAfBreak As Integer so nam con lai sau diem break
Dim NetAtBreak As Double GTCL dau nam break
Dim ret As Double Gia tri tro ve
If life < year Then
NetValue = 0
Exit Function
End If
If year <= 0 Then
NetValue = cost
Exit Function
End If
YearBreak = YearOfBreak(cost, life, rate)
If year < YearBreak Then
ret = cost * ((1 - rate / life) ^ year)
Else
NetAtBreak = cost * ((1 - rate / life) ^ (YearBreak - 1))
YearsAfBreak = life - YearBreak + 1
ret = NetAtBreak - NetAtBreak * (year - YearBreak + 1) / YearsAfBreak
End If
NetValue = ret
End Function
Chú ý: Các đoạn gạch chân chỉ mang tính chú thích không có trong đoạn mã hàm.
- Để sử dụng các hàm tính khấu hao ở tất cả các bảng tính thì bạn phải tạo Add-in.
1. Đóng cửa sổ VBA.
2. Vào menu File, chọn Save Book1(Ctrl + S), chọn (*.xla) ở khung Save as type
3. Đặt tên file (ví dụ: Macrokhauhao)
4. Nhấp nút Save
- Để gắn add-in vào Excel, bạn trở lại cửa sổ làm việc của Excel, vào Tools -> Add-in, nhấn Browse, chọn file .xla (Macrokhauhao.xla) vừa tạo rồi OK.
Bây giờ lấy một ví dụ để minh họa cho việc ứng dụng 3 hàm tự tạo vừa rồi:
VD: Tại một doanh nghiệp đưa vào sử dụng một TSCĐ có nguyên giá 10.000.000 (VNĐ), thời gian sử dụng là 5 năm. Tinh mức khấu hao phải trích hàng năm.
Mở bảng tính mới và soạn theo mẩu sau (Hình 3):
Hình 3
Nhập công thức:
Nhập Nguyên Giá (NGi ) 10.000.000 vào ô B7
Thời gian sử dụng (Tsdi) 10 vào ô C7
Tính tỷ kệ khấu hao TKi ở ô D7: D7= 100/C7
Xác định hệ số điều chỉnh Hđc ở ổ E7 căn cứ theo quyết định 206/2003/QĐ-BTC.
+ Tsdi 4 : Hđc là 1,5
+4 < Tsdi 6 : Hđc là 2
+ 6 < Tsdi : Hđc là 2,5
E7=IF($C$7>6,2.5,IF($C$7>4,2,IF($C$7>0,1.5,"Ko hợp lệ !")))
- Tính tỷ lệ khấu hao điều chỉnh:
Công thức: TKđ = TKi(%) x Hđc
F7= D7*E7
Kết quả tính được như hình 4
Hình 4
Tính mức khấu hao hàng năm Mi:
Sử dụng hàm: Depreciation(cost, life, rate, year)
+ cost là nguyên giá
+ life là năm sử dụng
+ rate là hệ số điều chỉnh
+ year là năm cần tính
Công thức D12= Depreciation($B$7,$C$7,$E$7,$B12)
Chia sẻ với bạn bè của bạn: |