Giúp công thức tự nhảy số thứ tự cho đơn hàng

Liên hệ QC

gau2603

Thành viên mới
Tham gia
29/1/13
Bài viết
25
Được thích
1
Chào anh/chị,

Em có một file gồm các sheet:
Sheet TotalPO và NCC là 2sheet chứa dữ liệu
Sheet POnumber là sheet lập đơn hàng
Sheet Ghichep là sheet tổng hợp các đơn hàng em đã lập

Em muốn số PO của đơn hàng tự động nhảy số +1 khi hoàn thành và nhấn lưu đơn hàng đó. Nhưng khi em áp hàm và code vào để chạy thì khi nhấn nút lưu nó lại nhảy lên +5 hay +6 lận. Mong mọi người giúp em fix lỗi này với.

Em xin cảm ơn!!!
 

File đính kèm

  • file minh hoa.xls
    29.5 KB · Đọc: 31
Công thức tính PoNumber của bạn
Mã:
=VLOOKUP(B2,timkiem,2,0)&"-"&RIGHT(C4,2)&0&D4&"-"&IF(VLOOKUP(B2,sopo,2,0)<10,0&VLOOKUP(B2,sopo,2,0)+1,[B][COLOR=#ff0000]VLOOKUP(B2,sopo,2,0)+1[/COLOR][/B])
Cái phần màu đỏ là phần nhảy số thứ tự của bạn. Trong phần ",2" của công thức trên là giá trị tìm được của công thức tại sheet TotalPo
Mã:
=COUNTIF($B:$B,C1)

=> Khi bạn chạy Code của bạn viết
Mã:
Sub Ghichep()
    Dim eR As Long
    Dim i As Long
    Dim Arr
    eR = Sheet5.Range("B65536").End(3).Row
    Arr = Range("A1:Q" & Range("B65536").End(3).Row).Value
    For i = 1 To UBound(Arr, 1)
        Sheet6.Cells(eR + i, 2) = [b2]
        Sheet4.Cells(eR + i, 2) = [b2]
    Next
End Sub
Thì nó sẽ Copy dữ liệu từ sheet 5 sang cột B sheet TotalPo => Countif sẽ đếm 5 hay 6 là giá trị đếm cột B
Nói đến đây chắc bạn đã hình dung ra nguyên nhân tại sao và sẽ có phương án thích hợp
 
Công thức tính PoNumber của bạn
Mã:
=VLOOKUP(B2,timkiem,2,0)&"-"&RIGHT(C4,2)&0&D4&"-"&IF(VLOOKUP(B2,sopo,2,0)<10,0&VLOOKUP(B2,sopo,2,0)+1,[B][COLOR=#ff0000]VLOOKUP(B2,sopo,2,0)+1[/COLOR][/B])
Cái phần màu đỏ là phần nhảy số thứ tự của bạn. Trong phần ",2" của công thức trên là giá trị tìm được của công thức tại sheet TotalPo
Mã:
=COUNTIF($B:$B,C1)

=> Khi bạn chạy Code của bạn viết
Mã:
Sub Ghichep()
    Dim eR As Long
    Dim i As Long
    Dim Arr
    eR = Sheet5.Range("B65536").End(3).Row
    Arr = Range("A1:Q" & Range("B65536").End(3).Row).Value
    For i = 1 To UBound(Arr, 1)
        Sheet6.Cells(eR + i, 2) = [b2]
        Sheet4.Cells(eR + i, 2) = [b2]
    Next
End Sub
Thì nó sẽ Copy dữ liệu từ sheet 5 sang cột B sheet TotalPo => Countif sẽ đếm 5 hay 6 là giá trị đếm cột B
Nói đến đây chắc bạn đã hình dung ra nguyên nhân tại sao và sẽ có phương án thích hợp

Nguyên nhân thì mình hiểu nhưng phương án thì nghĩ mãi không ra :(
 
Nguyên nhân thì mình hiểu nhưng phương án thì nghĩ mãi không ra :(
Thì bạn đi giải quyết từng cái một. File của bạn, dữ liệu cũng của bạn nên khi đựt công thức sẽ có ý đồ riêng. Bạn chú ý phần Countif của bạn mục đích làm gì? Thay thế các phương án phu hợp.
 
Thì bạn đi giải quyết từng cái một. File của bạn, dữ liệu cũng của bạn nên khi đựt công thức sẽ có ý đồ riêng. Bạn chú ý phần Countif của bạn mục đích làm gì? Thay thế các phương án phu hợp.

Hi bạn,

Phần countif mình dùng để đếm số lần lưu đơn hàng của mình, từ đó suy ra số đơn hàng mới bằng cách cộng thêm 1 vào. Nhưng khi lưu dữ liệu thì nó tự động lưu 5 lần. Mình thì chưa rành về code, chỉ vọc được về các hàm cơ bản thôi. Đoạn code trên là mình nhờ bạn viết giúp nữa mà :)
Nguyên nhân của nhảy số là khi bấm nút lưu thì code tự động ghi nhận kết quả đến 5lần liên tục. Nhưng do không hiểu tí nào về code nên không biết làm thế nào để khắc phục...
 
Web KT

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

Back
Top Bottom