Hướng dẫn tạo sổ sách kế toán máy ( ghi sổ nhật ký chung ) cực dễ bằng VBA Excel

Hôm nay Gia Bảo hướng dẫn các bạn cách tạo sổ nhật ký chung - dành cho các bạn làm kế toán máy bằng phần mềm Excel kết hợp ngôn ngữ lập trình VBA.

Làm kế toán máy được nhiều doanh nghiệp mới thành lập ứng dụng trong thời gian đầu khi chứng từ phát sinh chưa nhiều. Đây cũng là cách làm được nhiều bạn nhận làm dịch vụ kế toán tại nhà  và các công ty chuyên cung cấp dịch vụ kế toán trọn gói quan tâm lựa chọn. 

Khi chứng từ kế toán ngày càng phát sinh nhiều và phức tạp các bạn có thể mua phần mềm kế toán máy chuyên dụng như : 

  • MiSa
  • FAST Accounting
  • EFFECT
  • BRAVO
  • LinkQ
  • Kế toán 1A
  • Smart Pro
  • 3S Accounting
  • Phần mềm kế toán Tony
  • Phần mềm kế toán GAMA
  • Phần mềm kế toán AsiaSoft
  • ,...

Còn sau đây là các bước cơ bản giúp bạn hoàn thiện sổ nhật ký bằng phần mềm Excel. 

Bước 1 Tạo các sổ nhật ký đặc biệt ( giúp bạn nhập liệu )

  • Tạo Sổ Bán Ra   
  • Tạo Sổ Mua Vào
  • Tạo sổ chứng từ ngân hàng
  • Tạo sổ chứng từ khác ( tiền mặt, kết chuyển, BHXH,... )

Hình ảnh minh họa tạo cột tiêu đề sổ nhật ký đặc biệt :

Tạo Sheet : khac [ Sổ nhật đặc biệt khác ]


Tạo Sheet : br [ Sổ nhật đặc biệt Bán Ra ]  

 

Tạo Sheet : mv [ Sổ nhật đặc biệt Mua Vào ]




Tạo Sheet : NH [ Sổ nhật đặc biệt Sổ Phụ Ngân Hàng  ]

  

Bước 2 : Tạo sổ Nhật ký chung bằng VBA tổng hợp toàn bộ chứng từ, sau khi bạn nhập đầy đủ số liệu vào sổ kế toán đặc biệt. 

Tạo sổ trung gian NK1 : ( Sổ nhật ký trung gian )

 

Tạo Sổ NK ( Sổ Nhật Ký Chung ) 


 

Lưu ý trên Sổ nhật ký chung có shape hình vuông dùng gán macro thực thi các câu lệnh giúp tự động hóa công việc xử lý dữ liệu, tạo sổ nhật ký chung bằng sổ kế toán máy bằng VBA - Excel.

Bạn xem thêm hướng dẫn tạo module marcro tự tạo, shape gán câu lệnh theo link bài viết dưới đây nhé.

https://www.digitalnomad.vn/2021/06/tu-dong-hoa-cong-viec-ke-toan-dich-vuYor956.html    

Sau khi hoàn thiện các bước tạo sổ các bạn Tạo Module Code như sau ( đây là marcro do người tự tạo bằng cách sử dụng ngôn ngữ lập trình VBA được gán vào Shape Hoàn thiện Nký )   :

Sub nk1()
Range("NK1!a2:m4002").ClearContents
        'Hoan chinh phan ban ra
        Sheets("br").Select
        Range("I2").Select
        ActiveCell.FormulaR1C1 = "=IF(RC[-8]<>"""",RC[-5]&"" hñ ""&RC[-8],RC[-5])"
        Range("j2").Select
        ActiveCell.FormulaR1C1 = "=""Thueá GTGT ñaàu ra hñ ""&RC[-9]"
        Range("k2").Select
        ActiveCell.FormulaR1C1 = "=RC[-4]"
        Range("l2").Value = "3331"
        Range("I2:l1001").FillDown
'Chep ban ra
Range("BR!A2:a1001").Copy
Range("NK1!a2").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
Range("BR!b2:l1001").Copy
Range("NK1!c2").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    'Hoan chinh phan mua vao truoc khi chep
        Sheets("mv").Select
        Range("i2").Select
        ActiveCell.FormulaR1C1 = "=IF(RC[-8]<>"""",RC[-5]&"" hñ ""&RC[-8],RC[-5])"
        Range("j2").Select
        ActiveCell.FormulaR1C1 = "=""Thueá GTGT ñaàu vaøo hñ ""&RC[-9]"
        Range("L2").Select
        ActiveCell.FormulaR1C1 = "=RC[-4]"
        Range("k2").Value = "133-1"
        Range("i2:l1001").FillDown
'Chep mua vao
Range("MV!A2:a1001").Copy
Range("NK1!a1002").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
Range("MV!b2:l1001").Copy
Range("NK1!C1002").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
       
    'Hoan chinh phan ngan hang truoc khi chep
        Sheets("nh").Select
        Range("h2").Select
        ActiveCell.FormulaR1C1 = "=IF(RC[-7]<>"""",RC[-4]&"" hñ ""&RC[-7],RC[-4])"
        Range("h2:h1001").FillDown
'Chep ngan hang
Range("NH!A2:A1001").Copy
Range("NK1!a2002").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
Range("NH!B2:E1001").Copy
Range("NK1!C2002").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
Range("NH!F2:h1001").Copy
Range("NK1!H2002").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    'Hoan thanh phan khac truoc khi chep
        Sheets("khac").Select
        Range("H2").Select
        ActiveCell.FormulaR1C1 = "=IF(RC[-7]<>"""",RC[-4]&"" hñ ""&RC[-7],RC[-4])"
        Range("h2:h1001").FillDown
'Chep cac phat sinh khac
Range("KHAC!A2:A1001").Copy
Range("NK1!a3002").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
Range("KHAC!B2:E1001").Copy
Range("NK1!C3002").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
Range("KHAC!F2:h1001").Copy
Range("NK1!H3002").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False

'Sort lai de loai bo nhung dong trong
Sheets("NK1").Select
Range("A2:m4001").Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom
Range("a2").Select
'Danh phieu thu chi
DanhPTC
End Sub
Sub DanhPTC()
Dim j, k, thu, chi As Integer
k = 1: thu = 1:  chi = 1
With Range("c1")
        Do While IsEmpty(.Offset(k, 0).Value) = False
        If .Offset(k, 5) = "111" Then
           .Offset(k, -1).Value = "PT" & Format(Month(.Offset(0, 7)), "00") & "-" & Format(thu, "00")
            thu = thu + 1
        ElseIf .Offset(k, 6) = "111" Then
            .Offset(k, -1).Value = "PC" & Format(Month(.Offset(0, 7)), "00") & "-" & Format(chi, "00")
            chi = chi + 1
        End If
    k = k + 1
    Loop
End With
End Sub
Sub lamnk()
nk1
Sheets("nk").Select
'Chep noi dung tu Nk1 sang Nk de lam nhat ky chung
Range("nk1!B2:C1001").Copy Destination:=Range("NK!b3")
Range("nk1!J2:J1001").Copy Destination:=Range("NK!d3")
Range("nk1!H2:I1001").Copy Destination:=Range("NK!e3")
Range("nk1!f2:g1001").Copy Destination:=Range("NK!g3")
    'Ngay thang ghi so
    Range("A3").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(RC3="""",""End"",IF(MONTH(RC3)<>MONTH(R2C8),R2C8,RC3))"
    Range("A3:A1002").FillDown
    Range("A3:d1002").Copy
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    'chep 4 lan phan 1
    Range("A3:D1002").Copy Destination:=Range("a1003")
    Range("A3:D1002").Copy Destination:=Range("a2003")
    Range("A3:D1002").Copy Destination:=Range("a3003")
    'Chep 2 lan tai khoan ghi no tien
    Range("E3:E1002").Copy
    Range("F1003").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    'Chep 2 lan tai khoan ghi co tien
    Range("F3:F1002").Copy
    Range("E1003").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    'chep 2 lan ten thue
    Range("NK1!k2:k1001").Copy Destination:=Range("Nk!D2003")
    Range("NK1!k2:k1001").Copy Destination:=Range("Nk!D3003")
    'Chep 2 lan tai khoan thue
    Range("NK1!l2:l1001").Copy Destination:=Range("Nk!e2003")
    Range("NK1!l2:l1001").Copy Destination:=Range("Nk!f3003")
    Range("NK1!m2:m1001").Copy Destination:=Range("Nk!f2003")
    Range("NK1!m2:m1001").Copy Destination:=Range("Nk!e3003")
    'Chep 4 lan so tien
    Range("g3:g1002").Copy Destination:=Range("h1003")
    Range("h3:h1002").Copy Destination:=Range("g2003")
    Range("h3:h1002").Cut Destination:=Range("h3003")
'Tron lai 4 lan
Range("i3").Value = "1"
Range("i3:i1002").DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _
        Step:=2, Trend:=False
Range("i3:i1002").Copy Destination:=Range("i1003")
Range("i2003").Value = "2"
Range("i2003:i3002").DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _
        Step:=2, Trend:=False
Range("i2003:i3002").Copy Destination:=Range("i3003")
Range("A3:I4002").Sort Key1:=Range("I3"), Order1:=xlAscending, Header:=xlNo, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'Xoa dang lan 1
'Range("a3").Select
'Cells.Find(What:="end", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
'        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
        .Activate
'    Range(Selection, Selection.End(xlDown)).Select
'    Selection.EntireRow.Delete
'Xoa dong lan 2
Range("I3").Select
ActiveCell.FormulaR1C1 = "=IF((RC[-2]+RC[-1])=0,""hihihaha"","""")"
Range("i3:i4002").FillDown
Selection.AutoFilter Field:=9, Criteria1:="hihihaha"
Range("I3:I4002").Select
Selection.EntireRow.Delete
Selection.AutoFilter Field:=9
Range("h2").Select
End Sub

Như vậy là Gia Bảo đã hoàn thiện nội dung bài viết Hướng dẫn tạo sổ sách kế toán máy ( ghi sổ nhật ký chung ) cực dễ bằng VBA Excel. 

Chúc các bạn thành công.