Tính toán số lượng cần sử dụng theo định mức

Liên hệ QC

soledad_90

Thành viên thường trực
Tham gia
12/1/10
Bài viết
250
Được thích
43
Giới tính
Nam
Em xin chào diễn đàn !
Hiện tại với việc tính toán thủ công , mất khá nhiều thời gian, và còn nhầm lẫn sai sót.
Em xin nhờ diễn đàn hỗ trợ em tính toán số lượng / theo quy cách / loại vật tư cần sử dụng chi tiết theo từng đơn hàng/mã hàng/màu
Với sheet DataSL là dữ liệu gốc chi tiết , được cập nhật theo từng thời điểm có phát sinh
sheet Quy cach soan là dữ liệu để tham chiếu đúng kiểu dáng / quy cách / nhóm size
Sheet LSX là sheet cần thể hiện chi tiết ứng với từng đơn hàng/mã hàng/màu / số lượng tổng / quốc gia : sẽ thể hiện ra là tên VTHH, kiểu dáng, quy cách, số lượng.
Em có gửi file đính kèm.
Em xin nhận sự trợ giúp từ diễn đàn ạ.
Em xin cảm ơn ạ.
 

File đính kèm

  • 220520_ soan hop.xlsx
    75.4 KB · Đọc: 14
Em xin chào diễn đàn !
Hiện tại với việc tính toán thủ công , mất khá nhiều thời gian, và còn nhầm lẫn sai sót.
Em xin nhờ diễn đàn hỗ trợ em tính toán số lượng / theo quy cách / loại vật tư cần sử dụng chi tiết theo từng đơn hàng/mã hàng/màu
Với sheet DataSL là dữ liệu gốc chi tiết , được cập nhật theo từng thời điểm có phát sinh
sheet Quy cach soan là dữ liệu để tham chiếu đúng kiểu dáng / quy cách / nhóm size
Sheet LSX là sheet cần thể hiện chi tiết ứng với từng đơn hàng/mã hàng/màu / số lượng tổng / quốc gia : sẽ thể hiện ra là tên VTHH, kiểu dáng, quy cách, số lượng.
Em có gửi file đính kèm.
Em xin nhận sự trợ giúp từ diễn đàn ạ.
Em xin cảm ơn ạ.
Cần hoàn chỉnh file mới viết code chuẩn
Cột DB sheet dataSL không nên có giá trị #NA
Sheet LSX với thiết kế vùng kết quả không hợp lý, bạn làm tay toàn bộ kết quả sẽ thấy rất rối, nếu muốn giữ nguyên thì gởi lại file với toàn bộ các kết quả thật chuẩn cho các khả năng có thể xảy ra, code sẽ trả về y như thế và nếu bạn đổi ý theo cách khác hoặc thêm dữ liệu mới code chạy không như ý sẽ không viết lại
 
Upvote 0
Cần hoàn chỉnh file mới viết code chuẩn
Cột DB sheet dataSL không nên có giá trị #NA
Sheet LSX với thiết kế vùng kết quả không hợp lý, bạn làm tay toàn bộ kết quả sẽ thấy rất rối, nếu muốn giữ nguyên thì gởi lại file với toàn bộ các kết quả thật chuẩn cho các khả năng có thể xảy ra, code sẽ trả về y như thế và nếu bạn đổi ý theo cách khác hoặc thêm dữ liệu mới code chạy không như ý sẽ không viết lại
Dạ em cảm ơn góp ý của anh ạ.
Em có chỉnh và cập nhật thêm các dữ liệu với các trường hợp như file đính kèm rồi ạ.
" Sheet LSX với thiết kế vùng kết quả không hợp lý " Do trước đây em vẫn đang làm thủ công nên mới chỉ dừng ở cách hiển thị kết quả như thế ạ.
Mong anh có gợi ý thêm cho cách hiển thị kết quả này ạ.
Em cảm ơn anh.
 

File đính kèm

  • 220520_ soan hop_V2.xlsx
    184.6 KB · Đọc: 16
