tra cứu nhanh dữ liệu từ droplist (validation)

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

truongvan86dh

Thành viên hoạt động
Tham gia
19/5/19
Bài viết
134
Được thích
9
xin chào mọi người trên diễn đàn

Mình có vấn đề về drop list từ validation nên muốn đưa File lên để mọi người tư vấn giúp đỡ mình với à. Mình muốn tra cứu nhanh dữ liệu từ mã khách hàng Ở Sheet Tracuudroplisst. Mình muốn mọi người giúp đưa ra nhiều hướng giải quyết để đơn giản hơn à
Xin trân trọng cám ơn
Văn Nguyễn
 

File đính kèm

  • TRA CUU NHANH TU DROP LIST VALIDATION.xlsx
    41.7 KB · Đọc: 11
Bác tham khảo bài viết này này. Thấy nhiều cách có thể áp dụng cho bác ấy
 
Mình có đọc bài mà thấy khó hiểu quá
 
Xin hỏi chủ bài đăng:
Trước khi muốn tra cứu 1 KH (khách hàng) nào đó thì KH đó có hiện diện trước mặt bạn không?
Hay bạn tùy hứng để tìm 1 KH nào đó trong danh sách 500 khách thân thương của bạn?
Nhưng tựu chung chắc mã KH mà bạn ghi đó chả giúp được nhiều cho bạn liên tưởng đến nhóm hay 1 loại KH nào đó cụ thể
Ý mình là bạn cần tra cứu thông tin trong những trường hợp nào?
 
Với List đủ lớn, thì việc kéo chuột tìm đến dòng muốn chọn quả là mất thời gian và rắc rối.
Thông thường, người ta dùng Userform, và đặt các control (ComboBox trên đó), và viết code dựa trên nền tảng này. Có thể nhập ký tự gợi ý: ví dụ: nhập "ao" sẽ xổ xuống những dòng có chứa "ao": 131- LaoCao hay 131 - TaoLao,...
Đôi khi để đơn giản, Dùng validation tại cell cũng đơn giản. Tuy nhiên, không thể nhập ký tự gợi ý được, và khi chọn thì mất thời gian kéo chuột.
Do đó, mình đề xuất dùng cột phụ để nhập ký tự gợi ý.
Tại sheet TRACUU, nếu muốn tìm mã khách hàng nào có chứa "ao", tại cột D, ô D3 nhập chữ "ao"
Lúc này DataValidation tại A3 sẽ chỉ có các dòng thỏa điều kiện chứa "ao"
Chọn mã KH và các cột còn lại sẽ tự động xuất kết quả
Nếu delete mã KH hay cột LỌC thì cả dòng đó sẽ tự động xóa thông tin
Code như sau:
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lr&, i&, k&, rng, List()
If Target.Column = 4 And Target.Row > 2 Then
    If IsEmpty(Target) Then
        Application.EnableEvents = False
        Target.Offset(0, -3).Resize(1, 3).Value = ""
        Application.EnableEvents = True
        Exit Sub
    End If
    ReDim List(1 To 1)
    With Sheets("DATA")
        lr = .Cells(Rows.Count, "A").End(xlUp).Row
        rng = .Range("A4:C" & lr).Value
    End With
    For i = 1 To UBound(rng)
        If UCase(rng(i, 1)) Like "*" & UCase(Target) & "*" Then
            List(UBound(List)) = rng(i, 1)
            ReDim Preserve List(1 To UBound(List) + 1)
        End If
    Next
    With Target.Offset(0, -3).Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:=Join(List, ",")
        .IgnoreBlank = True
        .InCellDropdown = True
    End With
ElseIf Target.Column = 1 And Target.Row > 2 Then
    Application.EnableEvents = False
    If IsEmpty(Target) Then
        Target.Offset(0, 1).Resize(1, 3).Value = ""
    Else
        Target.Offset(0, 1).Value = Evaluate("=VLOOKUP(A" & Target.Row & ",DATA!$A$4:$C$10000,2,0)")
        Target.Offset(0, 2).Value = Evaluate("=VLOOKUP(A" & Target.Row & ",DATA!$A$4:$C$10000,3,0)")
    End If
    Application.EnableEvents = True
End If
Cells(Target.Row, 1).Select
End Sub
 

File đính kèm

  • TRA CUU NHANH TU DROP LIST VALIDATION.xlsm
    50.4 KB · Đọc: 24
Bác tham khảo bài viết này này. Thấy nhiều cách có thể áp dụng cho bác ấy
Chủ thớt nếu dùng Validation trực tiếp trên cell mà không có list phụ để lọc những từ gần giống để chọn thì rất bất tiện. Nếu độ dài của list lớn.
Trong bài bạn này gợi ý có nội dung gần giống yêu cầu của bạn rồi mà.
Không thì dùng code của bác @bebo021999 cũng trực tiếp trên cell rồi đó.
 
Dear bạn. không hiểu vì sao mình mở file mà không thấy nó chạy nơi
 
1698314161370.png

Mình gửi bạn File bị lỗi . Mình mở mãi không được.

1698314193804.png
 
Web KT
Back
Top Bottom