Page 1 of 1

การทำ Automatic Validation By Object VBA

Posted: Thu Dec 22, 2011 12:07 am
by bank9597
:D ผมอยากได้ Automatic Validation ที่เหมือนการเสิร์ซใน Google โดยคีย์อักขระลงไปในช่อง 1-3 ตัว รายการที่มีอักขระตรงกัน ก็จะแสดงรายการแบบหล่นลงมาด้านล่างของช่องข้อความ ให้เราเลือกได้

ผมทำได้ทำไฟล์ และเขียนโค๊ดมาแล้ว อยากให้อาจารย์เพิ่มเติมให้หน่อยครับ ว่าจะทำวิธีไหนต่อดีครับ

Re: การทำ Automatic Validation By Object VBA

Posted: Thu Dec 22, 2011 3:55 pm
by snasui
:D ลองดู Code ตามด้านล่างและไฟล์แนบครับ

Code: Select all

Option Explicit
Dim f As Boolean

Private Sub ComboBox1_Change()
    Dim rAll As Range
    Dim rt As Range
    With Sheets("Name")
        Set rAll = .Range("B2", .Range("B" & Rows.Count).End(xlUp))
        If Application.CountIf(rAll, ComboBox1.Text) > 0 And f = True Then
            Sheets("Name").Range("E2") = ComboBox1.Text
            Sheets("Form").Range("B2") = ComboBox1.Text
            ComboBox1 = ""
            Me.Hide
            Exit Sub
        End If
        .Range("E2") = ComboBox1.Text
        Sheets("Name").Range("C:C").ClearContents
        rAll.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.Range( _
            "F1:F2"), CopyToRange:=.Range("C2"), Unique:=False
        Set rt = .Range("C3", .Range("C" & Rows.Count).End(xlUp))
    End With
    ComboBox1.RowSource = "Name!" & rt.Address
    ComboBox1.DropDown
End Sub

Private Sub CommandButton1_Click()
    f = True
    Sheets("Name").Range("E2") = ComboBox1.Text
    Sheets("Form").Range("B2") = ComboBox1.Text
    ComboBox1 = ""
    Me.Hide
End Sub

Private Sub UserForm_Initialize()
    f = False
    Me.ComboBox1.RowSource = ("Name!B3:B50")
End Sub

Re: การทำ Automatic Validation By Object VBA

Posted: Thu Dec 22, 2011 4:30 pm
by bank9597
เยี่ยมยอดไปเลยครับอาจารย์ เหมือนเราเสิร์ซใน Google เลยครับ :D

ขอบคุณมากน่ะครับ