Hỏi cách copy dữ liệu giữa 2 sheet

  • Thread starter Thread starter cic123
  • Ngày gửi Ngày gửi
Liên hệ QC

cic123

Thành viên mới
Tham gia
17/2/10
Bài viết
11
Được thích
2
Em chào các anh chị!

Em đang thực hiện copy dữ liệu tự động giữa 2 Sheet
Trong Sheet Danh muc có thông tin các sản phẩm và Trạng thái (0 & 1)
Hiện nay trong file em làm, Khi Sheet Danh muc có sản phẩm nào thì sẽ tự động copy sang Sheet Ban hang (copy cả Trạng thái 0 &1)

Bây giờ em muốn mỗi khi thêm vào Sheet danh mục 1 sản phẩm thì ở Sheet Ban hang cũng tự động thêm mã sản phẩm đó nhưng chỉ thêm với các sản phẩm có Trạng thái = 1 thì phải làm thế nào ạ?

File http://www.mediafire.com/?yzwzew0qwdh

Em cảm ơn các anh chị!
 
Em chào các anh chị!

Em đang thực hiện copy dữ liệu tự động giữa 2 Sheet
Trong Sheet Danh muc có thông tin các sản phẩm và Trạng thái (0 & 1)
Hiện nay trong file em làm, Khi Sheet Danh muc có sản phẩm nào thì sẽ tự động copy sang Sheet Ban hang (copy cả Trạng thái 0 &1)

Bây giờ em muốn mỗi khi thêm vào Sheet danh mục 1 sản phẩm thì ở Sheet Ban hang cũng tự động thêm mã sản phẩm đó nhưng chỉ thêm với các sản phẩm có Trạng thái = 1 thì phải làm thế nào ạ?

File http://www.mediafire.com/?yzwzew0qwdh

Em cảm ơn các anh chị!
Bạn click phải chuột tại nhãn Sheet Danh muc, chọn View Code và dán đoạn code này vào. Bây giờ bạn thử nhập dữ liệu vào Sheet Danh muc xem sao nhé.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Cells(Target.Row, 5) = "" Then Exit Sub
    Sheets("Ban hang").[A:B].Clear
    [E1].CurrentRegion.AutoFilter Field:=5, Criteria1:="1"
    Range([B1], [B65536].End(xlUp)).Copy Sheets("Ban hang").[B1]
    [E1].CurrentRegion.AutoFilter
    Range("A1:A" & Sheets("Ban hang").[B65536].End(xlUp).Row).Copy Sheets("Ban hang").[A1]
End Sub
 
Em cảm ơn anh nhiều! Đã ra được kết quả đúng rồi ạ ^^
 
bạn nghiaphuc oi nếu trạng thái không phải là (0&1 mà là từ 0 đến 100 ) thì phải làm thế nào vì mình làm giống trên thì trường nhận của nó chỉ nhận số 0 hoặc số 1 cao hơn nó không thực hiện được
giúp mình nhé cám ơn bạn rất nhiều
 
bạn nghiaphuc oi nếu trạng thái không phải là (0&1 mà là từ 0 đến 100 ) thì phải làm thế nào vì mình làm giống trên thì trường nhận của nó chỉ nhận số 0 hoặc số 1 cao hơn nó không thực hiện được
giúp mình nhé cám ơn bạn rất nhiều
Nếu bạn muốn lọc những vị trí có giá trị >0 thì thay câu lệnh
PHP:
Criteria1:="1"
bởi câu lệnh
PHP:
Criteria1:=">0"
 
Anh cho em hỏi anh thêm 1 câu nữa: Khi em thêm các cột vào trước cột Trạng thái của Sheet Danh muc thì ra kết quả không như vậy nữa. Có phải nguyên nhân ở [E1].CurrentRegion.AutoFilter Field:=5 không ạ? Em thử sửa thành 15 (vì cột Trạng thái bây giờ là vị trí 15) nhưng không chạy được. VBA em không rành [:(]
 
Anh cho em hỏi anh thêm 1 câu nữa: Khi em thêm các cột vào trước cột Trạng thái của Sheet Danh muc thì ra kết quả không như vậy nữa. Có phải nguyên nhân ở [E1].CurrentRegion.AutoFilter Field:=5 không ạ? Em thử sửa thành 15 (vì cột Trạng thái bây giờ là vị trí 15) nhưng không chạy được. VBA em không rành [:(]
Bạn sửa số 5 thành số 15 là đúng rồi đó. Nếu kết quả không đúng thì có thể vùng dữ liệu của bạn không liên tục, VD: có cột trống nào đó ở giữa các cột A -> O (O là cột thứ 15) hoặc trên cột E có ô trống. Bạn thử sửa E1 thành O1 thử xem có được không.
Thêm nữa, bạn chú ý câu này:
PHP:
If Cells(Target.Row, 5) = "" Then Exit Sub
Rất có khả năng tại cột E của bạn không có dữ liệu nên nó sẽ Exit Sub. Bạn sửa lại số 5 chỗ này thành số 15 thử xem sao.
Nếu vẫn không được thì bạn gửi file lên nhé.
Chúc thành công!
 
Lần chỉnh sửa cuối:
Tốt rồi anh ạ. Em đã sửa tên cột từ E thành cột mới tương ứng O, sửa cả chỗ If Cells(Target.Row, 5) = "" -> 15. Đã cho kết quả đúng! ^^

Em cảm ơn anh nhiều!
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom