Xin giúp code để phân bổ và copy sang hàng dọc !!!

Liên hệ QC

khongnho1993

Thành viên mới
Tham gia
6/6/18
Bài viết
10
Được thích
0
Xin chào toàn thể các anh chị em trong diễn đàn, mình có 1 file excel nhờ mọi người giúp đỡ code để phân bổ số lượng hàng ra các hóa đơn và copy từ sheets DMHX T.01 sang sheet XKHO DA, DU_2019 bên cạnh theo chiều dọc, hiện trong file mình đã xuất thủ công và tốn nhiều thời gian, mong mọi người xem qua và giúp đỡ.
 

File đính kèm

  • Danh muc hang xuat T12_2019.xlsb
    2.5 MB · Đọc: 6
Lần chỉnh sửa cuối:
Xin chào toàn thể các ACE trong group, mình có 1 file excel nhờ mọi người giúp đỡ code để phân bổ số lượng hàng ra các hóa đơn và copy sang sheet bên cạnh theo chiều dọc, hiện trong file mình đã xuất thủ công và tốn nhiều thời gian, mong mọi người xem qua và giúp đỡ.
Cho mình hỏi "ACE" và "group" là gì, không thấy sheet nào tên là sheet bên cạnh cả.
 
Upvote 0
Chủ bài đăng cho hỏi: Ngày (chứng từ) của các hóa đơn bạn lấy từ đâu ra (khi làm bằng tay) vậy?
 
Upvote 0
Chủ bài đăng cho hỏi: Ngày (chứng từ) của các hóa đơn bạn lấy từ đâu ra (khi làm bằng tay) vậy?
Ngày chứng từ là ngày hoá đơn ở sheet1 , mỗi 1 hoá đơn như vậy tương ứng với điều kiện 126 món ở bảng DMHX.T01 để chạy HLOOKUP Ở BẢNG XKHO, mình dùng code để nhân bản lên 126 lần mỗi hđ rồi cop sang đó thôi.
 
Upvote 0
Bạn kiểm thử số liệu
 

File đính kèm

  • Tìm Kiếm.rar
    4.9 MB · Đọc: 9
Upvote 0
Bạn kiểm thử số liệu
Đúng chuẩn ý mình là như vậy, chỉ có điều là cột STT là số phiếu Xuất ấy để sau này mình in chạy ra từng phiếu, mình đã chỉnh lại 1 chút ở bên sheet XKHO DA,DU , đó chính xác là bảng dữ liệu mà mình mong muốn, bạn sửa lại giúp mình một chút nhé.

Ngoài ra công việc việc xuất món ăn theo đơn giá và số lượng cho từng hoá đơn ở bên sheet DMHX T.01 cũng tốn thời gian, không biết có code nào làm được việc này không, chi tiết mình có ghi chú trong file ở sheet này, rất cảm ơn bạn!!!!
 

File đính kèm

  • DMuc hang xuat T12_2019.xlsm
    3.5 MB · Đọc: 6
Upvote 0
PHP:
Sub ChuyenBangDuLieu()
 Dim Cls As Range, Rng As Range, Rhd As Range, Cll As Range, WF As Object
 Dim Rws As Long, W As Long, Tmr As Double, STT As Long
 Dim MaNVL As String
 
 Set WF = Application.WorksheetFunction:                    Tmr = Time()
 With Sheet5
    Rws = .[B5].CurrentRegion.Rows.Count
    Set Rng = .Range(.[j3], .[j3].End(xlToRight))
    ReDim Arr(1 To Rws * Rng.Cells.Count, 1 To 14)
    Sheets("XKho").[A2].Resize(Rws * Rng.Cells.Count, 14).Value = ""
    For Each Cls In Rng         'Duyêt Theo Sô Hóa Don  '
        Set Rhd = Cls.Offset(2).Resize(Rws)
        STT = STT + 1
        For Each Cll In Rhd     'Duyêt Theo Mã Nguyên Vât Liêu  '
            MaNVL = .Cells(Cll.Row, "B").Value
            If MaNVL = "" Then Exit For
            If Cll.Value > 0 Then
                W = W + 1:                                  Arr(W, 1) = STT
                Arr(W, 3) = Cls.Value:
                Arr(W, 2) = WF.VLookup(Cls.Value, Sheets("Sheet1").Range("B1:D900"), 2, False)
                Arr(W, 4) = WF.VLookup(Cls.Value, Sheets("Sheet1").Range("B1:D900"), 3, False)
                Arr(W, 5) = MaNVL
                Arr(W, 6) = .Cells(Cll.Row, "C").Value:    Arr(W, 7) = .Cells(Cll.Row, "D").Value
                Arr(W, 8) = .Cells(Cll.Row, "E").Value:    Arr(W, 9) = Cll.Value
            End If
        Next Cll
    Next Cls
    If W Then
        Sheets("XKho").[A2].Resize(W, 14).Value = Arr()
    End If
    Sheets("XKho").Select:                                  [P1].Value = Timer() - Tmr
    MsgBox "Xong Rôi!", , "GPE.COM Xin Chào!"
 End With
