Nhờ gỡ rối hàm tự động tăng số chứng từ

Liên hệ QC

dangquangdong

Thành viên mới
Tham gia
15/9/09
Bài viết
2
Được thích
0
Xin chào anh chị,
Tôi viết 1 hàm để tự động tăng số PX trong form Phieu_xuat_kho nhưng khi cho chạy form này thì bị hiện tượng như sau: Số phiếu xuất chỉ tự động tăng khi file excel mở sheet "Danh muc hang xuat" còn khi đang ở các sheet khác thì số phiếu xuất không tự động tăng.
Xin gửi file kèm theo.
Rất mong nhận được sự trợ giúp của các anh chị.
 

File đính kèm

Mã:
...
With Sheets("Danh muc hang xuat")
Rowmax = [A65536].End(xlUp).Row + 1
' Hiện tại đã có 3 phiếu, rowmax = 6
iCount = 1
SoCTMax = Val(Year(Now) & Thang & Ngay & "000")
Do While iCount < Rowmax
' icount = 2 < 6 ---------> Stop: icount luôn nhỏ hơn thì cho vòng lặp Do While ... kiểm tra làm gì?
iCount = iCount + 1
    If SoCTMax < Val(Right(Cells(iCount, 2), 11)) Then
       SoCTMax = Val(Right(Cells(iCount, 2), 11))
    End If
Loop
...

Theo tôi bạn nên tìm cách tăng phiếu xuất sao cho đơn giản
Ví dụ đơn giản: Nếu ngày hôm nay trùng với ngày phiếu cuối cùng thì số phiếu +1; Nếu không trùng thì số phiếu là Năm + tháng + ngày + 0001.
 
Upvote 0
Cảm ơn nguyentuhp,
Cách đánh số phiếu mà bạn gợi ý chặt chẽ hơn cách hiện tại tôi đang dùng vì nó đảm bảo được sự liên hệ với Số phiếu và Ngày lập phiếu trong trường hợp ngày lập phiếu không phải ngày hiện tại (Mặc dù cách bạn gợi ý không hề đơn giản để xử lý đối với người "i tờ" về VBA như tôi /*+ )
Tôi sử dụng vòng lặp để đảm bảo Số phiếu xuất (txtSoPX) nhập mới luôn lớn nhất (Tính theo 3 chữ số cuối là chỉ số phiếu xuất) so với các phiếu đã nhập cùng trong 1 ngày.
Vấn đề vướng mắc là không hiểu sao cứ để sheet Danh muc hang xuat là sheet hiện hành thì số phiếu tăng đúng ý đồ, nếu đang ở các sheet khác mà chạy form thì chỉ số phiếu luôn là 001 mà không tự động tăng cho các phiếu khác nhau ?!
 
Upvote 0
Web KT

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

Back
Top Bottom