Xin hỏi lọc DL sang sheet khác theo USER

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

zozbo

Thành viên mới
Tham gia
15/7/08
Bài viết
9
Được thích
2
Mình muốn hỏi các bạn cách lọc từng USER trong file đính kèm sang một Sheet mới
Ai biết giúp mình với nhé!
 

File đính kèm

File đính kèm

Cám ơn bạn boyxin và ndu96081631 .
Các bạn làm vậy đúng ý mình rồi. Bạn có thể nói rõ cho mình biết cách làm được không

Xin hỏi bạn ndu96081631 cách lọc DL sang sheet khác theo USER. Cám ơn nhiều

Xin hỏi bạn ndu96081631. Đây là công việc hàng tháng mình phải làm. Có thể tên USER của các tháng là khác nhau. Giả sử Nếu thêm 1 USER mới vào trong cột USER thì trong sheet "Loc" có thể tự dộng thêm USER đấy được không??

Xin hỏi bạn ndu96081631. Đây là công việc hàng tháng mình phải làm. Có thể tên USER của các tháng là khác nhau. Giả sử Nếu thêm 1 USER mới vào trong cột USER thì trong sheet "Loc" có thể tự dộng thêm USER đấy được không??

-----------
Bạn hãy Click "Cảm ơn" sẽ ý nghĩa hơn lời cảm ơn
 
Chỉnh sửa lần cuối bởi điều hành viên:
Bạn sửa lại ct của name User:
Mã:
=OFFSET(Source!$V$2,,,COUNTA(Source!$V$2:$V$1000),)
 
Loc_User_Auto_List

Đây là công việc hàng tháng mình phải làm. Có thể tên USER của các tháng là khác nhau. Giả sử Nếu thêm 1 USER mới vào trong cột USER thì trong sheet "Loc" có thể tự dộng thêm USER đấy được không??

rar.gif
Formula Loc User.rar (9.6 KB) tự động thêm USER trong List. Bạn thử lại xem
muốn nghiên cứu thêm công thức thì UnHide cột A bên sheet LOC sẽ thấy​

Nếu thích Lọc bằng VBA thì xem file đính kèm:
rar.gif
VBA Loc_User_Auto_List.rar
boyxin sửa và bổ xung tý xíu file gốc của ndu​
 

File đính kèm

Lần chỉnh sửa cuối:
Ban boyxin có thể nói rõ cách làm cho mình biết được không. Minh muốn hỏi trong cách loc bằng VBA tại sao khi có 2 USER NBINTHA và NBINTHAO. Khi loc USER NBINTHA thi no hiện ra cả USER NBINTHAO. Có cách nào sửa được không?
(Ví dụ trong file đính kèm)
 

File đính kèm

Ban boyxin có thể nói rõ cách làm cho mình biết được không. Minh muốn hỏi trong cách loc bằng VBA tại sao khi có 2 USER NBINTHA và NBINTHAO. Khi loc USER NBINTHA thi no hiện ra cả USER NBINTHAO. Có cách nào sửa được không?
(Ví dụ trong file đính kèm)
Bạn thay code cũ bằng đoạn code này xem và xem kết quả
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Src As Range, Loc As Range, DK As Range, user As Range
    Set DK = [B1:B2]
    Set Src = Sheet1.[A1].CurrentRegion
    If Not Intersect(Target, DK) Is Nothing Then
    Set Loc = [A5].CurrentRegion
        Loc.ClearContents
        Src.AdvancedFilter 2, DK, [A5]
    Range("B5").AutoFilter 2, "<>" & [b2]
    Range([b6], [b6].End(xlDown)).SpecialCells(12).EntireRow.Delete
    Selection.AutoFilter
    End If
    Src.Offset(, 1).Resize(, 1).AdvancedFilter 2, , [Z1], Unique:=True
    ActiveWorkbook.Names.Add name:="User", RefersToR1C1:=Range([Z2], [Z2].End(xlDown))
    Names("Extract").Delete
End Sub
 