Upvote 0
Dạ em cảm ơn góp ý của anh ạ.
Em có chỉnh và cập nhật thêm các dữ liệu với các trường hợp như file đính kèm rồi ạ.
" Sheet LSX với thiết kế vùng kết quả không hợp lý " Do trước đây em vẫn đang làm thủ công nên mới chỉ dừng ở cách hiển thị kết quả như thế ạ.
Mong anh có gợi ý thêm cho cách hiển thị kết quả này ạ.
Em cảm ơn anh.
Kiểm tra lại kết quả
Mã:
Option Explicit
Sub XYZ()
  Dim aDH(), aSize(), aQC(), aLSX(), res(), aTD(), arr, dic As Object
  Dim sRow&, i&, ik&, r&, k&, j&, c&, jC&, sC&
  Dim KDang$, size#, key$
 
  Set dic = CreateObject("scripting.dictionary")
  With Sheets("quy cach soan") 'Sheet quy cach soan
    aQC = .Range("D2", .Range("L" & Rows.Count).End(xlUp)).Value 'Quy cach
  End With
  sRow = UBound(aQC)
  sC = UBound(aQC, 2) + 2 'So cot cua mang quy cach
  ReDim Preserve aQC(1 To sRow, 1 To sC)
  For i = 1 To sRow
    If aQC(i, 3) <> Empty And IsNumeric(aQC(i, 3)) Then
      k = k + 1
      For j = 1 To sC - 2
        aQC(k, j) = aQC(i, j)
      Next j
      For j = 3 To sC - 3
        If aQC(i, j) = Empty Then Exit For
      Next j
      aQC(k, sC - 1) = aQC(i, j - 1) 'Size Max
      aQC(k, sC) = aQC(i, 3) & "-" & aQC(i, j - 1) 'Size min - max
     
      key = Replace(aQC(k, 1), " ", "") & "|" & Trim(aQC(k, 2)) 'Quy - Kieu dang
      If dic.exists(key) = False Then
        dic.Add key, Array(k)
      Else
        arr = dic.Item(key)
        ReDim Preserve arr(0 To UBound(arr) + 1)
        arr(UBound(arr)) = k
        dic.Item(key) = arr 'Mang cac thu tu dong cua aQC
      End If
    End If
  Next i
 
  With Sheets("DataSL") 'Sheet DataSL
    i = .Range("A" & Rows.Count).End(xlUp).Row
    aDH = .Range("C5:BE" & i).Value
    aSize = .Range("C4:BA4").Value
  End With
  sRow = UBound(aDH)
  For i = 1 To sRow
    dic.Add aDH(i, 1) & "|" & aDH(i, 5) & "|" & aDH(i, 6) & "|" & aDH(i, 52), i
  Next i

  With Sheets("LSX") 'Sheet LSX
    aLSX = .Range("B5", .Range("G" & Rows.Count).End(xlUp)).Value
  End With
  sRow = UBound(aLSX)
  ReDim res(1 To sRow, 1 To k + 2)
  ReDim aTD(1 To 2, 1 To k + 2)
  c = 2 ' cot ket qua
  For i = 1 To sRow
    key = aLSX(i, 1) & "|" & aLSX(i, 2) & "|" & aLSX(i, 3) & "|" & aLSX(i, 6)
    If dic.exists(key) Then
      ik = dic.Item(key) 'Thu tu dong mang aDH
      KDang = Trim(aDH(ik, 55))
      res(i, 1) = aDH(ik, 54)
      res(i, 2) = KDang
      key = aLSX(i, 6) & "|" & KDang 'Quy - Kieu dang
      If dic.exists(key) Then
        arr = dic.Item(key) 'Mang cac thu tu dong cua aQC
        For j = 13 To 51
          If aDH(ik, j) > 0 Then
            size = Val(Replace(aSize(1, j), ",", "."))
            For k = 0 To UBound(arr)
              r = arr(k) 'Thu tu dong mang quy cach
              If size >= aQC(r, 3) And size <= aQC(r, sC - 1) Then
                key = aQC(r, sC - 2) & "|" & aQC(r, sC - 1) 'Kich thuoc - Size
                If dic.exists(key) = False Then
                  c = c + 1 ' cot ket qua
                  dic.Add key, c
                  aTD(1, c) = aQC(r, sC - 2)
                  aTD(2, c) = aQC(r, sC)
                End If
                jC = dic.Item(key)
                res(i, jC) = res(i, jC) + aDH(ik, j)
                Exit For
              End If
            Next k
          End If
        Next j
      End If
    End If
  Next i
  With Sheets("LSX") 'Sheet LSX
    .Range("H3").Resize(2, UBound(res, 2)) = aTD
    .Range("H5").Resize(sRow, UBound(res, 2)) = res
  End With
End Sub
 
Upvote 0
Kiểm tra lại kết quả
Mã:
Option Explicit
Sub XYZ()
  Dim aDH(), aSize(), aQC(), aLSX(), res(), aTD(), arr, dic As Object
  Dim sRow&, i&, ik&, r&, k&, j&, c&, jC&, sC&
  Dim KDang$, size#, key$
 
  Set dic = CreateObject("scripting.dictionary")
  With Sheets("quy cach soan") 'Sheet quy cach soan
    aQC = .Range("D2", .Range("L" & Rows.Count).End(xlUp)).Value 'Quy cach
  End With
  sRow = UBound(aQC)
  sC = UBound(aQC, 2) + 2 'So cot cua mang quy cach
  ReDim Preserve aQC(1 To sRow, 1 To sC)
  For i = 1 To sRow
    If aQC(i, 3) <> Empty And IsNumeric(aQC(i, 3)) Then
      k = k + 1
      For j = 1 To sC - 2
        aQC(k, j) = aQC(i, j)
      Next j
      For j = 3 To sC - 3
        If aQC(i, j) = Empty Then Exit For
      Next j
      aQC(k, sC - 1) = aQC(i, j - 1) 'Size Max
      aQC(k, sC) = aQC(i, 3) & "-" & aQC(i, j - 1) 'Size min - max
    
      key = Replace(aQC(k, 1), " ", "") & "|" & Trim(aQC(k, 2)) 'Quy - Kieu dang
      If dic.exists(key) = False Then
        dic.Add key, Array(k)
      Else
        arr = dic.Item(key)
        ReDim Preserve arr(0 To UBound(arr) + 1)
        arr(UBound(arr)) = k
        dic.Item(key) = arr 'Mang cac thu tu dong cua aQC
      End If
    End If
  Next i
 
  With Sheets("DataSL") 'Sheet DataSL
    i = .Range("A" & Rows.Count).End(xlUp).Row
    aDH = .Range("C5:BE" & i).Value
    aSize = .Range("C4:BA4").Value
  End With
  sRow = UBound(aDH)
  For i = 1 To sRow
    dic.Add aDH(i, 1) & "|" & aDH(i, 5) & "|" & aDH(i, 6) & "|" & aDH(i, 52), i
  Next i

  With Sheets("LSX") 'Sheet LSX
    aLSX = .Range("B5", .Range("G" & Rows.Count).End(xlUp)).Value
  End With
  sRow = UBound(aLSX)
  ReDim res(1 To sRow, 1 To k + 2)
  ReDim aTD(1 To 2, 1 To k + 2)
  c = 2 ' cot ket qua
  For i = 1 To sRow
    key = aLSX(i, 1) & "|" & aLSX(i, 2) & "|" & aLSX(i, 3) & "|" & aLSX(i, 6)
    If dic.exists(key) Then
      ik = dic.Item(key) 'Thu tu dong mang aDH
      KDang = Trim(aDH(ik, 55))
      res(i, 1) = aDH(ik, 54)
      res(i, 2) = KDang
      key = aLSX(i, 6) & "|" & KDang 'Quy - Kieu dang
      If dic.exists(key) Then
        arr = dic.Item(key) 'Mang cac thu tu dong cua aQC
        For j = 13 To 51
          If aDH(ik, j) > 0 Then
            size = Val(Replace(aSize(1, j), ",", "."))
            For k = 0 To UBound(arr)
              r = arr(k) 'Thu tu dong mang quy cach
              If size >= aQC(r, 3) And size <= aQC(r, sC - 1) Then
                key = aQC(r, sC - 2) & "|" & aQC(r, sC - 1) 'Kich thuoc - Size
                If dic.exists(key) = False Then
                  c = c + 1 ' cot ket qua
                  dic.Add key, c
                  aTD(1, c) = aQC(r, sC - 2)
                  aTD(2, c) = aQC(r, sC)
                End If
                jC = dic.Item(key)
                res(i, jC) = res(i, jC) + aDH(ik, j)
                Exit For
              End If
            Next k
          End If
        Next j
      End If
    End If
  Next i
  With Sheets("LSX") 'Sheet LSX
    .Range("H3").Resize(2, UBound(res, 2)) = aTD
    .Range("H5").Resize(sRow, UBound(res, 2)) = res
  End With
End Sub
Em cảm ơn anh ạ.
Sau khi e chạy bổ sung thêm dữ liệu vào , và chạy code thì có báo lỗi như này ạ.
Anh hướng dẫn dùm em để phát hiện sai ở đâu với ạ1653296391918.png
 

File đính kèm

  • 220520_ soan hop_V2.xlsm
    528.6 KB · Đọc: 6
