Đăng ký học Excel - PivotTable 3 buổi tối (31/7, 2 và 4/8) - TPHCM

Tìm Kiếm Trong Data Validation Excel

Thảo luận trong 'Lập Trình với Excel' bắt đầu bởi kieu manh, 11 Tháng bảy 2017.

  1. ndu96081631

    ndu96081631 Ăn cùng GPE, Ở cùng GPE, Sống cùng GPE Staff Member Super Moderator

    Dân "quậy" thì nghiên cứu form các kiểu như ai lại đi làm chuyện kỳ cục vậy
    Trước tôi cùng nghiên cứu mấy vụ hook này nhưng thấy độ tin cậy không cao
     
    kieu manh, AutoReplydhn46 thích bài viết này.
  2. kieu manh

    kieu manh Chưa Cạo Phải Gội

    Mạnh mới đến xài tới 7 vòng For .... và tại sao ta ....

    1/ Không sử dụng Data Datavaliton thật mà phải xài Data Datavaliton giả ....
    2/ Nếu code đó điều chỉnh lại áp dụng cho Data Datavaliton thật .... thì điều gì sẻ xảy ra ...??!!!
    3/ Mạnh thấy chèn 1 cái Controls làm giả Data Datavalition đó là gì ...phải check thêm cái gì mới thấy nó .... Máy Mạnh tìm hoài không thấy
    4/ Phải chăng sử dụng Data Datavaliton thật cho bài này là vấn đề khó ....???!!!
    ....................
    Với yêu cầu bài 1 làm ra được như vậy là quá tốt ...........Thuật toán hay ..........
    Nhưng Mạnh vẫn nêu ra mấy vấn đề trên để mở rộng đường ta nghiên cứu tiếp .........
    Làm 1 cái Data Datavaltion thật xem tình hình sao ... hay viết 1 hàm bao quát nhất xử lý được 2 vấn đề bài 1

    Nghiên cứu thêm thôi mà .............Nhức đầu quá :D
    Xin cảm ơn
     
    Lần chỉnh sửa cuối: 17 Tháng bảy 2017
    anhtuanle123 thích bài này.
  3. Mutants Men

    Mutants Men Thành viên hoạt động

    Vậy có cách nào để bắt sự kiện khi gõ chữ trong cells ko anh. Hook thì được nhưng xử lý chuỗi sau khi enter thấy khó quá.
     
  4. AutoReply

    AutoReply Thành viên hoạt động

    Có chứ. mắt người nhìn thấy được thì code cũng lấy được. --=0--=0
     
    Mutants Mendhn46 thích bài viết này.
  5. dhn46

    dhn46 Hướng tới tương lai

    Bạn AutoReply có thể vui lòng Code phần này, và nếu được thì chỉ cho mình thêm phần Hook để lấy mọi ký tự khi bàn phím được nhấn, không phân biệt nhấn trên ứng dụng nào, rất mong phản hồi từ bạn.
     
  6. AutoReply

    AutoReply Thành viên hoạt động

    phần này là phần gì vậy bạn ?
    Mình vô tình tìm thấy có đường dẫn này
    http://www.giaiphapexcel.com/diendan/threads/xả-xì-chét.108295/page-4#post-692303
    bạn xem thử "hắn" làm có giống với ý bạn chăng ? chi tiết thì mình không biết, tại đâu phải mình làm =))
    Về việc Hook bàn phím bạn nên xem lại đường dẫn của MS
    https://msdn.microsoft.com/en-us/library/windows/desktop/ms644990(v=vs.85).aspx
    chú ý họ viết về tham số thứ 3, 4 , xem làm thế nào để thực hiện Hook trên toàn bộ các Process. Mình dốt lắm không có hiểu được nhiều đâu bạn ơi. Chớ nên xem trọng mình +-+-+-++-+-+-+
     
    dhn46Mutants Men thích bài viết này.
  7. Mutants Men

    Mutants Men Thành viên hoạt động

    ơ, vậy bác không phải chim hồng à. chắc cái đó đúng ý rồi đấy bác. có thể thì cho em xin code phần đó với, như trong video ấy
     
    Lần chỉnh sửa cuối: 17 Tháng bảy 2017
  8. anhtuanle123

    anhtuanle123 Thành viên hoạt động

    1/ là vì mình chỉ biết cách dùng Data Datavaliton sơ sơ à , nói chung nó là công cụ chuẩn của nhà phát triển thì mình chỉ có thể sử dụng đc các tính năng nó hỗ trợ thôi , khi sử dụng Data Datavaliton , mình xét các các tính năng như cho phép thêm danh sách chọn , cho phép enter , nhập các kiểu , ..v.v..v và ..v..v.. , nếu phù hợp mình sẽ chọn nó , mà nghĩ cho cùng Data Datavaliton cũng chỉ là danh sách đổ xuống thôi mà có nhiều cách để giải quyết ^^
    2/ nếu sửa lại cho Data Datavaliton thì làm sao khi gõ vào ký tự đại diện vào ô C4 nó cho phép gọi 1 sự kiện nào đó , đàng này nếu ô C4 set Data Datavaliton thì nó khóa lại , ko cho bạn nhảy qua ô khác khi nhập sai , và báo lỗi Data ko có trong danh sách gì đó , vậy thì ko chèn code vào đc , nếu dùng bắt sự kiện bàn phím thì lại ko phân biệt đc chữ tiếng Việt , mà đc thì cũng lắm công phu @@ !
    3 / cái control mình dùng là List box , Excel 2010 bạn vào Developer -> Design Mode là thấy nó , còn muốn add thì Developer ->Insert -> ( Activex Control ) -> chọn List box
    4 / nói chung Data Datavaliton khó hay ko thì chắc là do cảm tính thôi , vì nó hỗ trợ chỉ đến thế thì chỉ dùng đc như thế , nếu rảnh thì nghiên cứu chơi cũng đc , còn để áp dụng công việc nếu ko rành sẽ làm tăng chí phí về ( thời gian + bảo dưỡng ) , mình chỉ thấy cái nào dễ sử dụng , và biết sử dụng thì mình làm thôi ,

    có 2 thuật toán mình sử dụng trong đó là sort và Group , để xử lý ra dữ liệu mong muốn , còn nạp nó vào Data Datavaliton thế nào thì mình chịu thôi , hoặc nạp đc nhưng phải thêm vài thao tác !
     
    kieu manh thích bài này.
  9. kieu manh

    kieu manh Chưa Cạo Phải Gội

    Cứ yên tâm đi cái này sư phụ Mạnh mà ra tay thì nó là chuyên nhỏ như con

    Câu 2 ý Bạn là xử lý lỗi khi gõ ký tự không có trong Data Datavaliton thì nó báo lỗi như hình đúng không ....Nếu muốn gõ link tinh vào đó mà nó không báo lỗi thì đơn giản lắm mấy từ là xong ... Capture.PNG
     
    dhn46anhtuanle123 thích bài viết này.
  10. anhtuanle123

    anhtuanle123 Thành viên hoạt động

    2010 , 2003 nó báo lỗi như này @@ !
    nếu có cách để tối mình xem lại !
    upload_2017-7-17_17-13-4.png
     
    kieu manh thích bài này.
  11. kieu manh

    kieu manh Chưa Cạo Phải Gội

    2 từ mấy ký tự là xong
     
    anhtuanle123 thích bài này.
  12. hoangvn79

    hoangvn79 Thành viên mới

    Nếu sử dụng hook bàn phím thì chữ tiếng anh thì được nhưng còn chữ tiếng việt vì có sử dụng bộ gõ unikey nên không hiện thi được tiếng việt nữa.
     
  13. dhn46

    dhn46 Hướng tới tương lai

    Chào bạn,

    Qua bài của bạn mình mới biết bạn "Chim Hồng" là "zai" - (hắn, gái chắc dùng ả :) )

    Cũng qua bài này giúp mình mở mang thêm nhưng thêm bài #29 nữa thì mình cũng tò mò về các phương án có thể thi triển +-+-+-+. Rất mong bạn AutoReply code cho mình và mọi người tham khảo.
     
    AutoReply thích bài này.
  14. anhtuanle123

    anhtuanle123 Thành viên hoạt động

    kieu manh thích bài này.
  15. AutoReply

    AutoReply Thành viên hoạt động

    ở trên có ghi rồi mà bạn
    mình thấy có video đó làm được nên mình nghĩ là được thôi chứ có biết code gì đâu bạn. Chắc có hiểu lầm gì ở đây rồi chăng. +-+-+-++-+-+-+
     
    Mutants Mendhn46 thích bài viết này.
  16. dhn46

    dhn46 Hướng tới tương lai

    Video điền vào Form ở chế độ Showmodal = False thì ngay code mình up cũng đã làm được. Vấn đề mình đang đưa ra là điền dữ liệu vào Cell.

    Bạn AutoReply vừa giỏi (mình đã xem nhiều bài của bạn) vừa khiêm tốn mình còn phải học tập nhiều.
     
    Mutants Men, AutoReplyphulien1902 thích bài viết này.
  17. Mutants Men

    Mutants Men Thành viên hoạt động

    có nghĩa là vừa điền vào cell thì dữ liệu trên cell đó hiện lên form luôn sao bác. em cũng đang tò mò cái này. có code thực hiện vụ này được chắc đã lắm (phát triển thêm được vài tiện ích có sẵn trên diễn đàn được, làm vài cái mã mở cho dân tình thế thái học hỏi cũng được).
    thấy vụ này addins A tools làm được sao không hỏi luôn tác giả nhỉ, bác chim hồng thấy lâu quá không onl ( thế mà trước giờ cứ nghĩ AutoReply là nick khác của bác ấy- toàn cao thủ ẩn dật) chắc không hỏi được.
    còn code hook sự kiện đó thì em nghĩ không giống trong video của bác chim hồng và addins A tools, vì cả 2 khi nhấn đều còn thấy được địa chỉ ô, trong khi đó code ở #1 thì không thấy được địa chỉ ô.
     
    Lần chỉnh sửa cuối: 18 Tháng bảy 2017
  18. dhn46

    dhn46 Hướng tới tương lai

    Bạn mới học VBA thì cứ từ từ mà tìm hiểu. Bạn biết đọc Code, biết áp dụng Code rồi thì cứ theo Code tôi up mà triển, nếu chưa biết thì mò tiếp như tôi, cứ thử, không được thử tiếp chứ có hiểu ý nghĩa mô tê gì đâu :) .


    Addin Atool bạn thích thì bạn hãy liên hệ với tác giả vì đó là sản phẩm thương mại và cũng không nằm trong vấn đề đang thảo luận.
     
  19. hoangvn79

    hoangvn79 Thành viên mới

    Phần mền A Tool làm được như vậy cũng phải dùng kỹ thuật hook keyboard và bẫy các sự kiện....để sử lý thông tin nhập vào và đưa lại vào cell.
     
  20. kieu manh

    kieu manh Chưa Cạo Phải Gội

    Mạnh mới nghĩ ra 1 giải pháp đơn giản vầy ... Nhờ các bạn Tham gia thêm
    1/ Tại C4 ta gõ chữ m xong Enter ...xong ta chọn Biểu tượng Data nó xổ ra cái cần lọc ...
    Tương Tự như vây ... Gõ chữ đ vv...

    2/ Còn rắc rối lắm ........ là phải thực hiện tới 3 thao tác mới cho ra kết quả

    3/ Chưa xử lý được SendKeys

    Mong các bạn tham gia thêm
    PHP:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        
    Dim Nguon()
        
    Nguon Sheet1.Range(Sheet1.[B3], Sheet1.[B65536].End(3)).Value
        
    If Target.Address = [C4].Address Then
            Call GetListValidation
    (Nguon(), Sheet2.Range("C4"))
        
    End If
    End Sub

    Public Sub GetListValidation(ByVal Arr As VariantByVal Target As Range)
        
    Dim Dic As Objectdk As StringAs Long
        Set Dic 
    CreateObject("scripting.dictionary")
        
    dk Sheet2.Range("C4").Value
        
    For 1 To UBound(Arr)
            If 
    InStr(1Arr(i1), dkThen
                
    If Not IsEmpty(Arr(i1)) Then
                    Dic
    .Item(Arr(i1)) = Dic.Count
                End 
    If
            
    End If
        
    Next
        With Target
    .Validation
            
    .Delete
            
    If Dic.Count Then
                
    .Add 3, , , Join(Dic.Keys",")
                
    ''SendKeys ("%{Down}"', True
                .ShowError = False
            End If
        End With
    End Sub
     

    Các file đính kèm:

    Lần chỉnh sửa cuối: 18 Tháng bảy 2017

Chia sẻ trang này