Page 1 of 1

ต้องการให้ข้อมูลเลื่อนขณะลงข้อมูล

Posted: Wed Jan 15, 2014 8:15 pm
by todunk85
ผมติดขัดปัญหาเมื่อใส่ข้อมูลเกิน 20 บรรทัดแล้วจะมองไม่เห็นข้อมูลที่ใส่ลงไป ต้องเลื่อนแถบด้านข้างครับ พอจะมีวิธีไหมครับ
และในช่องระหัสสินค้าเป็นไปได้ไหมที่จะให้ ใส่ได้แค่ 4 อักษรครับ ขอความช่วยเหลือหน่อยครับ ผมหัดเขียนใหม่ครับ

Re: ต้องการให้ข้อมูลเลื่อนขณะลงข้อมูล

Posted: Wed Jan 15, 2014 8:28 pm
by snasui
:D ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Private Sub CommandButton1_Click()
    If Me.TextBox1.Value <> "" Then
        Dim irow As Long
        Dim ws As Worksheet
        Set ws = Worksheets("Sheet1")
        Me.TextBox1.Text = Application.Trim(Me.TextBox1.Text)
        'Find first empty row in database
        irow = ws.Cells(Rows.Count, 2) _
            .End(xlUp).Offset(1, 0).Row
       
        'Copy The Data To The Database
        ws.Cells(irow, 1).Value = Me.TextBox1.Value
        ws.Cells(irow, 2).Value = Me.TextBox2.Value
        ws.Cells(irow, 1).Select
        Me.TextBox1 = ""
        Me.TextBox2 = ""
    Else
        MsgBox "no product", vbCritical
    End If
End Sub
กรณีต้องการกำหนดความยาวอักขระในการกรอกข้อมูลสามารถกำหนด Properties ตรง MaxLength โดยระบุค่าความยาวอักขระตามต้องการ

Re: ต้องการให้ข้อมูลเลื่อนขณะลงข้อมูล

Posted: Wed Jan 15, 2014 8:41 pm
by todunk85
ขอบคุณมากครับครูครับ ได้แล้วครับ แต่ต้องเพิ่ม
Unload Me
UserForm1.Show
ต่อท้ายหน่อยครับไม่งั้นใส่ข้อมูลลำบากครับ
ขอบพระคุณมากครับ

Re: ต้องการให้ข้อมูลเลื่อนขณะลงข้อมูล

Posted: Wed Jan 15, 2014 8:56 pm
by snasui
:D ช่วยอธิบายว่าใส่ข้อมูลลำบากอย่างไร เพื่อว่าจะได้เข้าใจสิ่งที่เป็นปัญหาครับ

Re: ต้องการให้ข้อมูลเลื่อนขณะลงข้อมูล

Posted: Wed Jan 15, 2014 10:26 pm
by todunk85
พอส่งข้อมูลไปแล้ว จะกลับมาใส่ใหม่ต้องใช้เมาส์คลิกครับ ครู เลยต้องใส่code เพิ่มเข้าไปครับ ครู ครับ

Re: ต้องการให้ข้อมูลเลื่อนขณะลงข้อมูล

Posted: Wed Jan 15, 2014 11:02 pm
by snasui
:D ตัวอย่างการ Set Forcus เพื่อให้ Active ที่ TextBox1 หลังจากวางข้อมูลแล้วครับ

Code: Select all

Private Sub CommandButton1_Click()
    If Me.TextBox1.Value <> "" Then
        Dim irow As Long
        Dim ws As Worksheet
        Set ws = Worksheets("Sheet1")
        Me.TextBox1.Text = Application.Trim(Me.TextBox1.Text)
        'Find first empty row in database
        irow = ws.Cells(Rows.Count, 2) _
            .End(xlUp).Offset(1, 0).Row
       
        'Copy The Data To The Database
        ws.Cells(irow, 1).Value = Me.TextBox1.Value
        ws.Cells(irow, 2).Value = Me.TextBox2.Value
        ws.Cells(irow, 2).Select
        Me.TextBox1 = ""
        Me.TextBox2 = ""
        Me.TextBox1.SetFocus
    Else
        MsgBox "no product", vbCritical
    End If
End Sub
ปกติแล้วการ Load UserForm ที่มีการเขียนอย่างซับซ้อนโดยมี ComBobox, ListBox จำนวนมากที่จะต้อง Add ค่าต่าง ๆ เพื่อให้ User เลือกใช้ หากต้องทำการ Load, Unload ซ้ำ ๆ จะทำให้โปรแกรมทำงานช้า จึงควรหลีกเลี่ยงที่จะทำเช่นนั้น ควรโหลดขึ้นมาครั้งเดียว เมื่อไม่ใช้แล้วค่อยปิดไป

แต่สำหรับ UserForm ที่ทำมานี้ไม่ได้ซับซ้อน จะใช้ Code เดิมก็ไม่มีปัญหาใดครับ