Upvote 0
Upvote 0
Code viết cho dữ liệu thật, không cho dữ liệu giả
Dạ. Dữ liệu em trình bày là từ thực tế trong quá trình làm việc ạ,
File đầu khi gửi nên là tổng hợp các trường hợp phát sinh , file sau này là tổng hợp từ các dữ liệu đã tổng hợp tất cả các tháng trong năm đã tổng hợp trước đó ạ.
 
Upvote 0
Dạ. Dữ liệu em trình bày là từ thực tế trong quá trình làm việc ạ,
File đầu khi gửi nên là tổng hợp các trường hợp phát sinh , file sau này là tổng hợp từ các dữ liệu đã tổng hợp tất cả các tháng trong năm đã tổng hợp trước đó ạ.
Sheet dataSL, dòng 5 và dòng 589 khác nhau cái gì và tương tự cho các dòng dưới
 
Upvote 0
Sheet dataSL, dòng 5 và dòng 589 khác nhau cái gì và tương tự cho các dòng dưới
Em cảm ơn ạ.
Em đã cho kiểm tra lại thông tin và kết quả hiển thị rồi ạ.
Sheet LSX với thiết kế vùng kết quả không hợp lý, bạn làm tay toàn bộ kết quả sẽ thấy rất rối,
nếu bạn đổi ý theo cách khác hoặc thêm dữ liệu mới code chạy không như ý sẽ không viết lại
Em có suy nghĩ cách hiển thị mới cho sheet LSX ( thay thế bằng sheet SoanLenh) và cũng đọc kỹ những chia sẻ của anh./ Nếu được có thể , em xin code cho thay đổi kết quả hiển thị như ở sheet SoanLenh em có làm mẫu ạ.
Em cảm ơn anh nhiều ạ.
 

File đính kèm

  • 220520_ soan hop_V3.xlsm
    567.7 KB · Đọc: 16
Upvote 0
Em cảm ơn ạ.
Em đã cho kiểm tra lại thông tin và kết quả hiển thị rồi ạ.


Em có suy nghĩ cách hiển thị mới cho sheet LSX ( thay thế bằng sheet SoanLenh) và cũng đọc kỹ những chia sẻ của anh./ Nếu được có thể , em xin code cho thay đổi kết quả hiển thị như ở sheet SoanLenh em có làm mẫu ạ.
Em cảm ơn anh nhiều ạ.
Các đơn hàng kết quả lấy từ đâu?
 
Upvote 0
Ý mình là số dòng kết quả có 35 dòng, sao không lấy hết các đơn hàng từ sheet data sl, còn có điều kiện gì quy định lấy đơn hàng nào không?
Không anh ạ.
Vì em thấy lấy kết quả từ sheet lsx thì anh sẽ phải viết thêm code mới cho sheet soanlenh ( chuyển đổi định dạng bảng biểu ). Nên em mới nghĩ là vẫn những yêu cầu hiển thị kết quả đó, chỉ là thay đổi cách hiển thị như sheet soanlenh nên em mới nói là lấy từ sheet data sl ạ.
Anh có thể lấy từ sheet lsx cũng được ạ. Vì không có thêm điều kiện nào ạ.
 
