Tạo Macro trích lọc dữ liệu

  • Thread starter Thread starter ST-Lu!
  • Ngày gửi Ngày gửi
Liên hệ QC
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
 

File đính kèm

Upvote 0
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
Vầy đi cho tiện!
Bạn cứ nhập liệu tại sheet All, khi cần trích thì bấm nút 1 nhát
Xem file này thử
----------------
Bài của bạn gần giống bài này:
http://www.giaiphapexcel.com/forum/showthread.php?t=30293
 

File đính kèm

Upvote 0
Anh 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)
 
Upvote 0
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ỉ?
 
Upvote 0
Anh 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)
Ô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
 

File đính kèm

Upvote 0
Thêm một tham khảo bằng VBA

(*) Để 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
 

File đính kèm

Upvote 0
To anh ndu!
Anh có thể bổ sung thêm dòng code để tính tổng Qty ở dòng lọc cuối cùng nữa được không?
 
Upvote 0
Ô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

Dạ em cảm ơn anh ndu nhìu lắm, file này là gần đúng như mong muốn của em rồi :)

Nhưng 1 vấn đề mới nảy sinh nữa là : ở sheet THSL, khi em đổi mã hàng thuộc nhóm M không có bắt đầu bằng chữ M , mã hàng thuộc nhóm C ko bắt đầu bằng chữ B và mã hàng nhóm S không bắt đầu bằng chữ S (tức là mỗi nhóm mã hàng có thể bắt đầu bằng nhìu chữ cái khác nhau, ví dụ như : xà bông, dầu gội, nước hoa..thì được gom vào 1 nhóm tên Mỹ phẩm). Như vậy thì làm sao để lọc được ạ ?

Và cũng như bạn MinhCong nói, nếu có thể thêm vòng code để tính Qty ở dòng cuối mỗi sheet thì tuyệt!

Nhân tiện mình cũng cám ơn bạn MinhCong và bạn ChanhTQ@ nhìu :)
 
Lần chỉnh sửa cuối:
Upvote 0
(*) Để 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
Gửi anh ndu
Anh có thê chỉ dẫn giúp em những cái này ko ạ? thật sự là em xem những cái này em ko hiểu gì cả.em dốt exel quá,em rất muón tìm hiểu mà ko ko biết phải bắt dầu từ dâu nữa.Anh giúp em nhé rất mong nhận đc hồi âm của anh
 
Upvote 0
em muốn nhờ các bác, 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á.
(em ko biết gửi kèm file thế nào)
 
Upvote 0
em muốn nhờ các bác, 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á.
(em ko biết gửi kèm file thế nào)
 
Upvote 0
Bạn đến chổ này tham khảo trước xem nha

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á.

http://giaiphapexcel.com/forum/showthread.php?t=33247&page=2

Ở đó hướng dẫn cách lọc tháng nào tùy chọn hay lọc dữ liệu toàn năm;
 
Upvote 0
Web KT

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

Back
Top Bottom