:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

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

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
bundit
Member
Member
Posts: 47
Joined: Sat Sep 08, 2012 9:26 am

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

#1

Post by bundit »

เรียนท่านอาจารย์
รบกวนแนะนำด้วยครับ
ป้อนข้อมูลผ่านฟอร์มแล้วข้อมูลไม่ลงตามตำแหน่งที่ต้องการ

ขอแสดงความนับถือ
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

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

#2

Post 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
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
bundit
Member
Member
Posts: 47
Joined: Sat Sep 08, 2012 9:26 am

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

#3

Post by bundit »

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

ขอแสดงความนับถือ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#4

Post 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
bundit
Member
Member
Posts: 47
Joined: Sat Sep 08, 2012 9:26 am

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

#5

Post by bundit »

เรียนท่านอาจารย์
รบกวนช่วยดู Code ให้ด้วยครับ(ไม่แน่ใจว่าผมทำผิดจุดไหน)


ขอแสดงความนับถือ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#6

Post by snasui »

:lol: Code ที่นำไปไว้ใน Module ที่แทรกขึ้นมาใหม่คือ Code ด้านล่างนี้เท่านั้นครับ

Code: Select all

Sub Show()
    UserForm1.Show vbModeless
End Sub
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

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

#7

Post by kio2002 »

เรียน ท่านอาจารย์

ต่อจากคุณ bundit
แล้วถ้าเราจะ ให้ลำดับมันลงอัติโนมัติ โดยที่ไม่ต้องคีย์ใส่ในฟอร์ม จะปรับโค้ดยังไงดีครับ
ผมแนบไฟล์มาแล้วครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#8

Post by snasui »

:D Code ที่เขียนไว้แล้วอยู่ที่ Procedure ใด Module ใด ติดขัดตรงบรรทัดใด ช่วยเขียนแจ้งมาด้วยจะได้เข้าถึงปัญหาได้โดยไวครับ
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

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

#9

Post by kio2002 »

โค้ดอยู่ที่ UserForm1 และ Module1 ครับ

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

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

ขอบคุณครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

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

#10

Post by bank9597 »

kio2002 wrote:โค้ดอยู่ที่ UserForm1 และ Module1 ครับ

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

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

ขอบคุณครับ
:D ผมก็ยังไม่เข้าใจครับ ลองอธิบายให้ละเอียดอีกครั้งได้ไหมครับ เพื่อว่าท่านอื่นที่เข้ามาจะได้ช่วยดูให้ครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#11

Post 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
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

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

#12

Post by kio2002 »

ขอบคุณ อาจารย์snasui ครับ อย่างนี้แหละที่ผมต้องการ

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

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

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

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

ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#13

Post by snasui »

:D สำหรับทุกการถามไม่มีปัญหาอยู่แล้วครับ เพราะวัตถุประสงค์ที่ตั้งฟอรัมมาก็เพื่อถามตอบปัญหากัน แต่กรณีเป็น VBA จำเป็นจะต้องเขียนเองก่อน เขียนได้เท่าไรก็เท่านั้น เพื่อจะได้เห็นว่าได้มีการพยายามมาด้วยตนเองแล้วครับ :P
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

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

#14

Post by kio2002 »

เรียนท่านอาจารย์ครับ

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

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

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


Image
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#15

Post by snasui »

:D Code ในแต่ละข้อที่ถามอยู่ที่ Module ใด, Procedure ใด ลองโพสต์มาดูและบอกว่าที่ทำไปแล้วนั้นติดตรงส่วนใดด้วยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#16

Post by snasui »

:D กรณีไม่ได้โพสต์ถามเรื่องเดียวกันต่อเนื่องกันมาควรตั้งเป็นกระทู้ใหม่ เพื่อที่ว่าหากเจ้าของกระทู้เข้ามาถามต่อในส่วนของตนเองจะได้ไม่เกิดความสับสน
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

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

#17

Post 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 หัวข้อนี้ให้หน่อย

ขอบคุณท่านมากครับ แต่ไม่รู้ว่าท่านเข้าใจตามที่ผมอธิบายรึเปล่า
Last edited by kio2002 on Thu Oct 18, 2012 10:42 pm, edited 1 time in total.
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#18

Post by snasui »

:shock:
kio2002 wrote:ขอโทษครับ ที่ใช้กระทู้ของคนอื่นในการโพส แต่ว่าขอโจทย์นี้ให้เสร็จไปก่อนได้ไหมครับ
เมื่อทราบแล้วควรปฏิบัติครับ
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

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

#19

Post by kio2002 »

ตั้งกระทู้ใหม่แล้วครับ
Post Reply