Upvote 0
Không anh ạ.
Vì em thấy lấy kết quả từ sheet lsx thì anh sẽ phải viết thêm code mới cho sheet soanlenh ( chuyển đổi định dạng bảng biểu ). Nên em mới nghĩ là vẫn những yêu cầu hiển thị kết quả đó, chỉ là thay đổi cách hiển thị như sheet soanlenh nên em mới nói là lấy từ sheet data sl ạ.
Anh có thể lấy từ sheet lsx cũng được ạ. Vì không có thêm điều kiện nào ạ.
Mình đã nói là không chỉnh code nên phải viết code mới, dữ liệu lấy từ 3 sheet, kết quả lưu ở sheet SoanLenh
Mã:
Option Explicit
Sub LenhSanXuat()
  Dim aDH(), aSize(), aQC(), aLSX(), res(), arr, dic As Object
  Dim sRow&, i&, ik&, id&, n&, r&, k&, j&, c&, jC&, sC&
  Dim KDang$, size#, key$, key2$, key3$
 
  Set dic = CreateObject("scripting.dictionary")
  With Sheets("quy cach soan") 'Sheet quy cach soan
    aQC = .Range("D2", .Range("L" & Rows.Count).End(xlUp)).Value 'Quy cach
  End With
  sRow = UBound(aQC)
  sC = UBound(aQC, 2) + 2 'So cot cua mang quy cach
  ReDim Preserve aQC(1 To sRow, 1 To sC)
  For i = 1 To sRow
    If aQC(i, 3) <> Empty And IsNumeric(aQC(i, 3)) Then
      k = k + 1
      For j = 1 To sC - 2
        aQC(k, j) = aQC(i, j)
      Next j
      For j = 3 To sC - 3
        If aQC(i, j) = Empty Then Exit For
      Next j
      aQC(k, sC - 1) = aQC(i, j - 1) 'Size Max
      aQC(k, sC) = aQC(i, 3) & "-" & aQC(i, j - 1) 'Size min - max
    
      key = Replace(aQC(k, 1), " ", "") & "|" & Trim(aQC(k, 2)) 'Quy - Kieu dang
      If dic.exists(key) = False Then
        dic.Add key, Array(k)
      Else
        arr = dic.Item(key)
        ReDim Preserve arr(0 To UBound(arr) + 1)
        arr(UBound(arr)) = k
        dic.Item(key) = arr 'Mang cac thu tu dong cua aQC
      End If
    End If
  Next i
 
  With Sheets("DataSL") 'Sheet DataSL
    i = .Range("A" & Rows.Count).End(xlUp).Row
    aDH = .Range("C5:BE" & i).Value
    aSize = .Range("C4:BA4").Value
  End With
  sRow = UBound(aDH)
  For i = 1 To sRow
    dic.Add aDH(i, 1) & "|" & aDH(i, 5) & "|" & aDH(i, 6) & "|" & aDH(i, 52), i
  Next i

  With Sheets("LSX") 'Sheet LSX
    aLSX = .Range("B5", .Range("G" & Rows.Count).End(xlUp)).Value
  End With
  sRow = UBound(aLSX)
  ReDim res(1 To 10000, 1 To 10) 'Ket qua toi da 10.000 dong, neu lon hon se báo loi
  k = 0
  For i = 1 To sRow
    key = aLSX(i, 1) & "|" & aLSX(i, 2) & "|" & aLSX(i, 3) & "|" & aLSX(i, 6)
    If dic.exists(key) Then
      ik = dic.Item(key) 'Thu tu dong mang aDH
      KDang = Trim(aDH(ik, 55))
      key2 = aLSX(i, 6) & "|" & KDang 'Quy - Kieu dang
      If dic.exists(key2) Then
        arr = dic.Item(key2) 'Mang cac thu tu dong cua aQC
        For j = 13 To 51
          If aDH(ik, j) > 0 Then
            size = Val(Replace(aSize(1, j), ",", "."))
            For n = 0 To UBound(arr)
              r = arr(n) 'Thu tu dong mang quy cach
              If size >= aQC(r, 3) And size <= aQC(r, sC - 1) Then
                key3 = key & "|" & aQC(r, sC - 2) & "|" & aQC(r, sC)  'Kieu dang - Size
                If dic.exists(key3) = False Then
                  k = k + 1
                  res(k, 1) = aLSX(i, 6)
                  res(k, 2) = aLSX(i, 5)
                  res(k, 3) = aLSX(i, 1)
                  res(k, 4) = aLSX(i, 2)
                  res(k, 5) = aLSX(i, 3)
                  res(k, 6) = aDH(ik, 54)
                  res(k, 7) = KDang
                  res(k, 8) = aQC(r, sC - 2)
                  res(k, 9) = aQC(r, sC)
                  dic.Add key3, k
                End If
                id = dic.Item(key3)
                res(id, 10) = res(id, 10) + aDH(ik, j)
                Exit For
              End If
            Next n
          End If
        Next j
      End If
    End If
  Next i
  With Sheets("SoanLenh") 'Sheet SoanLenh
    i = .Range("D" & Rows.Count).End(xlUp).Row
    If i > 4 Then .Range("D5:M" & i).ClearContents
    If k Then .Range("D5").Resize(k, 10) = res
  End With
End Sub
 