End Sub
 
Upvote 0
PHP:
Sub ChuyenBangDuLieu()
Dim Cls As Range, Rng As Range, Rhd As Range, Cll As Range, WF As Object
Dim Rws As Long, W As Long, Tmr As Double, STT As Long
Dim MaNVL As String

Set WF = Application.WorksheetFunction:                    Tmr = Time()
With Sheet5
    Rws = .[B5].CurrentRegion.Rows.Count
    Set Rng = .Range(.[j3], .[j3].End(xlToRight))
    ReDim Arr(1 To Rws * Rng.Cells.Count, 1 To 14)
    Sheets("XKho").[A2].Resize(Rws * Rng.Cells.Count, 14).Value = ""
    For Each Cls In Rng         'Duyêt Theo Sô Hóa Don  '
        Set Rhd = Cls.Offset(2).Resize(Rws)
        STT = STT + 1
        For Each Cll In Rhd     'Duyêt Theo Mã Nguyên Vât Liêu  '
            MaNVL = .Cells(Cll.Row, "B").Value
            If MaNVL = "" Then Exit For
            If Cll.Value > 0 Then
                W = W + 1:                                  Arr(W, 1) = STT
                Arr(W, 3) = Cls.Value:
                Arr(W, 2) = WF.VLookup(Cls.Value, Sheets("Sheet1").Range("B1:D900"), 2, False)
                Arr(W, 4) = WF.VLookup(Cls.Value, Sheets("Sheet1").Range("B1:D900"), 3, False)
                Arr(W, 5) = MaNVL
                Arr(W, 6) = .Cells(Cll.Row, "C").Value:    Arr(W, 7) = .Cells(Cll.Row, "D").Value
                Arr(W, 8) = .Cells(Cll.Row, "E").Value:    Arr(W, 9) = Cll.Value
            End If
        Next Cll
    Next Cls
    If W Then
        Sheets("XKho").[A2].Resize(W, 14).Value = Arr()
    End If
    Sheets("XKho").Select:                                  [P1].Value = Timer() - Tmr
    MsgBox "Xong Rôi!", , "GPE.COM Xin Chào!"
End With
End Sub
Code chạy ổn, cảm ơn bạn rất nhiều, còn việc kia chắc vẫn phải làm bằng tay rồi!!!
 
Upvote 0
. . . . .
Ngoài ra công việc việc xuất món ăn theo đơn giá và số lượng cho từng hoá đơn ở bên sheet DMHX T.01 cũng tốn thời gian, không biết có code nào làm được việc này không, chi tiết mình có ghi chú trong file ở sheet này, !!!!
Bạn ghi ở trang tính nào? Hay trang ghi bạn đem ẩn đi rồ?
 
Upvote 0
Bạn ghi ở trang tính nào? Hay trang ghi bạn đem ẩn đi rồ?
Mình có ghi chú dòng màu đỏ ở phía dưới sheets DMHX T.01 ấy, đây là file lúc mình chưa xuất món ăn cho các hoá đơn, các file ở trên là đã xuất hết món cho các hoá đơn rồi.
 

File đính kèm

  • DMuc hang xuat T12_2019.xlsm
    3.5 MB · Đọc: 4
Upvote 0
Xuất lần lượt từng món ăn theo đơn giá , ưu tiền các món và đồ uống có giá cao vào các hóa đơn giá trị cao.
Còn lại món ăn có tô đỏ sẽ xuất cuối cùng sau khi đã xuất hết các món ăn theo tỷ lệ giá trị còn lại của các hóa đơn.
Sau phần lí thuyết này nên có phần ví dụ cụ thể.
 
Upvote 0
Sau phần lí thuyết này nên có phần ví dụ cụ thể.
vd : HĐ có tổng tiền hàng chưa bao gồm VAT là 103.500 mình sẽ cho tất cả các món ăn có đơn giá chẵn tiền vào trước, sau khi đã cho tất cả các món vào và hoá đơn vẫn còn lẻ 3.500 (lúc này không còn món nào trong danh mục xuất có đơn giá thấp như vây), tiếp tục mình sẽ cho món ăn có bôi màu đỏ ( món này là món ăn kèm tính theo định lượng (kg) (lấy số tiền 3.500 / đơn giá) để lấp đầy số tiền lẻ còn lại trên HĐ).
(Tổng giá trị các món ăn = tổng giá trị các hđ xuất ra trong kỳ , công việc của mình là phân phối ra cho hợp lý.)

P/s: Hơn nữa để cho khi in Bill đặt món được được thực tế nhất mình đang để mỗi Bill khoảng 10-25 món ( Nghĩa là mỗi món đặt trên bill sẽ có số lượng 5,10,15..... chứ không lẻ tẻ mỗi món chỉ có vài đĩa hay bát).
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom