Lọc và copy dữ liệu từ workbook này sang workbook khác (2 người xem)

Liên hệ QC

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

tinhvu21

Thành viên mới
Tham gia
12/4/10
Bài viết
12
Được thích
0
Em là thành viên mới và đang học hỏi về VBA. Nhờ các anh/chị viết giùm code cho yêu cầu sau:

File dữ liệu: Data
File in: Biểu mẫu

Khi nhập số PO (cell A5 trong sheet NX của Bieu mau) thì sẽ dữ liệu trong Data và copy sau đó dán qua file Bieu mau. Điều kiện: những dữ liệu đơn vị là KG thì dán qua sheet NX còn nếu dữ liệu đơn vị là PCE thì dán qua sheet BB.

Hiện tại việc này em làm thủ công bằng cách sử dụng Auto filler nhưng hơi mất thời gian.

Mong các anh giúp đỡ
 

File đính kèm

Em là thành viên mới và đang học hỏi về VBA. Nhờ các anh/chị viết giùm code cho yêu cầu sau:

File dữ liệu: Data
File in: Biểu mẫu

Khi nhập số PO (cell A5 trong sheet NX của Bieu mau) thì sẽ dữ liệu trong Data và copy sau đó dán qua file Bieu mau. Điều kiện: những dữ liệu đơn vị là KG thì dán qua sheet NX còn nếu dữ liệu đơn vị là PCE thì dán qua sheet BB.

Hiện tại việc này em làm thủ công bằng cách sử dụng Auto filler nhưng hơi mất thời gian.

Mong các anh giúp đỡ
Có phải như nầy không bạn.bạn nói tôi khó hiểu quá
 

File đính kèm

Upvote 0
Em là thành viên mới và đang học hỏi về VBA. Nhờ các anh/chị viết giùm code cho yêu cầu sau:

File dữ liệu: Data
File in: Biểu mẫu

Khi nhập số PO (cell A5 trong sheet NX của Bieu mau) thì sẽ dữ liệu trong Data và copy sau đó dán qua file Bieu mau. Điều kiện: những dữ liệu đơn vị là KG thì dán qua sheet NX còn nếu dữ liệu đơn vị là PCE thì dán qua sheet BB.

Hiện tại việc này em làm thủ công bằng cách sử dụng Auto filler nhưng hơi mất thời gian.

Mong các anh giúp đỡ
Bạn sử dụng đỡ cái này đi nếu dữ liệu nhiều ta tính cách khác. Bạn nhập xong dữ liệu trong File Data của bạn rồi nhấn nút Updata nhen. Chú ý chúng phải nằm cùng 1 folder
 

File đính kèm

Upvote 0
Cám ơn các anh/chị và các bạn đã nhiệt tình giúp đỡ. Kiến thức của mình đã được thêm 1 phần.

Có lẽ mình chưa nói rõ về yêu cầu của vấn đề nên kết quả mới được 1/2 nên mình gửi lại yêu cầu, các anh/chị và các bạn giúp mình lần nữa nha.

Yêu cầu:
1/ File chính để in là file: Bieu mau.xls, file lấy dữ liệu là file Data.xls (2 file này ko chứa cùng folder)
2/Nhập số PO vào A4, những thành phần nào có đơn vị là "KG" sẽ được dán vào sheet NX, nhưng thành phần nào có đơn vị là PCE thì được dán vào sheet BB.
3/ Khi nhập số PO khác thì dữ liệu của PO cũ sẽ xóa đi, thay vào đó là dữ liệu của PO mới
 

File đính kèm

Upvote 0
Cám ơn các anh/chị và các bạn đã nhiệt tình giúp đỡ. Kiến thức của mình đã được thêm 1 phần.

Có lẽ mình chưa nói rõ về yêu cầu của vấn đề nên kết quả mới được 1/2 nên mình gửi lại yêu cầu, các anh/chị và các bạn giúp mình lần nữa nha.

Yêu cầu:
1/ File chính để in là file: Bieu mau.xls, file lấy dữ liệu là file Data.xls (2 file này ko chứa cùng folder)
2/Nhập số PO vào A4, những thành phần nào có đơn vị là "KG" sẽ được dán vào sheet NX, nhưng thành phần nào có đơn vị là PCE thì được dán vào sheet BB.
3/ Khi nhập số PO khác thì dữ liệu của PO cũ sẽ xóa đi, thay vào đó là dữ liệu của PO mới
Cho mình hỏi nhen File Bieu mau là file bạn mở trực tiếp lên phải không, còn file Data.xls nằm trong ổ đĩa khi bạn nhập số PO xong trong file Bieu mau ở sheet NX và sheet BB thì nó sẽ lấy dữ liệu trong file Data vào phải không. Hay là chỉ cần mở file Bieu mau lên thì dữ liệu trên file Data cái nào đơn vị (Unit) KG thì vào sheet NX, còn PCE thì vào sheet BB
 
Upvote 0
Cám ơn bạn đã hỏi và giúp đỡ mình. Mình đã có thêm 1 phần kiến thực về excel.

Đúng rồi đó, File Data là file dữ liệu được lưu trên ổ đĩa và nó được update hàng ngày để lấy dữ liệu mới.
File Bieu mau là file mở trực tiếp. Khi nhập số PO trên sheet NX (không nhập trong sheet BB) thì dữ liệu sẽ được dán qua sheet NX và BB theo KG và PCE
 
Upvote 0
Cám ơn bạn đã hỏi và giúp đỡ mình. Mình đã có thêm 1 phần kiến thực về excel.

Đúng rồi đó, File Data là file dữ liệu được lưu trên ổ đĩa và nó được update hàng ngày để lấy dữ liệu mới.
File Bieu mau là file mở trực tiếp. Khi nhập số PO trên sheet NX (không nhập trong sheet BB) thì dữ liệu sẽ được dán qua sheet NX và BB theo KG và PCE
Bạn thử lại file này xem
 

File đính kèm

Upvote 0
Bạn thử lại file này xem

Cám ơn bạn đã thực hiện giúp.

