Menu

Chia sẻ Tiện ích Excel: Tự động Tạo Phiếu Thu/Chi Đơn Giản

Vũ Khả Thu 08/06/2026 19:37 256 lượt xem 3 trả lời

Chào các bác, dạo này em bận quá làm báo cáo thu chi cho công ty nhỏ, mà cứ phải làm thủ công trên Word rồi copy paste sang Excel, vừa tốn thời gian vừa dễ sai sót.

Tình cờ em lục lọi trên mạng và tự mày mò viết được một cái tiện ích nhỏ bằng VBA để tự động tạo phiếu thu/chi ngay trên Excel luôn. Nó giúp em tiết kiệm được kha khá thời gian và quan trọng là nhìn chuyên nghiệp hơn hẳn.

Cách hoạt động của tiện ích:

  • Người dùng nhập thông tin cơ bản như: Ngày, Diễn giải, Số tiền, Người nhận/giao.
  • Click nút 'Tạo Phiếu Thu' hoặc 'Tạo Phiếu Chi'.
  • Tiện ích sẽ tự động lấy thông tin và điền vào một mẫu phiếu có sẵn, sau đó cho phép xuất ra file PDF hoặc in trực tiếp.

Em thấy cái này khá hữu ích cho các bác nào làm kế toán nhỏ, hoặc các bạn mới đi làm cần tạo phiếu nhanh. Em xin phép chia sẻ code VBA cho mọi người tham khảo và tùy biến thêm.

' Code VBA mẫu (cần tùy chỉnh thêm UI và logic chi tiết)

Sub CreateReceipt()
    Dim wsData As Worksheet
    Dim wsTemplate As Worksheet
    Dim nextRow As Long

    Set wsData = ThisWorkbook.Sheets("Data") ' Sheet chứa dữ liệu nhập
    Set wsTemplate = ThisWorkbook.Sheets("Template") ' Sheet mẫu phiếu

    ' Tìm dòng trống cuối cùng trên sheet Data
    nextRow = wsData.Cells(Rows.Count, "A").End(xlUp).Row + 1

    ' Lấy dữ liệu từ form hoặc ô nhập liệu (giả định)
    Dim receiptDate As Date
    Dim description As String
    Dim amount As Double
    Dim recipient As String

    receiptDate = wsData.Range("B2").Value ' Giả định ngày nhập ở B2
    description = wsData.Range("B3").Value ' Giả định diễn giải ở B3
    amount = wsData.Range("B4").Value ' Giả định số tiền ở B4
    recipient = wsData.Range("B5").Value ' Giả định người nhận ở B5

    ' Copy mẫu phiếu
    wsTemplate.UsedRange.Copy
    wsData.Cells(nextRow, 1).PasteSpecial Paste:=xlPasteAll

    ' Điền thông tin vào phiếu vừa copy
    wsData.Cells(nextRow, 1).Value = receiptDate ' Cột A
    wsData.Cells(nextRow, 2).Value = description ' Cột B
    wsData.Cells(nextRow, 3).Value = amount ' Cột C
    wsData.Cells(nextRow, 4).Value = recipient ' Cột D

    Application.CutCopyMode = False
    MsgBox "Đã tạo phiếu thành công!"
End Sub

Em mới làm demo nên code còn đơn giản, mọi người có thể phát triển thêm chức năng xuất PDF, in ấn, hoặc làm giao diện đẹp hơn. Nếu có ý tưởng gì hay hoặc cần trợ giúp phần nào thì cứ trao đổi nhé!

0

Hay quá bạn ơi! Mình cũng đang đau đầu với vụ làm phiếu thu chi thủ công đây.

Tiện ích VBA của bạn có thể tự động điền các thông tin như ngày, diễn giải, số tiền vào mẫu phiếu có sẵn không? Mình tò mò không biết bạn xử lý phần này thế nào.

5

Tuyệt vời! Việc tự động hóa quy trình này chắc chắn giúp ích rất nhiều cho công việc của bạn.

Mình rất tò mò không biết bạn đã tùy biến giao diện nhập liệu của tiện ích thế nào để người dùng không chuyên về Excel cũng có thể dễ dàng sử dụng? Có phải bạn dùng UserForm không, hay có cách nào khác gọn nhẹ hơn không?

0

Hay quá bạn ơi! Mình cũng đang đau đầu với vụ làm phiếu thu chi thủ công đây.

Tiện ích VBA của bạn có thể tự động điền các thông tin như ngày, diễn giải, số tiền vào mẫu phiếu có sẵn không? Mình tò mò không biết bạn xử lý phần này thế nào.

5

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký