tự động Tách thành hai danh sách theo điều kiện (1 người xem)

Liên hệ QC

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

chidung2009

Thành viên hoạt động
Tham gia
12/9/12
Bài viết
124
Được thích
8
Mình có một file excel có dữ liệu từ cột A7:C50.
nhập dữ liệu vào cột B và khi chọn Thẩm phán hoặc Thư ký theo List thì sẽ tự động cập nhật tạo thành 2 danh sách theo bảng thẩm phán (R7 : T) và thư ký (U7: W ) có số thứ tự tự động tăng theo từ danh sách.
Mình chân thành cảm ơn
 

File đính kèm

Mình có một file excel có dữ liệu từ cột A7:C50.
nhập dữ liệu vào cột B và khi chọn Thẩm phán hoặc Thư ký theo List thì sẽ tự động cập nhật tạo thành 2 danh sách theo bảng thẩm phán (R7 : T) và thư ký (U7: W ) có số thứ tự tự động tăng theo từ danh sách.
Mình chân thành cảm ơn
Bạn thử đoạn code sau xem
Mã:
Sub PhanTich()
Dim i As Long, aDuLieu(), KetQua(), k As Long, Jk As Long
Dim Dieukien As Variant
With sHome
   aDuLieu = .Range("B8:C" & .Cells(.Rows.Count, "B").End(xlUp).Row).Value
End With
    ReDim KetQua(1 To UBound(aDuLieu, 1), 1 To 6)
  For i = 1 To UBound(aDuLieu, 1)
    Dieukien = "Th" & ChrW(7849) & "m ph" & ChrW(225) & "n"
    If aDuLieu(i, 2) Like Dieukien Then
        k = k + 1
        KetQua(k, 1) = k
        KetQua(k, 2) = aDuLieu(i, 1)
        KetQua(k, 3) = aDuLieu(i, 2)
    Else
        Jk = Jk + 1
        KetQua(Jk, 4) = Jk
        KetQua(Jk, 5) = aDuLieu(i, 1)
        KetQua(Jk, 6) = aDuLieu(i, 2)
    End If
   Next
With sHome
    .Range("R9:W10000").ClearContents
If k <> 0 Or Jk <> 0 Then
    .Range("R9").Resize(UBound(KetQua), 6).Value = KetQua
End If
End With
End Sub
 

File đính kèm

Upvote 0
Bạn thử đoạn code sau xem
Mã:
Sub PhanTich()
Dim i As Long, aDuLieu(), KetQua(), k As Long, Jk As Long
Dim Dieukien As Variant
With sHome
   aDuLieu = .Range("B8:C" & .Cells(.Rows.Count, "B").End(xlUp).Row).Value
End With
    ReDim KetQua(1 To UBound(aDuLieu, 1), 1 To 6)
  For i = 1 To UBound(aDuLieu, 1)
    Dieukien = "Th" & ChrW(7849) & "m ph" & ChrW(225) & "n"
    If aDuLieu(i, 2) Like Dieukien Then
        k = k + 1
        KetQua(k, 1) = k
        KetQua(k, 2) = aDuLieu(i, 1)
        KetQua(k, 3) = aDuLieu(i, 2)
    Else
        Jk = Jk + 1
        KetQua(Jk, 4) = Jk
        KetQua(Jk, 5) = aDuLieu(i, 1)
        KetQua(Jk, 6) = aDuLieu(i, 2)
    End If
   Next
With sHome
    .Range("R9:W10000").ClearContents
If k <> 0 Or Jk <> 0 Then
    .Range("R9").Resize(UBound(KetQua), 6).Value = KetQua
End If
End With
End Sub
Gần đúng ý của mình rồi. Cảm ơn bạn đã giúp đỡ
 
Upvote 0
Mình có một file excel có dữ liệu từ cột A7:C50.
nhập dữ liệu vào cột B và khi chọn Thẩm phán hoặc Thư ký theo List thì sẽ tự động cập nhật tạo thành 2 danh sách theo bảng thẩm phán (R7 : T) và thư ký (U7: W ) có số thứ tự tự động tăng theo từ danh sách.
Mình chân thành cảm ơn
Thử sử dụng Filter từ Sheet Theo dõi rồi Copy qua từng sheet để thuận tiện cho việc in danh sách..
 

File đính kèm

Upvote 0
Cách khác nữa nè, bạn thử tham khảo cho vui!
 

File đính kèm

Upvote 0
Giải pháp của bạn không có "tự động"

View attachment 230720
Muốn tự động thì thêm code sau vào sheet Theo dõi.
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    Call Filter_Copy
End Sub

Do mỗi lần thay đổi nội dung thì gây nhấp nháy màn hình nên phải thêm 2 dòng code sau vào đầu và cuối của Module.
Mã:
Sub Filter_Copy()
    Application.ScreenUpdating = False

    ' Code cũ'

    Application.ScreenUpdating = True
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom