Page 1 of 1

อยากให้ข้อมูลแสดงตามเงื่อนไขใน Textbox ครับ

Posted: Thu Jun 12, 2014 5:44 pm
by peeraphat
สวัสดีครับอาจารย์ผมมีเรื่องรบกวนอาจารย์ครับ..
ผมอยากให้ข้อมูลในชีทdatabase แสดงที่ ชีท Report ด้วยค่าที่ใส่ใน textbox ของฟอร์มสอบถามครับผม..พยายามแล้วทำไม่ได้ครับผม...
รันโปรแกรมแล้วขึ้น Run-time error "1004":Application-defined or objact-defined error ครับ เกิดจากอะไรครับผม..

Code: Select all

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "UserForm1.TextBox1" And Target <> "" Then
    ShowEmp
ElseIf Target.Address = "UserForm1.TextBox1" And Target = "" Then
    MsgBox "Please select data."
End If
End Sub

Code: Select all

Option Explicit
Option Base 1
Sub ShowData()
Dim a() As Variant, lng As Long
Dim r As Range, rAll As Range
Dim rt As Range, rl As Long
Application.EnableEvents = False
Application.ScreenUpdating = False
rl = Rows.Count
With Worksheets("Database")
    Set rAll = .Range("A2", .Range("A" & rl).End(xlUp))
End With
For Each r In rAll
    If r = [color=#FFFF40]Worksheets("Report").Range(UserForm1.TextBox1[/color]) Then
        lng = lng + 1
        ReDim Preserve a(6, lng)
        a(1, lng) = lng
        a(2, lng) = r.Offset(0, 0)
        a(3, lng) = r.Offset(0, 1)
        a(4, lng) = r.Offset(0, 2)
        a(5, lng) = r.Offset(0, 3)
        a(6, lng) = r.Offset(0, 4)
    End If
Next r
If lng > 0 Then
    With Worksheets("Report")
        Set rt = .Range("A2", .Range("E" & lng - 1 + 5))
        .Range("A2", .Range("A" & rl).End(xlUp).Offset(0, 4)).ClearContents
        .Range("A2:E2").Copy
        rt.PasteSpecial xlPasteFormats
        rt = Application.Transpose(a)
        .Range("B2", .Range("B" & rl).End(xlUp)).NumberFormat = "000000"
        .Range(.Range("A2").End(xlDown).Offset(1, 0), .Range("E" & rl)).Clear
        .Range("UserForm1.TextBox1.Text").Activate
    End With
Else
    MsgBox "Data not found."
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
ขอบคุณอาจารย์ล่วงหน้าครับ
ทดสอบระบบ.xls

Re: อยากให้ข้อมูลแสดงตามเงื่อนไขใน Textbox ครับ

Posted: Thu Jun 12, 2014 5:51 pm
by bank9597
:D ขอไฟล์แนบด้วยครับ

Re: อยากให้ข้อมูลแสดงตามเงื่อนไขใน Textbox ครับ

Posted: Fri Jun 13, 2014 7:26 am
by peeraphat
ผมได้แนบไฟล์ให้อาจารย์ครับผม...ขอบคุณครับ

Re: อยากให้ข้อมูลแสดงตามเงื่อนไขใน Textbox ครับ

Posted: Fri Jun 13, 2014 7:40 am
by snasui
:D Code นั้นไม่ได้ง่ายสำหรับมือใหม่ หากไม่เข้าใจ Array ไม่ควรใช้ครับ :!:

Code นี้แต่เดิมนั้นเป็นการดักการเปลี่ยนแปลงในเซลล์ หากเซลล์เป้าหมายมีการเปลี่ยนแปลงก็ให้ไปดึงข้อมูลมาตามค่าในเซลล์เป้าหมาย ไม่ใช่ให้ไปรับค่ามาจาก UserForm หากต้องการจะประยุกต์ก็ควรจะนำค่าใน UserForm ไปวางในเซลล์เป้าหมายแทนการเลือกเซลล์เป้าหมายด้วย Manual

ควรบันทึก Macro ทำการ Filter ด้วย Advanced Filter แล้วนำ Code ที่ได้มาปรับใช้จะสะดวกกว่า หรือ หากเข้าใจการใช้ For...Next ก็จะสะดวกกว่าเช่นกัน

Re: อยากให้ข้อมูลแสดงตามเงื่อนไขใน Textbox ครับ

Posted: Fri Jun 13, 2014 8:08 am
by peeraphat
ขอบคุณมากครับผม..ต้องลองคิดหาวิธิใหม่แทนครับผม

Re: อยากให้ข้อมูลแสดงตามเงื่อนไขใน Textbox ครับ

Posted: Fri Jun 13, 2014 8:14 am
by peeraphat
อาจารย์กรุณายกตัวอย่างพอเป็นแนวทางให้ผมหน่อยนะครับ

Re: อยากให้ข้อมูลแสดงตามเงื่อนไขใน Textbox ครับ

Posted: Fri Jun 13, 2014 9:13 am
by snasui
:D อ่านที่ผมตอบด้านบนอีกครั้งครับ ไม่เข้าใจประโยคใดยกมาถามได้ครับ