Giúp đỡ lấy dữ liệu từ sheet khác thay điều kiện (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

SaveTheDay

Thành viên mới
Tham gia
30/12/09
Bài viết
26
Được thích
0
Xin chào các anh chị mình đang bị bí không tìm được hướng giải quyết nên đành lên đây nhờ sự giúp đỡ.

Mình cần lấy dữ liệu từ sheet "DINHMUC" qua sheet "XUATKHO" với các yêu cầu như sau:

1: Dữ liệu vùng “SẢN XUẤT” chỉ lấy những NPL có giá trị "ngày ORDER, MÃ HÀNG, MÀU, ĐỢT" trùng ô C9, giá trị tham chiếu bên sheet "DINHMUC" sẽ là cột "B".

2: Dữ liệu vùng “TỔ CẮT” chỉ lấy những NPL có giá trị "ngày ORDER, MÃ HÀNG, MÀU, ĐỢT" trùng ô C111, giá trị tham chiếu bên sheet "DINHMUC" sẽ là cột "B".

3: Dữ liệu vùng “SOẠN HÀNG” chỉ lấy những NPL có giá trị "ngày ORDER, MÃ HÀNG, MÀU, ĐỢT" trùng ô C213, giá trị tham chiếu bên sheet "DINHMUC" sẽ là cột "B".


Mình cần lấy dữ liệu từ sheet "ORDER" qua sheet "XUATKHO" với các yêu cầu như sau:

Dữ liệu vùng “ORDER” chỉ lấy những NPL có giá trị "ngày ORDER, MÃ HÀNG, MÀU, ĐỢT" trùng ô C2, giá trị tham chiếu bên sheet " ORDER " sẽ là cột "A".


Xin xem file đính kèm, những yêu cầu chi lấy cột nào qua, mình đã ghi hết trong đó

Vẫn đang chờ đợi sự giúp đỡ của các cao thủ

Sorry file anh gởi lên mình down về xem thì thấy đâu phải vấn đề mình nhờ trợ giúp
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Đang gặp chuyện buồn, gặp câu này hết buồn luôn!

Sorry file anh gởi lên mình down về xem thì thấy đâu phải vấn đề mình nhờ trợ giúp

Bạn xem kỹ trang tính 'XuatKho' (XK) chưa vậy?

Macro đã làm ẩn đi các dòng không dữ liệu không cần thiết sau mỗi lần chạy rồi.

(*) Tất nhiên không thể xác lập các dòng dữ liệu thỏa thông qua cột 'A' của trang 'DinhMuc' (DM) như bạn đã làm được;

Mình đã làm thử vầy nè:

(*) Dời dữ liệu cột 'B' trang DM đến cột sau cột cuối chứa dữ liệu (Lưu thôi)
(*) Tại [B2] ta áp công thức:
=RIGHT("0"&DAY(C2),2) & RIGHT("0"& MONTH(C2),2) &MOD(YEAR(C2),100)&D2&F2&I2
& dùng fương thức FillDown xuống hết cột dữ liệu;
(*) Tại [C2] của trang XK ta áp công thức tương tự:
=RIGHT("0"&DAY(C3),2) & RIGHT("0"& MONTH(C3),2) &MOD(YEAR(C3),100)&C4&C5&C6
Sau đó chạy macro này sẽ cho kết quả tương tự, nhưng lẹ làng hơn xíu:
PHP:
Sub TaoMa()
 Dim Sh As Worksheet, Rng As Range, sRng As Range
 Dim MyAdd As String, NSD As String
 Dim lRw As Long, jJ As Byte, fRw As Long
 
 Set Sh = ThisWorkbook.Worksheets("DinhMuc")
 Set Rng = Sh.Range(Sh.[b1], Sh.[b1].End(xlDown))
 Sheets("XuatKho").Select
 Rows("10:500").Hidden = False
 Union(Range("B10:e110"), Range("b112:E212"), Range("B214:E315")).Clear
 
 Set sRng = Rng.Find([c2].Value, , xlValues, xlWhole)
 If sRng Is Nothing Then
    MsgBox "Nothing"
 Else
    MyAdd = sRng.Address
    Do
        NSD = Sh.Cells(sRng.Row, "AM")
        If NSD <> "" Then
            lRw = Switch(NSD = "SX", 110, NSD = "TC", 212, NSD = "SH", 315)
            With Cells(lRw, "B").End(xlUp).Offset(1)
                .Value = sRng.Offset(, 9).Value
                .Offset(, 1).Resize(, 3).Value = Sh.Cells(sRng.Row, "AJ").Resize(, 3).Value
            End With
        End If
        Set sRng = Rng.FindNext(sRng)
    Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
 End If
 For jJ = 1 To 3
    lRw = Choose(jJ, 110, 212, 315)
    fRw = Cells(lRw, "B").End(xlUp).Row + 2
    Rows(fRw & ":" & lRw - 1).Hidden = True
 Next jJ
End Sub
 
Upvote 0
Có trục trặc với file anh gởi lên, khi mình mở file ra bị báo lỗi "File error: data may have been lost." Anh có thể kiểm tra và gởi lại file khác không. Thanks
 
Upvote 0
Bạn xem file này;
File trên mình tải nhàm & rất xin lỗi!
 

File đính kèm

Upvote 0
Mình cám ơn anh còn không hết mà xin lỗi gì trời !$@!!

File bên trên anh gởi lên chạy ok rồi nhưng mình bỏ sót quên lấy dữ liệu cho cột F và G.

Cột F lấy dữ liệu cột DK sheet "DINHMUC"
Cột G lấy dữ liệu cột EJ sheet "DINHMUC"

Vẫn lấy dữ liệu dựa trên ô C2 (ngày ORDER, MÃ HÀNG, MÀU, ĐỢT) anh chỉnh thêm lấy dữ liệu 2 cột này dùm mình.Thanks

Mình có bắt chức anh thêm 1 vài dòng code để auto hide hàng không có dữ liệu giống bên trên nhưng không chạy, tiện thể anh chỉnh lại dùm mình lun nha.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
[thongbao]
(1) . . . Nhưng mình bỏ sót quên lấy dữ liệu cho cột F và G.

(2) . . . Tiện thể anh chỉnh lại dùm mình lun nha.[/thongbao]

(1) Thêm 2 câu lệnh này vô sau dòng lệnh dài nhất trong vòng lặp Do . . . Loop

PHP:
                .Offset(, 4).Value = Sh.Cells(sRng.Row, "Dk").Value
                .Offset(, 5).Value = Sh.Cells(sRng.Row, "EJ").Value


(2) Vì bên trên có câu lệnh . . . Next jJ rồi, nên ta có thể xài lại các biến này;
(Cũng xin nhắn bạn xài tên biến nên là những từ gợi nhớ, như mình xài lRw cho dòng cuối tại 1 thời điểm nào đó & fRw là dòng đầu (cần ẩn đi)

Bạn cần chỉnh sửa cho tương đương với For . . . Next bên trên đi nha
Chúc thành công.
 
Upvote 0
Mình đã chỉnh sửa theo gợi ý của bạn và bảng tính đã chạy theo mong muốn của mình. Thank bạn
 
Upvote 0

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

Back
Top Bottom