• Thứ Năm, 24/03/2005 15:22 (GMT+7)

    Macro khấu hao tài sản

    Quyết định số 206/2003/QĐ-BTC về chế độ quản lý, sử dụng và trích khấu hao tài sản cố định (TSCĐ) cho phép áp dụng phương pháp “Khấu hao theo số dư giảm dần có điều chỉnh”. Ví dụ TSCĐ có nguyên giá 10.000.000 (VNĐ), sử dụng trong 10 năm, hệ số điều chỉnh là 2 thì khấu hao hàng năm tính như bảng dưới đây

    Từ năm thứ 4 trở đi, mức khấu hao hàng năm bằng giá trị còn lại của tài sản cố định (đầu năm thứ 4) chia cho số năm sử dụng còn lại của tài sản cố định (2.160.000 : 2 = 1.080.000). Vì tại năm thứ 4: mức khấu hao theo phương pháp số dư giảm dần (2.160.000 x 40%= 864.000) thấp hơn mức khấu hao tính bình quân giữa giá trị còn lại và số năm sử dụng còn lại của tài sản cố định (2.160.000 : 2 = 1.080.000).

    Khá phức tạp! Nếu bạn là kế toán TSCĐ và công ty của bạn có nhiều tài sản áp dụng phương pháp khấu hao này thì bạn sẽ mệt đấy. Tuy nhiên, bạn có thể trút bớt “gánh nặng” này cho... Excel.

    CHUẨN BỊ

    Phần mềm MS Excel 2000 trở lên

    Quyết định số 206/2003/QĐ-BTC ngày 12/12/2003 của Bộ Tài chính

    Tạo các hàm sau (có thể đổi tên)

    + YearOfBreak: Hàm xác định năm mà mức khấu hao chuyển từ phương pháp số dư giảm dần sang phương pháp bình quân giá trị còn lại.

    + Depreciation: Hàm tính khấu hao TSCĐ trong năm t.

    + NetValue: Hàm tính giá trị còn lại của TSCĐ ở cuối năm t nào đó.

    TẠO HÀM

        Năm thứ     Giá trị còn lại của TSCĐ     Cách tính số khấu hao TSCĐ hàng năm     Mức khấu hao hàng năm     Khấu hao luỹ kế cuối năm  
        1     10.000.000     10.000.000 x 40%     4.000.000     4.000.000  
        2     6.000.000     6.000.000 x 40%     2.400.000      6.400.000  
        3     3.600.000     3.600.000 x 40%      1.440.000     7.840.000  
        4     2.160.000     2.160.000 : 2     1.080.000     8.920.000  
        5     2.160.000     2.160.000 : 2     1.080.000      10.000.000  

    1. Mở bảng tính mới

    2. Chọn Tools->Macro->Visual Basic Editor (Hoặc nhấn Alt+F11)

    3. Nhấn vào bảng tính của bạn tại cửa sổ VBA project

    4. Chọn Insert.Module

    5. Nhập vào các đoạn mã hàm.

    TẠO ADD-IN

    Đến đây bạn đã có thể tính khấu hao được rồi. Tuy nhiên bạn chỉ có thể tính khấu hao ở bảng tính vừa tạo, để 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. Nhấn chuột phải vào module đã tạo

    2. Điền các thông số

    3. Đóng cửa sổ VBA

    4. File_Save As chọn (*.xla) ở khung Save as type

    5. Đặt tên file

    6. Xong

    Để gắn add-in vào Excel, bạn vào Tools->Add-in, nhấn Browse, chọn file .xla vừa tạo rồi OK.

      MÃ NGUỒN  
      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
     

    Nguyễn Văn Thắng
    thang_via@hotmail.com
    Công ty Kiểm Toán Quốc Tế Việt nam

    ID: A0503_117