Lọc danh sach sang sheet khác (1 người xem)

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

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

lanbenh

Thành viên mới
Tham gia
9/3/14
Bài viết
5
Được thích
1
Cho hỏi cách làm để lọc danh sách nghỉ phép sang sheet khác (LOC-NP) như file đính kèm
 

File đính kèm

Bạn chỉ cần giúp chức năng Filter là được thôi mà. Thực hiện như sau:
Bôi đen 2 phần Họ và tên và nghỉ phép-> Data--> Filter-->AutoFilter--> Nháy vào mũi tên ở ô "Nghỉ phép", chọn X thế là đã lọc được những người nghỉ phép rồi, bây giờ chỉ việc copy sang sheet khác thôi.
Xem File đính kèm!
 
Ý mình là muốn tự động chuyển danh sách qua sheet kia. Chứ mỗi lần cập nhập thêm lại phải copy nữa.
 
Ý mình là muốn tự động chuyển danh sách qua sheet kia. Chứ mỗi lần cập nhập thêm lại phải copy nữa.
Muốn tự động thì xài thử Sub này.
PHP:
Public Sub Loc_NP()
Dim sArr(), dArr(), I As Long, K As Long
With Sheet1
    sArr = .Range(.[B4], .[C65536].End(xlUp)).Value2
End With
ReDim dArr(1 To UBound(sArr, 1), 1 To 3)
For I = 1 To UBound(sArr, 1)
    If UCase(sArr(I, 2)) = "X" Then
        K = K + 1
        dArr(K, 1) = K
        dArr(K, 2) = sArr(I, 1)
        dArr(K, 3) = sArr(I, 2)
    End If
Next I
Sheet2.[A4:C1000].ClearContents
If K Then Sheet2.[A4].Resize(K, 3) = dArr
End Sub
 
Muốn tự động thì xài thử Sub này.
PHP:
Public Sub Loc_NP()
Dim sArr(), dArr(), I As Long, K As Long
With Sheet1
    sArr = .Range(.[B4], .[C65536].End(xlUp)).Value2
End With
ReDim dArr(1 To UBound(sArr, 1), 1 To 3)
For I = 1 To UBound(sArr, 1)
    If UCase(sArr(I, 2)) = "X" Then
        K = K + 1
        dArr(K, 1) = K
        dArr(K, 2) = sArr(I, 1)
        dArr(K, 3) = sArr(I, 2)
    End If
Next I
Sheet2.[A4:C1000].ClearContents
If K Then Sheet2.[A4].Resize(K, 3) = dArr
End Sub
Xin cho hỏi có cách nào mình bỏ cái nút bấm Sub được không; cứ cấp nhật dữ liệu là nó tự động chuyển sang danh sách kia
 
Xin cho hỏi có cách nào mình bỏ cái nút bấm Sub được không; cứ cấp nhật dữ liệu là nó tự động chuyển sang danh sách kia
Bạn thử thêm code sau chép vào sheet1, sau nhi nhập tên mới , hoặc sửa , sau khi đánh "x"tại cột c bạn xem kết quả :
Private Sub WorkSheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C4:C1000]) Is Nothing Then
Call Loc_NP
End If
End Sub
 
Bạn thử thêm code sau chép vào sheet1, sau nhi nhập tên mới , hoặc sửa , sau khi đánh "x"tại cột c bạn xem kết quả :
Private Sub WorkSheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C4:C1000]) Is Nothing Then
Call Loc_NP
End If
End Sub
Chắc là quá đúng ý tác giả rồi! Cảm ơn NgoaiThanh!
 
Bạn thử thêm code sau chép vào sheet1, sau nhi nhập tên mới , hoặc sửa , sau khi đánh "x"tại cột c bạn xem kết quả :
Private Sub WorkSheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C4:C1000]) Is Nothing Then
Call Loc_NP
End If
End Sub
Đàng nào thì cũng chỉ xem được khi chọn sheet LOC-NP, Mỗi lần nhập dữ liệu đều phải "bị" Lọc có vẻ hơi bị thừa.
Sao không để nó ở Worksheet_Activate() nhỉ?
Private Sub Worksheet_Activate()
Loc_NP
End Sub
 
Đàng nào thì cũng chỉ xem được khi chọn sheet LOC-NP, Mỗi lần nhập dữ liệu đều phải "bị" Lọc có vẻ hơi bị thừa.
Sao không để nó ở Worksheet_Activate() nhỉ?
cám ơn thày! đúng là sử dụng Worksheet_Activate thì sau khi nhập xong dữ liệu ( kể cả dữ liệu nhiều , thì code cũng chỉ phải chạy 1 lần )
 
Vâng xin cám ơn tất cả sự giúp đỡ của thành viên trên trang.
 
Web KT

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

Back
Top Bottom