Upvote 0
Mình đã nói là không chỉnh code nên phải viết code mới, dữ liệu lấy từ 3 sheet, kết quả lưu ở sheet SoanLenh
Mã:
Option Explicit
Sub LenhSanXuat()
  Dim aDH(), aSize(), aQC(), aLSX(), res(), arr, dic As Object
  Dim sRow&, i&, ik&, id&, n&, r&, k&, j&, c&, jC&, sC&
  Dim KDang$, size#, key$, key2$, key3$
 
  Set dic = CreateObject("scripting.dictionary")
  With Sheets("quy cach soan") 'Sheet quy cach soan
    aQC = .Range("D2", .Range("L" & Rows.Count).End(xlUp)).Value 'Quy cach
  End With
  sRow = UBound(aQC)
  sC = UBound(aQC, 2) + 2 'So cot cua mang quy cach
  ReDim Preserve aQC(1 To sRow, 1 To sC)
  For i = 1 To sRow
    If aQC(i, 3) <> Empty And IsNumeric(aQC(i, 3)) Then
      k = k + 1
      For j = 1 To sC - 2
        aQC(k, j) = aQC(i, j)
      Next j
      For j = 3 To sC - 3
        If aQC(i, j) = Empty Then Exit For
      Next j
      aQC(k, sC - 1) = aQC(i, j - 1) 'Size Max
      aQC(k, sC) = aQC(i, 3) & "-" & aQC(i, j - 1) 'Size min - max
   
      key = Replace(aQC(k, 1), " ", "") & "|" & Trim(aQC(k, 2)) 'Quy - Kieu dang
      If dic.exists(key) = False Then
        dic.Add key, Array(k)
      Else
        arr = dic.Item(key)
        ReDim Preserve arr(0 To UBound(arr) + 1)
        arr(UBound(arr)) = k
        dic.Item(key) = arr 'Mang cac thu tu dong cua aQC
      End If
    End If
  Next i
 
  With Sheets("DataSL") 'Sheet DataSL
    i = .Range("A" & Rows.Count).End(xlUp).Row
    aDH = .Range("C5:BE" & i).Value
    aSize = .Range("C4:BA4").Value
  End With
  sRow = UBound(aDH)
  For i = 1 To sRow
    dic.Add aDH(i, 1) & "|" & aDH(i, 5) & "|" & aDH(i, 6) & "|" & aDH(i, 52), i
  Next i

  With Sheets("LSX") 'Sheet LSX
    aLSX = .Range("B5", .Range("G" & Rows.Count).End(xlUp)).Value
  End With
  sRow = UBound(aLSX)
  ReDim res(1 To 10000, 1 To 10) 'Ket qua toi da 10.000 dong, neu lon hon se báo loi
  k = 0
  For i = 1 To sRow
    key = aLSX(i, 1) & "|" & aLSX(i, 2) & "|" & aLSX(i, 3) & "|" & aLSX(i, 6)
    If dic.exists(key) Then
      ik = dic.Item(key) 'Thu tu dong mang aDH
      KDang = Trim(aDH(ik, 55))
      key2 = aLSX(i, 6) & "|" & KDang 'Quy - Kieu dang
      If dic.exists(key2) Then
        arr = dic.Item(key2) 'Mang cac thu tu dong cua aQC
        For j = 13 To 51
          If aDH(ik, j) > 0 Then
            size = Val(Replace(aSize(1, j), ",", "."))
            For n = 0 To UBound(arr)
              r = arr(n) 'Thu tu dong mang quy cach
              If size >= aQC(r, 3) And size <= aQC(r, sC - 1) Then
                key3 = key & "|" & aQC(r, sC - 2) & "|" & aQC(r, sC)  'Kieu dang - Size
                If dic.exists(key3) = False Then
                  k = k + 1
                  res(k, 1) = aLSX(i, 6)
                  res(k, 2) = aLSX(i, 5)
                  res(k, 3) = aLSX(i, 1)
                  res(k, 4) = aLSX(i, 2)
                  res(k, 5) = aLSX(i, 3)
                  res(k, 6) = aDH(ik, 54)
                  res(k, 7) = KDang
                  res(k, 8) = aQC(r, sC - 2)
                  res(k, 9) = aQC(r, sC)
                  dic.Add key3, k
                End If
                id = dic.Item(key3)
                res(id, 10) = res(id, 10) + aDH(ik, j)
                Exit For
              End If
            Next n
          End If
        Next j
      End If
    End If
  Next i
  With Sheets("SoanLenh") 'Sheet SoanLenh
    i = .Range("D" & Rows.Count).End(xlUp).Row
    If i > 4 Then .Range("D5:M" & i).ClearContents
    If k Then .Range("D5").Resize(k, 10) = res
  End With
End Sub
Em cảm ơn anh.
Code chạy đúng yêu cầu hiển thị rồi ạ.
 
Upvote 0
Web KT
Back
Top Bottom