


Bạn thực hiện như sau:Lọc nhiều lớp ra thành từng lớp. câu hỏi có trong file mong các bạn giúp đỡ, cảm ơn các bạn



Dùng VBA có được không?Mình muốn tự động, có công thức nào không bạn giúp mình nhé.



Tôi tạo 1 nút "LOC", khi bấm nút này nó sẽ tự động lọc ra cho bạn có được không hay bạn muốn thế nào? Nói rõ ra.Bạn thử mình xem nhé
Đúng rồi khỏi bấm nút được không bạn.Xem đã đúng ý chưa nhé?
Nhớ Enable Macros trước khi mở File nhé! (Xem hướng dẫn tại chữ kí bên dưới bài viết của tôi)



Trời ơi lười quá! Bấm nút 1 cái thôi cũng không làm được sao?Đúng rồi khỏi bấm nút được không bạn.
Được thì tốt quá rồi. cảm ơn bạnTrời ơi lười quá! Bấm nút 1 cái thôi cũng không làm được sao?
Tôi có thể làm giúp bạn không cần nút. Nó sẽ lọc khi nào dữ liệu của cột D thay đổi nhé!




Thử file này coi saoLọc nhiều lớp ra thành từng lớp. câu hỏi có trong file mong các bạn giúp đỡ, cảm ơn các bạn
Không phải vậy bạn à. Ý mình bạn chuot0106 làm đúng rồi ở bài 7, nhưng mà mình muốn tự động không cần phải bấm nút.Thử file này coi sao




Của bạn đây!.................Được thì tốt quá rồi. cảm ơn bạn
Sao áp dụng vào file mình chưa được, bạn hướng dẫn mình thao tác cho mình nhé.Của bạn đây!.................
B2: Copy code này vào modulePrivate Sub Worksheet_SelectionChange(ByVal Target As Range)If Not Intersect(Target, [D710000]) Is Nothing Then Call LOC
End Sub
Sao nó báo lỗi ở code bước 1.Sub LOC() Range("D6" & Range("D65500").End(xlUp).Row).AdvancedFilter xlFilterCopy, _
Range("F6"), Unique:=True
End Sub



Bạn xem File thật của bạn cấu trúc có giống File bạn gửi lên không?Sao áp dụng vào file mình chưa được, bạn hướng dẫn mình thao tác cho mình nhé.
Mình thao tác như sau.
B1: Copy code này vào sheet
B2: Copy code này vào module
Sao nó báo lỗi ở code bước 1.
Cmr ơn bạn
File của bạn ok rồi. File mình dữ liệu lớp ở D7Bạn xem File thật của bạn cấu trúc có giống File bạn gửi lên không?
Bạn Test File tôi gửi có đúng không?



Đưa File thật của bạn nên tôi giúp cho!File của bạn ok rồi. File mình dữ liệu lớp ở D72006 Lọc sang F7. Ngoài chép code ra còn làm gì nữa không bạn, có vào advacedfilter gì gì nữa không?
Bạn xem lại dùm mình nhé. File của bạn cũng vậy, đâu bạn nhấp chuột vào cột danh sách lớp code sẽ báo lỗi. cảm ơn bạnĐưa File thật của bạn nên tôi giúp cho!



Gửi lại cho bạn đây...............Bạn xem lại dùm mình nhé. File của bạn cũng vậy, đâu bạn nhấp chuột vào cột danh sách lớp code sẽ báo lỗi. cảm ơn bạn
Mình delete trong name thì code lại lỗi nữa vậy làm sao được như trong hình, bạn hướng dẫn mình làm nhé.View attachment untitled.bmpGửi lại cho bạn đây...............


Sao bạn không đưa File thật của bạn nên, mọi người giúp đỡ!Mình delete trong name thì code lại lỗi nữa vậy làm sao được như trong hình, bạn hướng dẫn mình làm nhé.View attachment 124421
Bạn Hải, bạn giúp mình lại với, cách làm cũng giống như bạn, nhưng tôi đã thêm cột vào nên không tách ra được hết, bạn giúp mình hé, chân thành cảm ơn bạn.Thử file này coi sao
Dữ liệu bạn chuẩn bị kiểu vậy chắc 3 phút là xong . Bạn Quang Hải viết code xong text thử chắc mất vài tiếng . Bạn cẩu thả vậy thì chắc chờ thôi .Bạn Hải, bạn giúp mình lại với, cách làm cũng giống như bạn, nhưng tôi đã thêm cột vào nên không tách ra được hết, bạn giúp mình hé, chân thành cảm ơn bạn.
Chắc bạn xem file bài này sẽ rõDữ liệu bạn chuẩn bị kiểu vậy chắc 3 phút là xong . Bạn Quang Hải viết code xong text thử chắc mất vài tiếng . Bạn cẩu thả vậy thì chắc chờ thôi .
Dữ liệu giống như thật thì người này giúp chưa được thì người khác sẽ giúp . Nhưng tự mình đã đưa dữ liệu kiểu vậy thì ... mình cũng không có ý kiến gì nữa !Chắc bạn xem file bài này sẽ rõ




Sub tachra()
Application.ScreenUpdating = False
Dim data(), ketqua(1 To 65536, 1 To 6), Lop()
Dim tieude As Range, k, i , j, ii
With Sheets("TONGHOP")
Set tieude = .[A6:F6]
data = .Range(.[A7], .[F65536].End(3)).Value
End With
With CreateObject("scripting.dictionary")
For i = 1 To UBound(data)
If Not .exists(data(i, 5)) Then
.Add data(i, 5), ""
End If
Next
Lop = .keys
End With
For i = 0 To UBound(Lop)
For ii = 1 To UBound(data)
If data(ii, 5) = Lop(i) Then
k = k + 1
ketqua(k, 1) = k
For j = 2 To 6
ketqua(k, j) = data(ii, j)
Next
End If
Next
Sheets.Add After:=Sheets(Sheets.Count)
With ActiveSheet
.Name = Lop(i)
tieude.Copy .[A6:F6]
.[A7].Resize(k, 6) = ketqua
.[A:F].Columns.AutoFit
.[A7].Resize(k, 6).Borders.Value = 1
End With
k = 0
Next
Sheets("TONGHOP").Select
Application.ScreenUpdating = True
End Sub