Xin hỏi bạn ndu96081631. Đây là công việc hàng tháng mình phải làm. Có thể tên USER của các tháng là khác nhau. Giả sử Nếu thêm 1 USER mới vào trong cột USER thì trong sheet "Loc" có thể tự dộng thêm USER đấy được không??
Đây là file mới nhất, chỉ thêm 1 đoạn code nhỏ (lấy danh sách User) và đặt lại name cho Validation List
Bây giờ bạn cứ yên tâm nhập liệu, mổi khi có sự thay đổi về dử liệu nhập thì chỉ cần bạn chọn vào sheet Loc là mọi thứ sẽ tự cập nhật, kể cả danh sách User
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Src As Range, Loc As Range, DK As Range
  Set Src = Sheet1.[A1].CurrentRegion
  Set DK = [B1:B2]
  Set Loc = [A5].CurrentRegion
  If Not Intersect(Target, DK) Is Nothing Then
    Loc.ClearContents
    Src.AdvancedFilter 2, DK, [A5]
  End If
End Sub
PHP:
Private Sub Worksheet_Activate()
  Dim Rng As Range
  With Sheet1
    .[V1:V1000].ClearContents
    Set Rng = .Range(.[B1], .[B65536].End(xlUp))
    Rng.AdvancedFilter 2, , .[V1], True
  End With
End Sub
Xem file đính kèm
 

File đính kèm

Đây là file mới nhất, chỉ thêm 1 đoạn code nhỏ (lấy danh sách User) và đặt lại name cho Validation List
Bây giờ bạn cứ yên tâm nhập liệu, mổi khi có sự thay đổi về dử liệu nhập thì chỉ cần bạn chọn vào sheet Loc là mọi thứ sẽ tự cập nhật, kể cả danh sách User
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Src As Range, Loc As Range, DK As Range
  Set Src = Sheet1.[A1].CurrentRegion
  Set DK = [B1:B2]
  Set Loc = [A5].CurrentRegion
  If Not Intersect(Target, DK) Is Nothing Then
    Loc.ClearContents
    Src.AdvancedFilter 2, DK, [A5]
  End If
End Sub
PHP:
Private Sub Worksheet_Activate()
  Dim Rng As Range
  With Sheet1
    .[V1:V1000].ClearContents
    Set Rng = .Range(.[B1], .[B65536].End(xlUp))
    Rng.AdvancedFilter 2, , .[V1], True
  End With
End Sub
Xem file đính kèm
còn nữa nè
Minh muốn hỏi trong cách loc bằng VBA tại sao khi có 2 USER NBINTHA và NBINTHAO. Khi loc USER NBINTHA thi no hiện ra cả USER NBINTHAO. Có cách nào sửa được không?
(Ví dụ trong file đính kèm)

ndu có biết AdvancedFilter cần thêm thông số gì thì lọc chính xác vùng điều kiện để xử lý vụ trên mà không phải thêm 1 lần AutoFilter nữa không?
 
còn nữa nè


ndu có biết AdvancedFilter cần thêm thông số gì thì lọc chính xác vùng điều kiện để xử lý vụ trên mà không phải thêm 1 lần AutoFilter nữa không?
Là sao? Tôi không hiểu <---- Trục trặc chổ nào đâu?
-----------------------
Ah... Ah... hiểu rồi... Chờ chút xem lại cái
 
Lần chỉnh sửa cuối:
còn nữa nè


ndu có biết AdvancedFilter cần thêm thông số gì thì lọc chính xác vùng điều kiện để xử lý vụ trên mà không phải thêm 1 lần AutoFilter nữa không?
Chẳng hiểu sao Advanced Filter lại bị lổi sơ đẳng này... Thôi thì dùng AutoFilter vậy!
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Src As Range, Loc As Range, DK As Range
  Set Src = Sheet1.[A1].CurrentRegion
  Set DK = [B2]
  Set Loc = [A5:R1000]
  If Not Intersect(Target, DK) Is Nothing Then
    Loc.ClearContents
    Src.AutoFilter 2, DK
    Src.SpecialCells(12).Copy Destination:=[A5]
    Sheet1.AutoFilterMode = False
  End If
End Sub
PHP:
Private Sub Worksheet_Activate()
  Dim Rng As Range
  With Sheet1
    .[V1:V1000].ClearContents
    Set Rng = .Range(.[B1], .[B65536].End(xlUp))
    Rng.AdvancedFilter 2, , .[V1], True
  End With
End Sub
 

File đính kèm

Web KT

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

Back
Top Bottom