Lập trình số liệu Nhập-Xuất-Tồn

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

hieuvietmy2020

Thành viên mới
Tham gia
18/4/20
Bài viết
32
Được thích
4
Kính gửi Quý Anh Chị trong diễn đàn,

Em có viết 1 đoạn code để tổng hợp số liệu Nhập-Xuất-Tồn,
+ Code Tồn đầu kỳ đã hoạt động,
+ Code Số phát sinh Nhập-Xuất-Tồn cuối kỳ, em chưa rõ bị thiếu sót ở đâu vẫn chưa chạy được ạ,
+ Điều kiện hiện tại của em chạy code: Tên hàng hóa, giả sử em cần thêm điều kiện về Đơn vị tính + Bộ Phận ở cột C&D Sheets("NXT") thì em viết thêm ra sao ạ.

Kính nhờ Quý Anh Chị hướng dẫn thêm giúp em ạ!
Em chân thành cảm ơn!
 

File đính kèm

  • vba.xlsb
    123.3 KB · Đọc: 10
1727339071397.png
Trong code thấy có sheet SM. Nhưng file đính kèm thì không có. Thì biết sửa code cho bạn bằng cách nào?
 
Upvote 0
Upvote 0
Em cảm ơn anh đã nhiệt tình tương tác ạ,
Em xin phép gửi lại anh, file có ghi chú nội dung tiêu đề ở Sheets("Data"),
Mong anh hỗ trợ giúp em ạ!
 

File đính kèm

  • vba.xlsb
    128.7 KB · Đọc: 2
Upvote 0
Thấy bạn dùng dictionary muốn ghép cột C và D thì tạo biến tạm ghép 3 cột đó lại. Thay vì đang để 1 cột như bây giờ
 
Upvote 0
Sai một li đi một dặm.
Rich (BB code):
If FrD <= NgayPS And ToD >= NgayPS Then
Cảm ơn anh @huuthang_bd , em đã điều chỉnh lại và thêm điều kiện khi tổng hợp,
Code đang bị lỗi "Type mismatch" ở dòng "tmp = DL1(i, 7) & "#" & DL1(i, 8) & "#" & DL1(i, 17)", nhờ anh hướng dẫn giúp em ạ!
 

File đính kèm

  • vba.xlsb
    131.7 KB · Đọc: 2
Upvote 0
@hieuvietmy2020 .
Bạn kiểm tra lại trong cột E/Sh Data có nhiều "Ton dau ky" và "Tồn đầu kì". 2 cái này có là 1 không?
Trong Code có dòng If DiGi Like "Ton dau ky" Then vậy khi DiGi ="Tồn đầu kì" thì bỏ qua hay sao?
 
Upvote 0
Dạ các ô này không thuộc phạm vi tổng hợp dữ liệu đấy ạ!
Bạn thật biết đùa.
Dòng này DL1 = .Range(.Cells(7, 1), .Cells(lr1, 17)).Value
và dòng này tmp = DL1(i, 7) & "#" & DL1(i, 8) & "#" & DL1(i, 17)
nếu soi lại trên sheet thì cái số tô đậm ở trên nó là cột gì? và các ô bị lỗi #NA nó trên nó thuộc cột gì?
 
Upvote 0
Bạn thật biết đùa.
Dòng này DL1 = .Range(.Cells(7, 1), .Cells(lr1, 17)).Value
và dòng này tmp = DL1(i, 7) & "#" & DL1(i, 8) & "#" & DL1(i, 17)
nếu soi lại trên sheet thì cái số tô đậm ở trên nó là cột gì? và các ô bị lỗi #NA nó trên nó thuộc cột gì?
Giao tiếp với mấy vụ thế này được cái cũng đỡ buồn ngủ anh nhỉ.
 
Upvote 0
Bạn thật biết đùa.
Dòng này DL1 = .Range(.Cells(7, 1), .Cells(lr1, 17)).Value
và dòng này tmp = DL1(i, 7) & "#" & DL1(i, 8) & "#" & DL1(i, 17)
nếu soi lại trên sheet thì cái số tô đậm ở trên nó là cột gì? và các ô bị lỗi #NA nó trên nó thuộc cột gì?
Dạ, cột 17 đang là cột Bộ Phận, em có điều chỉnh lại nội dung #NA cho phù hợp với tiêu chí khi chạy code, nhờ anh xem và hướng dẫn thêm giúp em!
 

File đính kèm

  • vba.xlsb
    131.7 KB · Đọc: 6
Upvote 0
Mình có điều này lưu ý đến chủ bài đăng:
Cột F ở trang 'Data' như là mã HH;
Vậy mà ở trang kia lại không cố cột mã HH này; Đó đang có thể là 1 sai lầm rất lớn của bạn về lâu về dài
Lí do thì mình cho rằng với 1 CSDL ta nên 'làm việc' chủ yếu với cột Mã HH này, còn cột 'Tên HH' chỉ là cột phụ trợ mà thôi!

Thêm nữa, như vậy ta nên đầu tư công sức thêm để luôn có 1 bộ mã HH khoa học & dễ tiếp cận
Cho phép mình giả dụ nha:
10. . . Cá nước mặn/ngọt
11. . . Cá nước ngọt/mặn
13. . . Cá nước lợ
15. . . Mực (các loại)
17. . . & 18. . . Cua các loại
. . . .
 
Upvote 0
Dạ, cột 17 đang là cột Bộ Phận, em có điều chỉnh lại nội dung #NA cho phù hợp với tiêu chí khi chạy code, nhờ anh xem và hướng dẫn thêm giúp em!
Thử thay đoạn
Mã:
If .Exists(tmp) Then
           .......
next i

thành
Mã:
If .Exists(tmp) Then
            Rw = .Item(tmp)
                If DiGi Like "Ton dau ky"  Or (FrD <= NgayPS And ToD >= NgayPS) Then
                kq(Rw, 1) = kq(Rw, 1) + DL1(i, 15)
                kq(Rw, 2) = kq(Rw, 2) + DL1(i, 16)
                kq(Rw, 3) = kq(Rw, 3) + DL1(i, 11)
                kq(Rw, 4) = kq(Rw, 4) + DL1(i, 12)
                kq(Rw, 5) = kq(Rw, 5) + DL1(i, 13)
                kq(Rw, 6) = kq(Rw, 6) + DL1(i, 14)
                End  if
                kq(Rw, 7) = kq(Rw, 1) + kq(Rw, 3) - kq(Rw, 5)
                kq(Rw, 8) = kq(Rw, 2) + kq(Rw, 4) - kq(Rw, 6)
            End If
bởi : Ngay trong dòng ton dau ky cũng đã có hoạt động xuất nhập

và chạy thử===> Kiểm tra.
Khuyên bạn: Hãy làm theo sự chỉ đãn của anh @SA_DQ để có 1 CSDL chuẩn, việc tra cứu sẽ không sợ nhầm lân sai sót
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom