Nâng cấp tìm kiếm nhanh trong Excel (1 người xem)

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

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

adua29

Real-life Girls Super Сasual Dating
Tham gia
29/4/08
Bài viết
156
Được thích
111
Giới tính
Nam
Nghề nghiệp
Health
Em đã nhờ các anh chị trong GPE lập form tìm nhanh trong fiie gửi kèm sau đây. Sau quá trình sử dụng đến nay em thấy chưa hoàn thiện, em nhờ các anh chị cập nhật lại tính năng cho form cụ thể như sau:
1. Mục đích: chỉ sử dụng bàn phím để truy tìm
2. Gọi form bằng tổ hợp phím Alt + F hoặc ctrl + Shift + F
3. Khi đã chọn được mặt hàng trong danh sách form chỉ cần ấn Enter thì đưa ra kết quả (không cần kích đúp chuột)

Hiện tại form đang phải dùng nút công cụ để gọi và phải kích đúp chuột để chọn
 

File đính kèm

Em nhờ các anh chị chuyên VBA xử lý lại form tìm nhanh giúp em. em cảm ơn!
 
Upvote 0
Em đã nhờ các anh chị trong GPE lập form tìm nhanh trong fiie gửi kèm sau đây. Sau quá trình sử dụng đến nay em thấy chưa hoàn thiện, em nhờ các anh chị cập nhật lại tính năng cho form cụ thể như sau:
1. Mục đích: chỉ sử dụng bàn phím để truy tìm
2. Gọi form bằng tổ hợp phím Alt + F hoặc ctrl + Shift + F
3. Khi đã chọn được mặt hàng trong danh sách form chỉ cần ấn Enter thì đưa ra kết quả (không cần kích đúp chuột)

Hiện tại form đang phải dùng nút công cụ để gọi và phải kích đúp chuột để chọn
Tham khảo cái này nhé bạn! Bấm Ctrl+Shift+F để hiện form. Đánh dữ liệu cần tìm kiếm vào textbox, ấn enter để tìm kiếm. Sau khi tìm được, tích vào dòng bất kỳ trong listbox để tìm đến cell chứa dữ liệu đó. Bạn có thể triển khai thêm. Một lưu ý: Trong form, bạn đặt cho Textbox, listbox TabStop=False, với Commandbutton đặt Default là True. Khi đó Commandbutton mặc định thực thi khi ấn enter.
 
Upvote 0
em đã xem file anh gửi lại. Việc ấn tổ hợp phím gọi form đã như mong muốn, tuy vậy em vẫn thấy mắc một số chỗ:
1. Khi nhập ký tự đầu thì danh sách không hiện ra để có thể lựa chọn ký tự tiếp theo thích hợp nhất với nhu cầu tìm kiếm (phải ấn Enter mới nhận được danh sách thu gọn)
2. Sau khi đến mặt hàng cần lựa chọn và ấn Enter thì con trỏ không nằm ở cột ban đầu trước khi tìm kiếm (mà chỉ thẳng đến mặt hàng) tìm kiếm. mục đích của tìm kiếm nhanh là di chuyển con trỏ đến dòng mặt hàng cần tìm kiếm mà không thay đổi vị trí cột con trỏ trước khi tìm kiếm.
Mong anh xem giúp và chỉnh sửa lại form cho em. em cảm ơn!
 
Upvote 0
Em đã nhờ các anh chị trong GPE lập form tìm nhanh trong fiie gửi kèm sau đây. Sau quá trình sử dụng đến nay em thấy chưa hoàn thiện, em nhờ các anh chị cập nhật lại tính năng cho form cụ thể như sau:
1. Mục đích: chỉ sử dụng bàn phím để truy tìm
2. Gọi form bằng tổ hợp phím Alt + F hoặc ctrl + Shift + F
3. Khi đã chọn được mặt hàng trong danh sách form chỉ cần ấn Enter thì đưa ra kết quả (không cần kích đúp chuột)

Hiện tại form đang phải dùng nút công cụ để gọi và phải kích đúp chuột để chọn

1. Hiện tại phương thức "tra" của bạn hiển thị Form, vậy bạn vào Macros (Alt + F8) --> chọn tra --> options --> chọn phím tắt.
2. Bạn "vứt" CommandButton1, 2. Trong ListBox chọn ColumnHeads = FALSE (sao bạn lại cho dòng dữ liệu đầu tiên làm head???)
3. Bạn chuyển qua lại giữa TextBox và ListBox bằng TAB. Từ TextBox chuyển sang ListBox cũng có thể bằng ENTER. Trong Windows thì TAB dùng để "nhẩy" qua các control thì chả lý gì lại không sử dụng. Mình sử dụng những chức năng của Windows thì khi "người ta" rành về Windows thì người ta khỏi bỡ ngỡ. Người ta đang quen dùng TAB để qua lại nhưng cài phần mềm của ông A vào thì nhấn TAB cứ thấy im ro làm người ta cứ ngẩn ra là không nên. Chỉ có TextBox, ListBox có TabStop = TRUE.
4. Tôi sửa code trong UserForm1 như sau:
Mã:
Private Sub ListBox1_Enter()
    If ListBox1.ListIndex < 0 Then ListBox1.ListIndex = 0
End Sub
Private Sub ListBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim Rng As Range
    On Error GoTo Thoat
    If KeyAscii = 13 Then
        If ListBox1.ListIndex > -1 Then
            Set Rng = Range("tenloai").Find(ListBox1.List(ListBox1.ListIndex), , , xlWhole)
            If Not Rng Is Nothing Then
               Sheet1.Cells(Rng.Row, Selection.Column).Select
            End If
        End If
Thoat:
        Unload Me
    End If
End Sub
Private Sub TextBox1_Change()
Dim EndR As Long
Dim Tmp, Rng, sRng As Range
    On Error Resume Next
    ListBox1.RowSource = ""
    If TextBox1 <> "" Then
        Tmp = Filter(WorksheetFunction.Transpose(Range("tenloai")), TextBox1.Text, True, vbTextCompare)
        ListBox1.List = Tmp
    Else
        With Sheet1
            Set Rng = Range(.[B21], .[B65536].End(xlUp))
            ListBox1.RowSource = "'" & .Name & "'" & "!" & Rng.Address
        End With
    End If
End Sub
Private Sub UserForm_Initialize()
    Call TextBox1_Change
End Sub
Khi "nhẩy" sang ListBox (TAB, ENTER) thì nếu chưa có mục nào được chọn thì mục đầu tiên được chọn.
Trong ListBox sử dụng các phím mũi tên lên xuống để chọn. Cũng có thể nhấn chuột trực tiếp.
Khi ListBox đang có Focus thì nhấn ENTER để chấp nhận mục đang chọn và đóng Form.
 
Upvote 0
Nhờ các anh chị sửa code tìm kiếm nhanh để đưa ra giá trị cần tìm kiếm

Nhờ các anh chị sửa code trong file gửi kèm để đưa ra giá trị từ form tìm kiếm
Nhờ các anh chị chỉ cho em sửa code như thế nào để em cập nhật vào file quản lý kho đang sử dụng vì em đang muốn lập bổ sung thẻ kho.
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom