Chuyển những đơn hàng chưa chạy sang ngày tiếp theo

Liên hệ QC

harukenshiro

Thành viên mới
Tham gia
13/12/18
Bài viết
26
Được thích
4
Chào các anh/chị, mình có một file như bên dưới, dùng để sắp xếp, lên kế hoạch in ấn cũng như đánh dấu tình trạng của đơn hàng.
Hiện mình muốn chuyển những đơn hàng còn chưa chạy xong sang ngày tiếp theo để tiếp tục theo dõi tình trạng đơn hàng, nhờ các anh/chị hỗ trợ dùng VBA giúp mình, cách làm và kết quả mình có ghi lại trong file.

Cảm ơn anh/chị trước.
 

File đính kèm

  • Kế hoạch sản xuất.xlsb
    189.4 KB · Đọc: 8
Lần chỉnh sửa cuối:
Mình gửi lại file, đã cập nhật luôn ở đầu bài, mong các bạn xem giúp. Mình cảm ơn.
 

File đính kèm

  • Kế hoạch sản xuất.xlsb
    189.4 KB · Đọc: 31
Upvote 0
Up lên để mong các anh/chị giúp đỡ ạ. Mình làm ca đêm nên buổi sáng có thể phản hồi trễ, mong các anh/chị thông cảm.
 
Upvote 0
Upvote 0
Yêu cầu phía bên trên thì không khó, tuy nhiên cái lưu ý làm rối vấn đề, đọc không hiểu.

Bạn có thể bỏ qua bước lưu ý , mình cẩn thận ghi lại dựa trên thao tác tay của mình hay làm thôi. Có thể hiểu là copy các tiến trình chưa chạy của một lệnh sản xuất, kèm theo bước Shrink của lệnh sản xuất đó ạ. Dữ liệu thực tế lên tới hơn 50 máy, mình copy tay rất mất thời gian, lại hay sai sót và thiếu các tiến trình. Mong được sự giúp đỡ của các bạn.
 
Upvote 0
Bạn có thể bỏ qua bước lưu ý , mình cẩn thận ghi lại dựa trên thao tác tay của mình hay làm thôi. Có thể hiểu là copy các tiến trình chưa chạy của một lệnh sản xuất, kèm theo bước Shrink của lệnh sản xuất đó ạ. Dữ liệu thực tế lên tới hơn 50 máy, mình copy tay rất mất thời gian, lại hay sai sót và thiếu các tiến trình. Mong được sự giúp đỡ của các bạn.
Giờ khuya quá rồi. Nếu mai vẫn chưa có ai có code cho bạn thì tôi sẽ thử xem.
 
Upvote 0
Giờ khuya quá rồi. Nếu mai vẫn chưa có ai có code cho bạn thì tôi sẽ thử xem.
Bạn chạy thử code. Mới chỉ copy qua 4-Apr và copy công thức. Cột MAY tính sau.
Rich (BB code):
Sub CopyKHSX()
Dim Rg As Range
Dim i&, j&, k&
With Sheet35
    For i = 35 To .Range("D" & Rows.Count).End(xlUp).Row
        j = j + 1
        If .Range("D" & i + 1) <> .Range("D" & i) Then
            If .Range("AI" & i) = "" Then
                If Rg Is Nothing Then
                    Set Rg = .Range("A" & i - j + 1)
T1:
                    For k = i To i - j + 1 Step -1
                        If .Range("AI" & k) = "" Then
                            Set Rg = Union(Rg, .Range("A" & k))
                        Else
                            j = 0: Exit For
                        End If
                        If k = i - j + 1 Then j = 0
                    Next
                Else
                    Set Rg = Union(Rg, .Range("A" & i - j + 1))
                    GoTo T1
                End If
            Else
                j = 0
            End If
        End If
    Next
    
End With
Sheet36.Rows("35:" & 35 + Rg.Cells.Count - 1).Insert Shift:=xlDown
Rg.EntireRow.Copy Sheet36.Range("A35")
Range("AJ" & 35 + Rg.Cells.Count & ":AQ" & 35 + Rg.Cells.Count).Copy Range("AJ35:AQ" & 35 + Rg.Cells.Count - 1)
Application.CutCopyMode = False
End Sub
 
Upvote 0
Xin lỗi vì phản hồi trễ, hiện tại mình mới quay lại làm việc. Để mình chạy thử Code rồi báo cho bạn kết quả nhé, cảm ơn bạn nhiều.
Chào anh, sau khi test thì code hoạt động tốt, nhưng thay vì mình bỏ tất cả lên trên, thì mình có thể chèn những đơn chưa in lên trước theo từng máy không ạ(xin lỗi anh vì trong Cách làm mình nói không rõ).
Ví dụ: Đơn hàng chưa in của máy A2 sẽ chèn lên trước đơn hàng hiện có của máy A2, nhưng vẫn nằm sau A1, cứ thế theo thứ tự đến máy cuối cùng. Nếu ngày tiếp theo không có máy A2, thì chèn lên trước máy có số thứ tự kế tiếp.

Do mình đang dùng cách sort máy, nên máy tiếp theo của Máy S1 không phải là S2, mà là S10,11,12,13,14,...... Không biết có gây khó khăn gì khi bác code không( trong trường hợp sheet 4-Apr không có máy S1, thì đơn S1 từ sheet 2-Apr phải chèn trước máy S10,11,12,13,14).

Anh có thể xem thử sheet Kết quả, đó là mình đã làm bằng tay ạ. Ngày mai mình có làm ca ngày nên có thể phản hồi cho anh sớm. Mình cảm ơn trước.
 
Upvote 0
Chào anh, sau khi test thì code hoạt động tốt, nhưng thay vì mình bỏ tất cả lên trên, thì mình có thể chèn những đơn chưa in lên trước theo từng máy không ạ(xin lỗi anh vì trong Cách làm mình nói không rõ).
Ví dụ: Đơn hàng chưa in của máy A2 sẽ chèn lên trước đơn hàng hiện có của máy A2, nhưng vẫn nằm sau A1, cứ thế theo thứ tự đến máy cuối cùng. Nếu ngày tiếp theo không có máy A2, thì chèn lên trước máy có số thứ tự kế tiếp.

Do mình đang dùng cách sort máy, nên máy tiếp theo của Máy S1 không phải là S2, mà là S10,11,12,13,14,...... Không biết có gây khó khăn gì khi bác code không( trong trường hợp sheet 4-Apr không có máy S1, thì đơn S1 từ sheet 2-Apr phải chèn trước máy S10,11,12,13,14).

Anh có thể xem thử sheet Kết quả, đó là mình đã làm bằng tay ạ. Ngày mai mình có làm ca ngày nên có thể phản hồi cho anh sớm. Mình cảm ơn trước.
Để tôi xem và chỉnh lại code. Chưa hứa trước là lúc nào có file
 
Upvote 0
Bạn test file, có gì thông tin lại.

Bạn thông cảm do phản hồi trễ, hôm nay mình mới đi làm lại do hơn 1 tuần mắc Covid.
Code của bạn chạy rất tốt, nhưng những máy không có ở ngày hôm sau(ở đây là ngày 4-Apr), nó sẽ mặc định bỏ qua luôn.

Ví dụ: Máy F2,F3,F4,F5(còn những đơn chưa xong ở ngày 2-Apr nhưng ko có trong kế hoạch của ngày 4-Apr) sẽ bị bỏ qua và không copy qua ngày 4-Apr. Mình có thử xóa máy S10,S11 thì nó cũng không copy qua luôn(nếu để có máy thì vẫn copy).

Một lỗi nữa là trong trường hợp OH trùng nhau, nhưng khác số tờ, ví như OH2204-0020 thì khi copy qua nó sẽ tự xóa những còn lại và đơn này bị copy thiếu các tiến trình còn lại. Mình có gửi kèm file đã chạy code.

Biết là đã lâu nên có thể bạn không còn nhớ về code này nữa, nhưng hi vọng vẫn nhận được phản hồi từ bạn. Mình cảm ơn.
 

File đính kèm

  • CopyKHSX_harukenshiro.xlsb
    255.4 KB · Đọc: 0
Upvote 0
Vụ bỏ qua khi không có máy ngày hôm sau là do tôi sơ suất, quên mất. Vụ số tờ thì tôi không hiểu từ đầu nên không nhận biết số tờ ở đâu.
 
Upvote 0
Vụ bỏ qua khi không có máy ngày hôm sau là do tôi sơ suất, quên mất. Vụ số tờ thì tôi không hiểu từ đầu nên không nhận biết số tờ ở đâu.
Về số tờ, cách giải thích dễ hiểu nhất là một đơn hàng có số lượng lớn thì sản xuất sẽ phải chia thành nhiều lần chạy, mỗi lần chạy tới một số hàng nhất định thì phải căn chỉnh máy lại để tránh lệch dòng,hàng khi in( ở cty mình gọi là một part hàng), ở đây mình sẽ dựa trên báo cáo của sản xuất đưa ra để chia, nên một lệnh sản xuất có thể lặp lại nhiều với tiến trình giống nhau(số tờ có thể khác hoặc giống nhau).

Xin lỗi nếu cách giải thích có phần khó hiểu, khi có thời gian mong bạn xem lại giúp mình. Mình cảm ơn.
 
Lần chỉnh sửa cuối:
Upvote 0
Về số tờ, cách giải thích dễ hiểu nhất là một đơn hàng có số lượng lớn thì sản xuất sẽ phải chia thành nhiều lần chạy, mỗi lần chạy tới một số hàng nhất định thì phải căn chỉnh máy lại để tránh lệch dòng,hàng khi in( ở cty mình gọi là một part hàng), ở đây mình sẽ dựa trên báo cáo của sản xuất đưa ra để chia, nên một lệnh sản xuất có thể lặp lại nhiều với tiến trình giống nhau(số tờ có thể khác hoặc giống nhau).

Hiện tại khi code thực hiện copy qua, nếu 1 lệnh sản xuất có nhiều hơn 2 part, như đơn 0220, code vẫn lấy thêm 1 lớp Shrink của part hàng 310 tờ dù part hàng này đã hoàn thành rồi, dẫn tới part hàng 372 tờ chưa hoàn thành hết khi copy qua có tới 2 lớp Shrink(một lớp 310 tờ và 1 lớp 372 tờ) cụ thể như file mình gửi bên trên.

Xin lỗi nếu cách giải thích có phần khó hiểu, khi có thời gian mong bạn xem lại giúp mình. Mình cảm ơn.
Về số tờ chắc là ổn rồi đấy. Riêng chuyện sắp xếp, tìm thấy máy thì tôi chép lên bên trên, không tìm thấy thì chép xuống dưới cùng. Sau đó dùng chức năng sort của Excel nên không biết trúng trật thế nào. Bạn kiểm tra lại thử.
 

File đính kèm

  • CopyKHSX2_harukenshiro.xlsm
    345.4 KB · Đọc: 11
Upvote 0
Về số tờ chắc là ổn rồi đấy. Riêng chuyện sắp xếp, tìm thấy máy thì tôi chép lên bên trên, không tìm thấy thì chép xuống dưới cùng. Sau đó dùng chức năng sort của Excel nên không biết trúng trật thế nào. Bạn kiểm tra lại thử.
Chỉnh lại cái hàm Dongchen cái để khỏi sort Excel gây mất kiểm soát. Bạn test cả hai xem cái nào đúng cái nào sai, hay sai hết cả hai?
 

File đính kèm

  • CopyKHSX2_harukenshiro.xlsm
    297 KB · Đọc: 11
Upvote 0
Web KT
Back
Top Bottom