Cách tính nhập xuất tồn bằng VBA?

Liên hệ QC

moihocvba

Thành viên thường trực
Tham gia
16/8/20
Bài viết
207
Được thích
49
Dạ em chào anh chị GPE ạ!
Em đang làm file xuất nhập tồn em xin anh chị hỗ trợ giúp em ạ!

Em có ý tưởng như thế này: Đầu tiên khi làm Phiếu nhập kho hay Phiếu xuất kho em lưu lại trong bảng Data bằng cách dùng phép nối chuỗi để mỗi phiếu nó nằm 1 dòng (Để dữ liệu nhẹ hơn khi về lâu dài) (dấu * để ngăn cách Tên hàng và số lượng, dấu ~ để ngăn cách giữa các sản phẩm vì một Phiếu có thể có nhiều sản phẩm).

Sau đó mỗi khi tính nhập xuất tồn thì em dùng VBA để tách toàn bộ số phiếu trong dữ liệu Data để dán vào sheet thành 2 bảng (Nhập và xuất), sau đó dùng dữ liệu 2 bảng Nhập và Xuất đó kết hợp hàm SUMIFS để tính nhập xuất tồn cho một khoảng thời gian bất kỳ

1633921622645.png

Và đây là bảng nhập xuất tồn em dùng SUMIFS để tổng hợp dữ liệu từ 2 bảng sau khi tách:
1633921885105.png


Vấn đề em gặp phải ở đây là về lâu về dài nếu hóa đơn lưu nhiều (khoảng từ 50.000 hóa đơn trở lên) thì dữ liệu sau khi tách nó hàng trăm ngàn dòng có khi vượt quá 1 triệu dòng, với cả thời gian tính toán sẽ rất chậm.

Vậy em viết bài này em nhờ các anh chị một thuật toán nào để giúp em tối ưu hơn ạ!
Em cám ơn anh chị rất nhiều!
 

File đính kèm

  • Nhap Xuat Ton kho.xlsx
    1.4 MB · Đọc: 29
Nên giờ em muốn tách ra và tính toán luôn rồi mới dán ra sheet cho đỡ nặng ạ!
"Em muốn" là em muốn, "đỡ nặng" hay không không thể tự suy đoán. Một dự án dùng Excel mà bạn nghĩ đến chuyện hàng triệu dòng thì nên xem lại.
Nếu bạn đồng ý với bài #5, #14 và #17 thì xem file này, bằng không thì coi như "xem cho vui".
 

File đính kèm

  • Nhap Xuat Ton kho.rar
    149.7 KB · Đọc: 43
Upvote 0
Không biết tác giả bài đăng có buột phải làm thẻ kho không nhỉ?
Nếu có thì tìm từng mặt hàng trong những dòng đó cũng tốn khá nhiều điện đó nha; Nên dời cơ quan đến chỗ nào có phong điện, chắc vậy.!
Thiết kế như vậy thì cần nữa là mua thiệt nhiều RAM để sẵn đi nha bạn.
 
Upvote 0
Em đã xem file của a Maika8008 và file của anh Ba Tê nhưng chưa đúng theo mong muốn của em. Em sẽ tham khảo code của 2 anh và suy nghĩ cách và viết code sau đó up lên đây nhờ 2 anh và mọi người giúp tiếp ạ!

Em cảm ơn anh chị đã giúp em!
 
Upvote 0
Em đã xem file của a Maika8008 và file của anh Ba Tê nhưng chưa đúng theo mong muốn của em. Em sẽ tham khảo code của 2 anh và suy nghĩ cách và viết code sau đó up lên đây nhờ 2 anh và mọi người giúp tiếp ạ!

Em cảm ơn anh chị đã giúp em!
Số liệu của 2 anh rất chuẩn so với đề bài, của tôi thì không nói (sai Form so với bạn).
Vậy mà vẫn chưa đúng :(
 
Upvote 0
50.000 hóa đơn là bạn lưu cho 1 năm hay 10 năm?
Nếu là 1 năm thì thua, còn 10 năm sao không tách ra mỗi năm 1 file, chỉ cần lấy tồn cuối năm trước làm tồn đầu năm sau.
Lúc trước em cũng nghĩ như anh, nhưng còn vấn đề tra cứu lịch sử khách hàng qua nhiều năm, vì có khách hàng nợ lâu nên nếu chuyển file từng năm thì việc tra cứu lại dữ liệu sẽ rườm rà phức tạp, nên em cần tìm cách tối ưu nó ạ.
Còn nếu bí quá không có cách thì em lại trở về cách cũ vậy.
 
Upvote 0
Lúc trước em cũng nghĩ như anh, nhưng còn vấn đề tra cứu lịch sử khách hàng qua nhiều năm, vì có khách hàng nợ lâu nên nếu chuyển file từng năm thì việc tra cứu lại dữ liệu sẽ rườm rà phức tạp, nên em cần tìm cách tối ưu nó ạ.
Còn nếu bí quá không có cách thì em lại trở về cách cũ vậy.
Chuyện ai làm nấy biết, theo file của bạn thì chẳng thấy khách hàng nào nên không ai có thể "tưởng tượng" để giúp bạn khi dữ liệu hàng triệu dòng.
 
Upvote 0
Lúc trước em cũng nghĩ như anh, nhưng còn vấn đề tra cứu lịch sử khách hàng qua nhiều năm, vì có khách hàng nợ lâu nên nếu chuyển file từng năm thì việc tra cứu lại dữ liệu sẽ rườm rà phức tạp, nên em cần tìm cách tối ưu nó ạ.
Còn nếu bí quá không có cách thì em lại trở về cách cũ vậy.
Quản lý nhập xuất tồn mà dữ liệu như bạn đưa lên hỏi thì quả là bất hợp lý. Tôi không nói việc gộp mã hàng*số lượng mà chỗ tồn kho định kỳ lưu ở đâu. Do tôi không muốn lủng khi viết code nên mới tự thêm vào cái bảng tồn kho.

Còn việc không đúng như mong muốn của bạn thì hãy chỉ ra số liệu nào trật với cái bảng kết quả mong muốn trong file ở bài #1?
 
Upvote 0
Web KT
Back
Top Bottom