Nhưng file chạy chưa đúng yêu cầu. Mục đích là mình phải lọc theo điều kiện số PO và đơn vị, sau đó gán qua file biểu mẫu theo từng nhóm KG hay PCE sau đó in ra thành hồ sơ. Tiếp theo tới PO khác, mình làm tuần tự cho tới khi hết các PO. Hiện tại mình phải làm bằng thủ công sử dụng Auto filler và copy, dán nên mất khá nhiều thời gian. Một ngày mình phải làm từ 30 tới 50 hồ sơ như vậy :-(
 
Upvote 0
Cám ơn bạn đã thực hiện giúp.

Nhưng file chạy chưa đúng yêu cầu. Mục đích là mình phải lọc theo điều kiện số PO và đơn vị, sau đó gán qua file biểu mẫu theo từng nhóm KG hay PCE sau đó in ra thành hồ sơ. Tiếp theo tới PO khác, mình làm tuần tự cho tới khi hết các PO. Hiện tại mình phải làm bằng thủ công sử dụng Auto filler và copy, dán nên mất khá nhiều thời gian. Một ngày mình phải làm từ 30 tới 50 hồ sơ như vậy :-(
Mình thấy ok mà, bạn thử đánh 1 số PO trong biểu mẫu thử xem rồi bạn nhấn nút Updata xem, ở đây mình chỉ thấy đơn vị bạn có 2 thôi là KG, PCE nếu có nhiều hơn thì bị sai, bạn gửi file mẫu với kết quả bạn mong muốn xem sao
 
Upvote 0
Mình thấy ok mà, bạn thử đánh 1 số PO trong biểu mẫu thử xem rồi bạn nhấn nút Updata xem, ở đây mình chỉ thấy đơn vị bạn có 2 thôi là KG, PCE nếu có nhiều hơn thì bị sai, bạn gửi file mẫu với kết quả bạn mong muốn xem sao
Chào bạn! mình thấy code sau của bạn có thể áp dụng cho công việc của mình. Nhưng cũng là học hỏi nữa nên nhờ bạn giải thích qua các bước dòng code đó chạy vơi
Hơn nữa những chỗ bôi màu đỏ giải thích kĩ giúp mình với
Mã:
Sub capnhadata()
Application.DisplayAlerts = False
With Workbooks.Open(ThisWorkbook.Path & "\Bieu mau.xls")
    With ThisWorkbook.Sheets("sheet1").Range("a:e")
        .AutoFilter 5, "KG", , , True
       [COLOR=#ff0000] .Parent[/COLOR].Range("A2:A" & [COLOR=#ff0000].Parent.[/COLOR][a65000].End(xlUp).Row).Resize(, 5).Copy
        Sheets("NX").[a65000].End(xlUp).Offset(1).PasteSpecial 3
        .AutoFilter 5, "PCE", , , True
        [COLOR=#ff0000].Parent[/COLOR].Range("A2:A" & [COLOR=#ff0000].Parent.[/COLOR][a65000].End(xlUp).Row).Resize(, 5).Copy
        Sheets("BB").[a65000].End(xlUp).Offset(1).PasteSpecial 3
        .AutoFilter
    End With
    .Close (True)
End With
Application.DisplayAlerts = True
End Sub
 
Upvote 0
Chào bạn! mình thấy code sau của bạn có thể áp dụng cho công việc của mình. Nhưng cũng là học hỏi nữa nên nhờ bạn giải thích qua các bước dòng code đó chạy vơi
Hơn nữa những chỗ bôi màu đỏ giải thích kĩ giúp mình với
Đây là code cập nhật dữ liệu vào file đang đóng (thực chất là vẫn mở cả 2 file). Nhưng máy "chơi" nhanh quá nên ta không nhìn thấy.
Mã:
Sub capnhadata()
Application.DisplayAlerts = False
[COLOR=#0000ff]'Tat cac thong bao tu excel[/COLOR]
With Workbooks.Open(ThisWorkbook.Path & "\Bieu mau.xls")
[COLOR=#0000ff]'Mo file Bieu mau (file nay co cung duong dan voi file chua code capnhadata)[/COLOR]
    With ThisWorkbook.Sheets("sheet1").Range("a:e")
   [COLOR=#0000ff] 'Voi sheet1 tu cot a den cot e cua file chua code[/COLOR]
        .AutoFilter 5, "KG", , , True
        [COLOR=#0000ff]'filter theo cot e voi key ="KG"[/COLOR]
        .Parent.Range("A2:A" & .Parent.[a65000].End(xlUp).Row).Resize(, 5).Copy
        [COLOR=#0000ff]'copy ca 5 cot vung vua filter[/COLOR]
        Sheets("NX").[a65000].End(xlUp).Offset(1).PasteSpecial 3
        [COLOR=#0000ff]'Dan du lieu dang value vao dong cuoi cung + 1 sheet "NX" cot A cua file Bieu mau[/COLOR]
        .AutoFilter 5, "PCE", , , True
        [COLOR=#0000ff]'filter theo cot e voi key ="PCE"[/COLOR]
        .Parent.Range("A2:A" & .Parent.[a65000].End(xlUp).Row).Resize(, 5).Copy
        [COLOR=#0000ff]'copy ca 5 cot vung vua filter[/COLOR]
        Sheets("BB").[a65000].End(xlUp).Offset(1).PasteSpecial 3
        [COLOR=#0000ff]'Dan du lieu dang value vao dong cuoi cung + 1 sheet "BB" cot A cua file Bieu mau[/COLOR]
        .AutoFilter
        [COLOR=#0000ff]'Bo autofilter trong sheet1 file chua code[/COLOR]
    End With
    .Close (True)
    [COLOR=#0000ff]'Dong file Bieu mau[/COLOR]
End With
Application.DisplayAlerts = True
[COLOR=#0000ff]'Bat cac thong bao tu excel[/COLOR]
End Sub
[COLOR=#0000ff]' Theo minh, cac lenh trong "With ThisWorkbook.Sheets("sheet1").Range("a:e")":
' Dong lenh nao co dau "." dang truoc duoc ap dung cho vung "ThisWorkbook.Sheets("sheet1").Range("a:e")"
' Con khong thi duoc ap dung cho cac sheet cua file Bieu mau

' Con thuoc tinh Parent o day chinh bang "ThisWorkbook.Sheets("sheet1")"[/COLOR]

Chút kiến thức ít ỏi về VBA xin giải thích như vậy. Nếu có gì "tầm bậy" mong các cao thủ khác chỉ thêm.

Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Đây là code cập nhật dữ liệu vào file đang đóng (thực chất là vẫn mở cả 2 file). Nhưng máy "chơi" nhanh quá nên ta không nhìn thấy.
Cảm ơn lời giải thích của bạn. Rất tỉ mỉ và đễ hiểu. Cảm ơn bạn nhiều.
Mình bổ xung thêm chỗ này
Mã:
.Close (True)
    [COLOR=#0000ff]'Dong file Bieu mau[/COLOR]
Đó là lưu file bieu mẫu và đóng file.
 
Upvote 0
Web KT

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

Back
Top Bottom