Vầy đi cho tiện!Các anh chị ơi em có 1 file muốn tự động lọc (copy) dữ liệu từ 1 sheet Tổng hợp sang 3 sheet con, điều kiện lọc nằm ở 1 sheet riêng biệt. Do em ko rành VBA nên nhờ các anh chị viết dùm em đoạn mã để thực hiện việc này nha.
Em cảm ơn các anh chị nhiều lắm
Bài của Bạn cũng có thể dùng công thức để lọc cũng được, nếu Bạn đồng ý Mình sẽ giúp. Hơn nữa trong mã hàng hóa PN của Bạn đâu có mã C. Tôi thấy trong sheet THSL Bạn ghi mã C là B nhưng sao lại trong yêu cầu lại khác nhỉ?Các anh chị ơi em có 1 file muốn tự động lọc (copy) dữ liệu từ 1 sheet Tổng hợp sang 3 sheet con, điều kiện lọc nằm ở 1 sheet riêng biệt. Do em ko rành VBA nên nhờ các anh chị viết dùm em đoạn mã để thực hiện việc này nha.
Em cảm ơn các anh chị nhiều lắm
Ôi... do tôi copy code cũ và chưa kiểm tra hếtAnh ndu ơi! Anh xem lại code nhé, hình như chưa đúng ý của tác giả đó. tác giả muốn lọc theo điều kiện PN nữa (Anh xem lại yêu cầu của tác giả trong sheet THSL)
Option Explicit
Sub AdvancedFilter()
'Loi Nhan Tu GPE: Fím Tát: {CTRL}+{SHIFT}+A'
Dim Sh As Worksheet, Clls As Range
Dim eR As Long, StrC As String
Sheets("All").Select
eR = [G65500].End(xlUp).Row
For Each Clls In Range("AE2:AE4")
[AC2].FormulaR1C1 = "=R[" & Clls.Row - 2 & "]C[2]&""*"""
Range("A1:P" & eR).AdvancedFilter Action:=2, _
CriteriaRange:=[AC1].Resize(2), CopyToRange:=[O1].Resize(, 13)
StrC = Choose(Clls.Row - 1, "M", "C", "S")
Set Sh = Worksheets(StrC)
[O1].CurrentRegion.Offset(1).Copy Destination:=Sh.[A2]
Range("O2:AA" & eR).Clear
Next Clls
End Sub
Sub Copy1Record()
'Loi Nhan Tu GPE: Fím Tát: {CTRL}+{SHIFT}+C'
Dim Sh As Worksheet, Rng As Range, StrC As String
Sheets("All").Select
Set Rng = [G65500].End(xlUp): StrC = Left(Rng.Value, 1)
If StrC = "B" Then StrC = "C": Rng.Interior.ColorIndex = 35 + (Rng.Row Mod 6)
Sheets(StrC).[A65500].End(xlUp).Offset(1).Resize(, 13).Value = _
Cells(Rng.Row, "A").Resize(, 13).Value
End Sub
Ôi... do tôi copy code cũ và chưa kiểm tra hết
Dòng:
AutoFilter 23, Item & "*"
Sửa thành:
AutoFilter 7, Item & "*"
là xong
Gửi anh ndu(*) Để chép toàn bộ dữ liệu đang có tại 'All'
PHP:Option Explicit Sub AdvancedFilter() 'Loi Nhan Tu GPE: Fím Tát: {CTRL}+{SHIFT}+A' Dim Sh As Worksheet, Clls As Range Dim eR As Long, StrC As String Sheets("All").Select eR = [G65500].End(xlUp).Row For Each Clls In Range("AE2:AE4") [AC2].FormulaR1C1 = "=R[" & Clls.Row - 2 & "]C[2]&""*""" Range("A1:P" & eR).AdvancedFilter Action:=2, _ CriteriaRange:=[AC1].Resize(2), CopyToRange:=[O1].Resize(, 13) StrC = Choose(Clls.Row - 1, "M", "C", "S") Set Sh = Worksheets(StrC) [O1].CurrentRegion.Offset(1).Copy Destination:=Sh.[A2] Range("O2:AA" & eR).Clear Next Clls End Sub
(*) Nhập xong dòng dữ liệu bấm tổ hợp fím tắt để chép 1 record
PHP:Sub Copy1Record() 'Loi Nhan Tu GPE: Fím Tát: {CTRL}+{SHIFT}+C' Dim Sh As Worksheet, Rng As Range, StrC As String Sheets("All").Select Set Rng = [G65500].End(xlUp): StrC = Left(Rng.Value, 1) If StrC = "B" Then StrC = "C": Rng.Interior.ColorIndex = 35 + (Rng.Row Mod 6) Sheets(StrC).[A65500].End(xlUp).Offset(1).Resize(, 13).Value = _ Cells(Rng.Row, "A").Resize(, 13).Value End Sub
Làm sao mình muốn lọc dữ liệu khi thay đổi điểu kiện lọc thì thì dữ liệu lọc cũng được thay đổi theo, và dữ liệu được copy sang sheet khác? em dùng advance fillter nhưng mỗi lần thay đổi điều kiện thì lại phải chọn lại vùng lọc mất thời gian quá.