Vấn đề đặt ra ở đây là theo dõi việc nhậpxuấttồn vật tư trong một công ty, phân xưởng nhỏ và có khả năng báo cáo hàng ngày, hàng tháng... Với công cụ Excel có sẵn bạn có thể giải quyết vấn đề này khá nhẹ nhàng. File Excel theo dõi vật tư tổng quát được thể hiện như hình 1, gồm các cột dữ liệu: Cột A thể hiện mã sản phẩm, cột B diễn giải mã vật tư, cột C thể hiện đơn vị tính và tiếp đến là các cột tồn đầu kỳ, tổng nhập, tổng xuất, tổng tồn, tiếp theo là số lượng nhậpxuấttồn trong ngày. Ô H3 trong hình là ngày đầu tháng (ở đây là ngày 01082004), để có thể dễ dàng thay đổi cho những ngày tiếp theo, ô K3 sẽ có công thức = H3 +1 tương tự ở ô N3 là = K3 + 1... Sau này bạn chỉ việc thay đổi ngày ở ô H3 thì các ô còn lại sẽ thay đổi theo. Bước kế tiếp bạn sẽ lập công thức cho các cột cần thiết. Ví dụ cột tồn của ngày 01082004 (cột J), cụ thể ở ô J6 sẽ có công thức là = D6 + H6 I6, có nghĩa là tồn đầu kỳ cộng cho nhập trong ngày và trừ đi xuất trong ngày sẽ bằng tồn của ngày 01082004. Cột tồn của ngày 02082004 (cột M), cụ thể ở ô M6 sẽ có công thức là = J6 + K6 L6... và tương tự bạn lập công thức cho các cột tồn của các ngày còn lại. Chú ý, để dễ nhận biết ngày chủ nhật, bạn thiết lập tô đậm như trong hình ở cột tương ứng (ví dụ cột H, ngày 01082004 là ngày chủ nhật). Thực hiện như sau: đầu tiên bạn chọn khối dữ liệu của bạn (tức là từ ngày 01 đến ngày 31, giả sử bảng theo dõi của ta lập là 31 ngày), trong ví dụ của tôi là H4:CV1120. Sau đó bạn chọn FormatConditional Formatting và nhập vào công thức như hình 2. Một số điều cần lưu ý khi bố trí dữ liệu: • Bạn nên để các hàng không có dữ liệu giữa các chủng loại vật tư. • Diễn giải nên rõ ràng. • Bạn nên đặt tên khối dữ liệu, khối dữ liệu này bao gồm tất cả các ngày trong tháng (31 cột x 3 cột1 ngày). Nên đặt thêm tên cho từng chủng loại vật tư, điều này sẽ giúp cho bạn dễ dàng lập trình sau này. • Nên để các hàng trên cùng để diễn giải. • Tên của các Sheet nên đặt tên không dấu và dễ nhớ. Bước kế tiếp là thiết kế các thủ tục nhằm thực hiện các báo cáo theo yêu cầu, như báo cáo xuất theo ngày, báo cáo nhập theo ngày, báo cáo nhập xuất hàng tháng v.v... Bạn sẽ phải định dạng trước tiêu đề, độ rộng của các cột theo yêu cầu báo cáo... Mẫu báo cáo xuất vật tư theo ngày thể hiện ở hình 3. Bạn có thể tham khảo mã nguồn các thủ tục này trong file mẫu kèm theo bài viết. Bạn có thể viết thêm thủ tục để cập nhật công thức cho các cột khi thêm vào một vật tư mới (tức là khi ta thêm vào một hàng mới). Thủ tục thực hiện chức năng này trong file mẫu được đặt tên là CapNhatCongThuc. Ngoài ra, bạn còn có thể làm nhiều hơn nữa như ngăn người sử dụng nhập vào không đúng thao tác (nhậpxuất) và không đúng với ngày muốn thao tác, hay bạn có thể in ra các thẻ kho trong một tháng... Bạn cũng có thể tạo shortcut menu để giúp thao tác nhanh (trong file mẫu có sẵn module để tạo menu này). Để tạo file theo dõi cho một tháng mới, bạn có thể save as với tên khác và xóa đi các dữ liệu của tháng cũ. Cuối năm là thời điểm cần quyết toán thuế thu nhập cá nhân. Đây là vấn đề không nhẹ nhàng chút nào, nhất là khi qui mô công ty của bạn không nhỏ. Tuy nhiên bạn đừng lo, bạn có thể lập trình bắt Excel xử lý giúp gánh nặng này. Công việc chuẩn bị PC cài HĐH Windows 2000 hoặc XP, Microsoft Excel XP hoặc 2003 Phụ lục số 1 và số 2, kèm theo Thông tư số 812004 TTBTC ngày 1382004 của Bộ Tài chính. Lên kế hoạch tạo các hàm sau: • PITLC: Hàm tính thuế thu nhập cá nhân dành cho công dân Việt Nam và các cá nhân khác định cư tại Việt Nam. • PITFR: Hàm tính thuế thu nhập cá nhân người nước ngoài cư trú tại Việt Nam và công dân Việt Nam lao động, công tác ở nước ngoài. • NET2GROSSLC: Hàm qui đổi thu nhập sau thuế (net) sang thu nhập trước thuế (gross) dành cho công dân Việt Nam và các cá nhân khác định cư tại Việt Nam. • NET2GROSSFR: Hàm qui đổi thu nhập sau thuế (net) sang thu nhập trước thuế (gross) dành cho người nước ngoài cư trú tại Việt Nam và công dân Việt Nam lao động, công tác ở nước ngoài. Lưu ý: Tên hàm có thể thay đổi cho phù hợp với yêu cầu của bạn.
Trang 11/ Các Add-in thông dụng dành cho kế toán :
- Macro khấu hao TSCĐ (http://www.giaiphapexcel.com/forum/showthread.php?t=25)
- Macro lọc dữ liệu bảng trong Excel
(http://www.giaiphapexcel.com/forum/showthread.php?t=114)
3/ Ứng dụng
- Tạo Menu trong Excel (http://www.giaiphapexcel.com/forum/showthread.php?
Trang 3- Báo cáo Tài chính DN Lớn - Vừa - Nhỏ (Unicode)_File của Maika - ForestC Vấn đề đặt ra ở đây là theo dõi việc nhập/xuất/tồn vật tư trong một công ty, phân xưởng nhỏ và có khả năng báo cáo hàng ngày, hàng tháng Với công cụ Excel có sẵn bạn có thể giải quyết vấn đề này khá nhẹ nhàng.
File Excel theo dõi vật tư tổng quát được thể hiện như hình 1, gồm các cột dữ liệu: Cột A thể hiện mã sản phẩm, cột B diễn giải mã vật tư, cột C thể hiện đơn vị tính
và tiếp đến là các cột tồn đầu kỳ, tổng nhập, tổng xuất, tổng tồn, tiếp theo là số lượng nhập/xuất/tồn trong ngày Ô H3 trong hình là ngày đầu tháng (ở đây là ngày 01/08/2004), để có thể dễ dàng thay đổi cho những ngày tiếp theo, ô K3 sẽ có côngthức = H3 +1 tương tự ở ô N3 là = K3 + 1 Sau này bạn chỉ việc thay đổi ngày ở ôH3 thì các ô còn lại sẽ thay đổi theo
Bước kế tiếp bạn sẽ lập công thức cho các cột cần thiết Ví dụ cột tồn của ngày 01/08/2004 (cột J), cụ thể ở ô J6 sẽ có công thức là = D6 + H6 - I6, có nghĩa là
"tồn đầu kỳ cộng cho nhập trong ngày và trừ đi xuất trong ngày sẽ bằng tồn của ngày 01/08/2004" Cột tồn của ngày 02/08/2004 (cột M), cụ thể ở ô M6 sẽ có công thức là = J6 + K6 - L6 và tương tự bạn lập công thức cho các cột tồn của các ngày còn lại
Chú ý, để dễ nhận biết ngày chủ nhật, bạn thiết lập tô đậm như trong hình ở cột tương ứng (ví dụ cột H, ngày 01/08/2004 là ngày chủ nhật) Thực hiện như sau: đầu tiên bạn chọn khối dữ liệu của bạn (tức là từ ngày 01 đến ngày 31, giả sử bảng theo dõi của ta lập là 31 ngày), trong ví dụ của tôi là H4:CV1120 Sau đó bạn chọn Format/Conditional Formatting và nhập vào công thức như hình 2
Một số điều cần lưu ý khi bố trí dữ liệu:
• Bạn nên để các hàng không có dữ liệu giữa các chủng loại vật tư
• Diễn giải nên rõ ràng
• Bạn nên đặt tên khối dữ liệu, khối dữ liệu này bao gồm tất cả các ngày trong
Trang 4tháng (31 cột x 3 cột/1 ngày) Nên đặt thêm tên cho từng chủng loại vật tư, điều này sẽ giúp cho bạn dễ dàng lập trình sau này.
• Nên để các hàng trên cùng để diễn giải
• Tên của các Sheet nên đặt tên không dấu và dễ nhớ
Bước kế tiếp là thiết kế các thủ tục nhằm thực hiện các báo cáo theo yêu cầu, như báo cáo xuất theo ngày, báo cáo nhập theo ngày, báo cáo nhập xuất hàng tháng v.v Bạn sẽ phải định dạng trước tiêu đề, độ rộng của các cột theo yêu cầu báo cáo Mẫu báo cáo xuất vật tư theo ngày thể hiện ở hình 3 Bạn có thể tham khảo
mã nguồn các thủ tục này trong file mẫu kèm theo bài viết
Bạn có thể viết thêm thủ tục để cập nhật công thức cho các cột khi thêm vào một vật tư mới (tức là khi ta thêm vào một hàng mới) Thủ tục thực hiện chức năng nàytrong file mẫu được đặt tên là CapNhatCongThuc
Ngoài ra, bạn còn có thể làm nhiều hơn nữa như ngăn người sử dụng nhập vào không đúng thao tác (nhập/xuất) và không đúng với ngày muốn thao tác, hay bạn
có thể in ra các thẻ kho trong một tháng Bạn cũng có thể tạo shortcut menu để giúp thao tác nhanh (trong file mẫu có sẵn module để tạo menu này)
Để tạo file theo dõi cho một tháng mới, bạn có thể save as với tên khác và xóa đi các dữ liệu của tháng cũ
Cuối năm là thời điểm cần quyết toán thuế thu nhập cá nhân Đây là vấn đề không
"nhẹ nhàng" chút nào, nhất là khi qui mô công ty của bạn không nhỏ Tuy nhiên bạn đừng lo, bạn có thể lập trình "bắt" Excel xử lý giúp "gánh nặng" này
Công việc chuẩn bị
- PC cài HĐH Windows 2000 hoặc XP, Microsoft Excel XP hoặc 2003
Trang 5- Phụ lục số 1 và số 2, kèm theo Thông tư số 81/2004/ TT-BTC ngày 13/8/2004 của Bộ Tài chính.
- Lên kế hoạch tạo các hàm sau:
• PITLC: Hàm tính thuế thu nhập cá nhân dành cho công dân Việt Nam và các cá nhân khác định cư tại Việt Nam
• PITFR: Hàm tính thuế thu nhập cá nhân người nước ngoài cư trú tại Việt Nam và công dân Việt Nam lao động, công tác ở nước ngoài
• NET2GROSSLC: Hàm qui đổi thu nhập sau thuế (net) sang thu nhập trước thuế (gross) dành cho công dân Việt Nam và các cá nhân khác định cư tại Việt Nam
• NET2GROSSFR: Hàm qui đổi thu nhập sau thuế (net) sang thu nhập trước thuế (gross) dành cho người nước ngoài cư trú tại Việt Nam và công dân Việt Nam lao động, công tác ở nước ngoài
Lưu ý: Tên hàm có thể thay đổi cho phù hợp với yêu cầu của bạn
TẠO HÀM
1 Mở bảng tính (workbook) mới
2 Nhấn tổ hợp phím Alt+F11 để khởi động microsoft Visual Basic
3 Nhấn vào bảng tính của bạn tại cửa sổ VBA project Ví dụ: VBA project
(book1)
4 Chọn Insert.Module
5 Nhấn đúp vào module mới tạo ra và nhập vào các đoạn mã sau
1/ Hàm tính thuế thu nhập cá nhân dành cho công dân Việt Nam và các cá nhân khác định cư tại Việt Nam
Trang 6Function pitlc(gross_local)
'Personal Income Tax for Local Vietnamese Citizen
If (gross_local > 0) And (gross_local <= 5000000) Then
Trang 7Ví dụ, chúng ta có một mẫu nhật ký chi tiền mặt (hình 1) với quy ước nhập liệu là nếu một chứng từ có nhiều tài khoản đối ứng thì nhập trên nhiều dòng khác nhau nhưng các cột ngày, số chứng từ và nội dung phải giống nhau Nhiệm vụ được chianhỏ thành 3 thủ tục macro để tiện cho việc bảo trì, sửa đổi mã lệnh sau này khi cần thiết (xin được bỏ qua bước trình bày cách tạo, lưu giữ và quản lý module, các thaotác này khá đơn giản) Một số điểm cần lưu ý trước khi trình bày mã lệnh của các thủ tục:
- Để gán giá trị của một cell vào biến, hãy di chuyển đến cell này và dùng thuộc tính value của cell hiện hành gán cho biến đã khai báo (Bien=ActiveCell.Value) Xong các lệnh gán, nhớ quay trở về cell cũ trước khi di chuyển
- Sử dụng địa chỉ kiểu tương đối khi di chuyển cell bằng thuộc tính Offset
Sub TrichNgang()
Dim Taikhoan As String
Dim ThutuDong, SoCot As Integer
Dim Sotien As Long
Range(“D2”).Select
Lặp đến dòng cuối của danh sách
Do Until ActiveCell.Value = “”
Trang 8Thực hiện cho đến cột tài khoản cuối cùng Nếu tìm thấy số hiệu tài khoản
thì điền số tiền lên dòng trên cùng của chứng từ và thoát vòng lặp
Trang 9và điền số tiền vào đúng dòng đầu tiên của chứng từ Bằng không dời con trỏ xuống đầu dòng dưới và thêm thứ tự dòng 1 đơn vị.
Sub CungCTu()
Dim Ngay, Ngay2 As Date
Dim Chungtu, Chungtu2, Taikhoan, Taikhoan2, Noidung, Noidung2 As StringDim ThutuDong, SoCot, SoDong As Integer
Dim Sotien, Sotien2 As Long
Trang 10Lặp đến dòng cuối của danh sách
Trang 11If Ngay = Ngay2 And Chungtu = Chungtu2 And Noidung = Noidung2 ThenSoDong = SoDong + 1
If ActiveCell.Value = Taikhoan2 Then
ActiveCell.Offset(ThutuDong - SoDong + 1, 0).Range(“A1”).Select
ActiveCell.Value = Sotien2
ActiveCell.Offset(0, -SoCot + 5).Range(“A1”).Select
ActiveCell.Value = ActiveCell.Value + Sotien2
Trang 13Dim Ngay, Ngay2 As Date
Dim Chungtu, Chungtu2, Noidung, Noidung2 As String
Lưu giữ các giá trị ở dòng đầu để so sánh trong vòng lặp
Trang 14So sánh lần lượt dòng trên với dòng dưới, nếu xác định là trùng nhau thì xóa các dòng thừa phía dưới.
Trang 15Hàm SUMIF có cú pháp như sau:
SUMIF(khối điều kiện, giá trị so sánh, khối tính tổng)
SheetCT có kết cấu như sau: Ngày; Số CT; Diễn giải; TKNợ; TKCó; Số tiền.http://img.photobucket.com/albums/v640/handung107/EFC/NKChung.jpg
Sheet tổng hợp số phát sinh: SHTK, Tên TK, PS Nợ, PS Có
http://img.photobucket.com/albums/v640/handung107/EFC/NKChung01.jpg
Công thức PSN ở ô C4= Sumif(CT!D:D,A4,CT!F:F)
PSC ở ô D4= Sumif(CT!E:E,A4,CT!F:F)
Hai công thức trên chỉ khác nhau ở khối điều kiện là TK Nợ và TK Có Còn giá trị
so sánh là số hiệu của TK đang tổng hợp Khối tính tổng là khối số tiền
Sau khi lập xong công thức, chỉ cần sao chép xuống cho những TK tiếp theo
Trang 16Ngoài ra cũng có thể tập hợp số phát sinh từ sổ NKC bằng hàm SUMIF tương tự như trên.
1. Chỉ cần nhập (hoặc copy) số liệu vào các sheet tháng (luu1 đến luu12), các bảng khác tự động lên báo cáo theo yêu cầu quản lý
Để sử dụng tốt chương trình Quản lý đơn vị nộp thuế, cần tuân theo các quy định sau đây:
2 Sau khi nhập hết số liệu trong tháng từ các các bộ thuế đa lên, đội trưởng cần xem trong phần kiểm tra nếu có gì sai sót cần phải liên hệ với cán bộ thuế để bổ xung hoặc sửa lại các thành phần
Các thành phần cần bổ xung hoặc sửa lại gồm có:
- Quy tắc ghi MST: đối với đơn vị đặc thù hoặc đơn vị nộp 2 loại thuế VAT
và tiêu thụ đặc biệt thì phải điền đầy đủ MST Còn ngoài ra chỉ cần điền 6 sốcuối cùng của MST
- Cột Trùng: Đối với các đơn vị nộp thuế VAT và tiêu thụ đặc biệt thì sẽ được ghi = 2 dòng, dòng 1 là dành cho VAT, dòng 2 dành cho thuế TTĐB, thì dòng 1 phải điền đầy đủ MST, còn dòng 2 có thể ghi tắt 6 ký tự cuối cùng của MST
Ngoài trường hợp trên ra, thì là do nhập số liệu sai (1 MST dùng cho 2 đơn vị) sẽ bị báo Trùng
- Cột Chưa ghi MST trong tháng : Trong tháng nếu có đơn vị nào mà chưa điền MST thì chương trình sẽ thông báo để đội trưởng đội thuế bổ xung (liên
hệ với cán bộ nào quản lý đơn vị thiếu MST đó)
Dấu hiệu nhận biết: Cột Chưa ghi MST trong tháng sẽ báo : "Ghi thêm MST"
- Cột PS tăng MST thông báo đơn vị mới cần bổ xung vào DKDN: Sang
Trang 17sheet DKDN để bổ xung đơn vị mới
- Cột Ghi Sai MST thông báo cho bạn biết rằng MST của đơn vị đó không tồn tại! Xem lại!
- Cột Chưa phân công CB thông báo cho bạn biết rằng mã cán bộ của đơn vị
đó chưa điền! Cần bổ xung!
- Cột Bị cắt ở tháng sau : Thông báo cho bạn biết rằng đơn vị này bị cắt mất
ở tháng sau
Nếu tháng sau đơn vị nào đó không còn tồn tại nữa thì ta vẫn phải giữ cho đến thời điểm cuối năm mới được loại bỏ, việc này đảm bảo sự thống nhất của số liệu phục vụ cho việc kiểm tra được nhất quán
3 Trong tháng, nếu nhập sai số liệu thì chỉ được phép xóa số liệu chứ không được cắt ô hoặc dòng để đảm bảo cho chương trình có thể vận hành một cách chính xác
4 Dòng cộng tổng các loại hình (A, B, C, D) thì phải đánh mã là TA, TB,
TC, TD phục vụ cho công tác kiểm tra kép
Trang 1810 Sheet ktraCBthang: dùng để kiểm tra theo 2 chỉ tiêu: kiểm tra CB theo y/c và kiểm tra theo tháng y/c.
11 Các sheet tinh am thue và luyke là các sheet xử lý số liệu phục vụ cho các Bảng kiểm tra tổng hợp
12 Sheet DKDN dùng để bổ xung thêm đơn vị mới phát sinh và đăng ký danh sách cán bộ thuế
13 Số liệu sử dụng trong chương trình không phải là số liệu thực tế chỉ có tính chất minh họa
Nếu bạn là người thường xuyên sử dụng Excel, ngoài những hiểu biết về cáckhả năng sẵn có của Excel, bạn hãy chú ý đến các add-in và cài thêm vào.Các Add-in rất tiện dụng, chúng sẽ giúp bạn những tiện ích nhằm giảm thiểucông sức, tăng thêm hiệu quả khiến bạn nhẹ nhàng hơn khi làm việc với Excel
Cài Add-in như thế nào, các bạn có thể tìm đọc trên diễn đàn, nếu bạn ít vào EFC, bạn có thể tìm hiểu mọi vấn đề qua Topic : "Hướng dẫn Tổng hợp về Excel" (Phần 3 - Bài 2 : Add-in và Phần 5 - Xây dựng thư viện chức năng dongười dùng định nghĩa)
Giới thiệu một số add-in, bạn nên có :
- Add-in tổng quát : Bạn có thể chọn một trong những add-in sau : Utilities, PUP6, Excel Utilities, SpreadSheet Assistant Tất cả đều có trên diễn đàn nhưng tôi thì thích Asap hơn cả
Asap AddAsap in về di chuyển qua lại giữa các Sheet : Được giới thiêu trong đề tài cùng tên, các bạn có thể Down xuống Đánh giá các Add-in này, tôi thích Workbook Navigation.xla nhất
- Add-in về tên và nhãn : Name Lister (File của Levanduyet) có trong PUP6,hoặc nếu bạn không cài PUP6, bạn có thể cài NameLister riêng
Ngoài ra, một số Add-in bạn nên chuẩn bị sẵn cho công việc KT sau này, lúcbạn gặp phải, đôi khi bạn sẽ thấy chúng rất hữu ích Đó là :
-Add-in : (có thể là UDF : Hàm người dủng tự viết ) Sắp xếp tiếng Việt-Add-in : Chuyển số thành chữ (Add-in Name Manager của Maika -
Trang 19-Add-in : Convert Font (đặc biệt là bản của OverAC đang được thảo luận sôinổi trên diễn đàn)
-Add-in : Kiểm tra MST
Hàm người dùng tự biên soạn gồm :
- Hàm chấm công (Bài của Levanduyet)
Với add-in này, bạn sẽ có thêm đủ lọai hàm đặc biệt trong Excel Nó cung cấp 34 hàm tài chính, 4 hàm ngày giờ, 7 hàm tóan và lượng giác, 2 hàm thông tin và 40 hàm kỹ thuật Một số hàm rất thông dụng về ngày giờ mà ta thường sử dụng như : WORKDAY, EDATE, EOMONTH,
NETWORKDAYS, YEARFRAC
Bạn cũng nên chọn cài đủ những phần mềm bổ sung như : Lookup Wizard, Conditional Sum Wizard ( tương tự hàm Sumif giúp bạn xây dựng công thứcmảng bằng cách đặt ra hàng lọat câu hỏi và hướng dẫn bạn, nên ta sẽ thấy nhẹ nhàng hơn) Nếu bạn nào đã có A-Tool của Tuanktcdcn giới thiệu, bạn
sẽ thấy A-Tool còn nhiều cái thiết thực và hiệu quả hơn Conditional Sum Wizard nữa
On Error GoTo thoat
Phát biểu On Error có tác dụng "bật" trình quản lý lỗi hệ thống Nghĩa là khi
có lỗi phát sinh, với khai báo này, người lập trình có thể biết được lỗi thông qua thuộc tính Number của đối tượng Err (Debug.Print Err.Number) Cú pháp của On Error có thể viết ở các dạng sau:
Syntax
On Error GoTo line
On Error Resume Next
On Error GoTo 0
Trang 20The On Error statement syntax can have any of the following forms:
On Error Resume NextSpecifies that when a run-time error occurs, control goes to the statement immediately following the statement where the error occurred where execution continues Use this form rather than On Error GoTo when accessing objects
On Error GoTo 0 Disables any enabled error handler in the current
Sub/Function/Property (tuỳ thuộc dạng thủ tục) ngay trước <Label>:
Có thể minh hoạ cấu trúc xử lý lỗi như sau:
Sub InitializeMatrix(Var1, Var2, Var3, Var4)
On Error GoTo ErrorHandler
Trang 21Để các bạn dễ hiểu hơn, thủ tục Worksheet_Change có thể được viết lại như sau:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo thoat
If Target.Value = "" Then Exit Sub
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next 'Thay phát biểu GoTo bằng Resume Next
If Target.Value = "" Then Exit Sub
If Target.Column = 1 Then
If WorksheetFunction.CountIf(Columns("A:A"), Target.Value) > 1 Then
Trang 22MsgBox "Da co roi"
Target.Select
ActiveCell.ClearContentsEnd If
End If
End Sub