Page 1 of 1

ป้อนข้อมูลผ่านฟอร์ม

Posted: Sat Sep 22, 2012 2:40 pm
by bundit
เรียนท่านอาจารย์
รบกวนแนะนำด้วยครับ
ป้อนข้อมูลผ่านฟอร์มแล้วข้อมูลไม่ลงตามตำแหน่งที่ต้องการ

ขอแสดงความนับถือ

Re: ป้อนข้อมูลผ่านฟอร์ม

Posted: Sat Sep 22, 2012 3:35 pm
by bank9597
:lol: ในโค๊ดคุณระบุไว้ว่า ให้ทำการหาบรรทัดสุดท้ายแล้วทำการบรรทึกข้อมูลลงไปเรื่อยๆ

การจะแบบนั้น จำเป็นต้องระบุตำแหน่งเซลล์ที่ต้องการให้ข้อมูลไปวาง
ลองปรับโค๊ดตามนี้ดูครับ
ก็อื่นให้สร้าง TextBox ขึ้นมาอีก 1 TaxtBox จะได้ TextBox6 ขึ้นมา
ปรับโค๊ดตามนี้

Code: Select all

Private Sub Save_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("2").Range(TextBox6.Value).Row
   
    'Copy The Data To The Database
    ws.Cells(irow, 2).Value = Me.TextBox1.Value
    ws.Cells(irow, 3).Value = Me.TextBox2.Value
    ws.Cells(irow, 4).Value = Me.TextBox3.Value
    ws.Cells(irow, 5).Value = Me.TextBox4.Value
    ws.Cells(irow, 6).Value = Me.TextBox5.Value
      
    Unload Me
    UserForm1.Show
    Else
    MsgBox "Please check Data", vbCritical
    End If
    
End Sub
เวลาทำการทดสอบบันทึกข้อมูล ให้ระบุเซลล์ปลายทางที่จะบันทึกข้อมูลลงไปที่ TextBoxt6 เช่น B1 เป็นต้น

ส่วนการทำ ComboBox ให้สร้าง ComboBox ขึ้นมา
แล้ววางโค๊ดนี้ลงไปครับ

Code: Select all

Private Sub UserForm_Initialize()
a = "List!B3:B19"
ComboBox1.RowSource = a
End Sub

Re: ป้อนข้อมูลผ่านฟอร์ม

Posted: Sat Sep 22, 2012 5:25 pm
by bundit
เรียนท่านอาจารย์รบกวนด้วยครับ
ถ้าไม่ต้องการระบุตำแหน่งในฟอร์มแต่เราใช้เคอร์เซอร์วางที่ตำแหน่งเริ่มต้นแล้วป้อนข้อมูลลงมาเรื่อยๆ
มีวิธีหรือเปล่าครับ

ขอแสดงความนับถือ

Re: ป้อนข้อมูลผ่านฟอร์ม

Posted: Sat Sep 22, 2012 5:54 pm
by snasui
:D ให้เพิ่มเข้าเมนู Insert แล้วเลือก Module เพื่อแทรก Module ขึ้นมาใหม่ จากนั้นนำ Code นี้ไปวาง และทำการ Assign Macro ให้กับปุ่ม Input

Code: Select all

Sub Show()
    UserForm1.Show vbModeless
End Sub
และปรับ Code ด้านล่างนี้เพื่อให้สามารถเลือกวางที่เซลล์ใด ๆ ได้ตามต้องการ

Code: Select all

Private Sub Save_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 = ActiveCell.Row
       
        'Copy The Data To The Database
        ws.Cells(irow, 2).Value = Me.TextBox1.Value
        ws.Cells(irow, 3).Value = Me.TextBox2.Value
        ws.Cells(irow, 4).Value = Me.TextBox3.Value
        ws.Cells(irow, 5).Value = Me.TextBox4.Value
        ws.Cells(irow, 6).Value = Me.TextBox5.Value
        ActiveCell.Offset(1, 0).Activate
    '    Unload Me
    '    UserForm1.Show
    Else
        MsgBox "Please check Data", vbCritical
    End If
End Sub

Re: ป้อนข้อมูลผ่านฟอร์ม

Posted: Mon Sep 24, 2012 2:17 pm
by bundit
เรียนท่านอาจารย์
รบกวนช่วยดู Code ให้ด้วยครับ(ไม่แน่ใจว่าผมทำผิดจุดไหน)


ขอแสดงความนับถือ

Re: ป้อนข้อมูลผ่านฟอร์ม

Posted: Mon Sep 24, 2012 4:21 pm
by snasui
:lol: Code ที่นำไปไว้ใน Module ที่แทรกขึ้นมาใหม่คือ Code ด้านล่างนี้เท่านั้นครับ

Code: Select all

Sub Show()
    UserForm1.Show vbModeless
End Sub

Re: ป้อนข้อมูลผ่านฟอร์ม

Posted: Tue Sep 25, 2012 8:02 am
by kio2002
เรียน ท่านอาจารย์

ต่อจากคุณ bundit
แล้วถ้าเราจะ ให้ลำดับมันลงอัติโนมัติ โดยที่ไม่ต้องคีย์ใส่ในฟอร์ม จะปรับโค้ดยังไงดีครับ
ผมแนบไฟล์มาแล้วครับ

Re: ป้อนข้อมูลผ่านฟอร์ม

Posted: Tue Sep 25, 2012 1:11 pm
by snasui
:D Code ที่เขียนไว้แล้วอยู่ที่ Procedure ใด Module ใด ติดขัดตรงบรรทัดใด ช่วยเขียนแจ้งมาด้วยจะได้เข้าถึงปัญหาได้โดยไวครับ

Re: ป้อนข้อมูลผ่านฟอร์ม

Posted: Tue Sep 25, 2012 2:18 pm
by kio2002
โค้ดอยู่ที่ UserForm1 และ Module1 ครับ

คือติดตรงที่ว่า ลำดับ เราไม่ต้องป้อนได้ไหมครับ แต่ให้โปรแกรมมันป้อนลงตารางให้อัติโนมัติครับ

ไม่รู้ว่าท่านอาจารย์ เข้าใจที่ผมอธิบายรึเปล่าครับ

ขอบคุณครับ

Re: ป้อนข้อมูลผ่านฟอร์ม

Posted: Tue Sep 25, 2012 3:35 pm
by bank9597
kio2002 wrote:โค้ดอยู่ที่ UserForm1 และ Module1 ครับ

คือติดตรงที่ว่า ลำดับ เราไม่ต้องป้อนได้ไหมครับ แต่ให้โปรแกรมมันป้อนลงตารางให้อัติโนมัติครับ

ไม่รู้ว่าท่านอาจารย์ เข้าใจที่ผมอธิบายรึเปล่าครับ

ขอบคุณครับ
:D ผมก็ยังไม่เข้าใจครับ ลองอธิบายให้ละเอียดอีกครั้งได้ไหมครับ เพื่อว่าท่านอื่นที่เข้ามาจะได้ช่วยดูให้ครับ

Re: ป้อนข้อมูลผ่านฟอร์ม

Posted: Tue Sep 25, 2012 4:51 pm
by snasui
:D ตัวอย่างการให้แสดงลำดับต่อจากเดิมตามด้านล่างครับ

Code: Select all

Private Sub Add_Click()
'  If Me.TextBox1.Value <> "" Then
   Dim irow As Long
   Dim ws As Worksheet
   Set ws = Worksheets("S_Column1")
   Me.TextBox1.Text = Application.Trim(Me.TextBox1.Text)
   'Find first empty row in database
   irow = ws.Cells(Rows.Count, 1) _
       .End(xlUp).Offset(1, 0).Row
       
   'Copy The Data To The Database
    If Range("A10") = "" Then
        ws.Cells(irow, 1).Value = 1
    Else
        ws.Cells(irow, 1).Value = Range("A9").End(xlDown) + 1
    End If
    ws.Cells(irow, 2).Value = Me.TextBox2.Value
    ws.Cells(irow, 4).Value = Me.TextBox3.Value
    ws.Cells(irow, 5).Value = Me.TextBox4.Value
    ws.Cells(irow, 9).Value = Me.TextBox5.Value
    ws.Cells(irow, 10).Value = Me.TextBox6.Value
    ws.Cells(irow, 11).Value = Me.TextBox7.Value
    ws.Cells(irow, 12).Value = Me.TextBox8.Value
    ws.Cells(irow, 15).Value = Me.TextBox9.Value
    ws.Cells(irow, 14).Value = Me.TextBox10.Value
    ws.Cells(irow, 16).Value = Me.TextBox11.Value
    
    Unload Me
    UserForm1.Show
'    Else
'    MsgBox "¡Ãسһé͹ÅӴѺ·Õè¡è͹", vbCritical
'    End If
End Sub

Re: ป้อนข้อมูลผ่านฟอร์ม

Posted: Wed Sep 26, 2012 1:38 pm
by kio2002
ขอบคุณ อาจารย์snasui ครับ อย่างนี้แหละที่ผมต้องการ

การเขียนโค้ด VBA ผมรู้ครับ ว่ามันยาก ยิ่งถ้าคนอ่านแปลอังกฤษ ไม่ได้ ก็ไม่ต้องพูดกันครับ

ซึ่ง VBA ใน Excel ผมไม่เคยรู้มาก่อน ว่ามันมี พอผมได้เห็นและได้ใช้ จึงสนใจมากที่จะเขียนขึ้นมาด้วยตัวเอง
ซึ่งถ้าเราได้เขียนมันขึ้นมาด้วยตัวของเราเอง ก็ยิ่งภูมิใจ
โปรเจ็กผมที่กำลังทำ ยังอีกยาวไกล ต้องรบกวนท่านอาจารย์ Snasui ช่วยผมอีกเยอะเลยครับ

ซึ่งโค้ดที่ท่านแนะนำมาหรือเขียนให้ดู ผมก็พยายามเอาไป ประยุกต์ใช้ครับ แต่ในบางครั้งก็คิดไม่ออก จึงเอามาโพสถามท่านครับ

เดี๋ยวถ้าผมติดขัดตรงไหน แล้วจะมาถามท่านต่อไป หวังว่าท่าน คงไม่ว่าอะไรน่ะครับ ถ้าผมถามจุกจิก

ขอบคุณครับ

Re: ป้อนข้อมูลผ่านฟอร์ม

Posted: Wed Sep 26, 2012 1:45 pm
by snasui
:D สำหรับทุกการถามไม่มีปัญหาอยู่แล้วครับ เพราะวัตถุประสงค์ที่ตั้งฟอรัมมาก็เพื่อถามตอบปัญหากัน แต่กรณีเป็น VBA จำเป็นจะต้องเขียนเองก่อน เขียนได้เท่าไรก็เท่านั้น เพื่อจะได้เห็นว่าได้มีการพยายามมาด้วยตนเองแล้วครับ :P

Re: ป้อนข้อมูลผ่านฟอร์ม

Posted: Wed Oct 17, 2012 6:11 pm
by kio2002
เรียนท่านอาจารย์ครับ

รบกวนท่านปรับโค้ดให้หน่อยครับ
1 คืออยากให้ตรงช่องชื่อเสา ขึ้นตัวพิมพ์ใหญ่อัติโนมัติ หลังจากที่ Enter ไปแล้ว
2 ตรงช่อง (กว้าง_W), (ยาวฐาน_L) อยากให้มันขึ้นตัวเลขเต็มครับ อย่างเช่นเราพิมพ์ 0.2 พอเรา Enter ให้มันขึ้น 0.20 หรือ 0.200 ครับ
3 ตรงช่องจำนวนเหล็ก A และจำนวนชุด ให้มันโชว์เลขอัติโนมัติตามที่เราต้องการให้มันโชว์
แต่เราสามารถแก้ไขตอนที่เราบันทึกค่าได้
4 ไม่ให้ปุ่ม Add มันโชว์จนกว่าเราจะป้อนค่าช่อง (ยาวฐาน_L) ครับ (เพื่อป้องกัน Error)

ผมได้แนบไฟล์ และได้เอารูปมาลงให้ท่านดูด้วยครับ

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


Image

Re: ป้อนข้อมูลผ่านฟอร์ม

Posted: Wed Oct 17, 2012 6:17 pm
by snasui
:D Code ในแต่ละข้อที่ถามอยู่ที่ Module ใด, Procedure ใด ลองโพสต์มาดูและบอกว่าที่ทำไปแล้วนั้นติดตรงส่วนใดด้วยครับ

Re: ป้อนข้อมูลผ่านฟอร์ม

Posted: Wed Oct 17, 2012 6:45 pm
by snasui
:D กรณีไม่ได้โพสต์ถามเรื่องเดียวกันต่อเนื่องกันมาควรตั้งเป็นกระทู้ใหม่ เพื่อที่ว่าหากเจ้าของกระทู้เข้ามาถามต่อในส่วนของตนเองจะได้ไม่เกิดความสับสน

Re: ป้อนข้อมูลผ่านฟอร์ม

Posted: Thu Oct 18, 2012 10:40 pm
by kio2002
ขอโทษครับ ที่ใช้กระทู้ของคนอื่นในการโพส แต่ว่าขอโจทย์นี้ให้เสร็จไปก่อนได้ไหมครับ

Code อยู่ที่ UserForm1

1 ติดตรงที่ช่อง Text c1-0 (ชื่อเสา) คืออยากให้มันเป็นตัวพิมพ์ใหญ่อัติโนมัติครับ โดยที่เราไม่ต้องกด Caps lock เวลาพิมพ์ อย่างเช่นเราพิมพ์
c1-0 แล้วให้มันขึ้น C1-0 เป็นตัวพิมพ์ใหญ่หลังจากที่เรา Enter ครับ
2 ตรงที่ช่อง Text .2 (กว้าง_W) อยากให้มันเป็นตัวเลขเต็มจำนวนตามที่เราต้องการครับ อย่างเราพิมพ์ .2 แล้วให้มันขึ้น 0.200 หลังจาก Enter
3 ตรงช่อง Text จำนวนเสา ให้มันขึ้นเลข 4 ในขณะที่เราคลิกเข้าฟอร์ม โดยที่เราไม่ต้องพิมพ์ครับ
4 ก็คือไม่อยากให้ปุ่ม Add มันโชว์ ขณะที่เราคลิกเข้าฟอร์ม จนกว่าเราจะป้อน Text ลงช่องชื่อเสา อย่างเช่นเราพิมพ์ c1-0 Enter แล้วค่อยให้ปุ่ม Add มันโชว์ครับ

4 หัวข้อนี่แหละครับ ที่ผมอยากรู้ แต่ไม่รู้จะปรับโค้ดยังไง แต่ตรงส่วนอื่นไม่ติดปัญหาอะไร แต่อยากให้ท่านช่วยปรับโค้ด 4 หัวข้อนี้ให้หน่อย

ขอบคุณท่านมากครับ แต่ไม่รู้ว่าท่านเข้าใจตามที่ผมอธิบายรึเปล่า

Re: ป้อนข้อมูลผ่านฟอร์ม

Posted: Thu Oct 18, 2012 10:41 pm
by snasui
:shock:
kio2002 wrote:ขอโทษครับ ที่ใช้กระทู้ของคนอื่นในการโพส แต่ว่าขอโจทย์นี้ให้เสร็จไปก่อนได้ไหมครับ
เมื่อทราบแล้วควรปฏิบัติครับ

Re: ป้อนข้อมูลผ่านฟอร์ม

Posted: Sun Oct 21, 2012 10:58 am
by kio2002
ตั้งกระทู้ใหม่แล้วครับ