: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

ปัญหาการจัดคำแบบสอบถามใน excel

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#21

Post by porkub1 »

อาจารย์ ครับ จากที่ถามข้างบนผมแก้ไขได้แล้วครับ ขอบคุณแนวทางอาจารย์มากครับ ช่วยได้มากเลยครับ

ทีนี้ผมมีคำถามว่า จากชีทแบบสอบถามในข้อ 1.1 ผมติดตรงที่เวลาตอบคำถามว่า
ให้ใช่ และต้องกรอกข้อความในกล่อง จะผ่านไป ข้อ 1.2 อันนี้ไม่มีปัญหา แต่
เวลาติ๊กที่ "ยังไม่" แต่ถ้าเรากรอกข้อความลงในกล่อง จะยังสามารถผ่านไปไดข้อ 1.2 ได้อยู่ ซึ่งผมไม่ต้องการแบบนี้ อยากให้ ถ้าติ๊กยังไม่ ต่อให้กรอกข้อความก็ไม่สามารถผ่านได้

Code: Select all

Private Sub CommandButton1_Click()
If TextBox1.Value = "" Then
 strvaluemsg = MsgBox("กรุณาระบุผลลัพธ์ของท่านในขั้นตอนนี้", vbOKOnly + 64, "กรุณาอ่าน ")
Else: strvaluemsg = MsgBox("ข้อมูลของท่านได้บันทึกแล้ว  ไปข้อที่ 1.2")
Application.Goto reference:="ques1.2"

 End If
End Sub

Private Sub CommandButton2_Click()
MsgBox ("กรุณากรอกขั้นตอนนี้ อีกครั้ง ขอบคุณ")
End Sub
You do not have the required permissions to view the files attached to this post.
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#22

Post by porkub1 »

แล้วอยากถามว่า ผมสามารถ แก้ไข วัตถุที่เป็น macros หรือที่มาจาก form controls ในวัตถุที่เป็น activex ได้ หรือไม่ครับ เพราะเวลาอ้างชื่อวัตถุที่เป็น macros มีเตือนขึ้นมา ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#23

Post by snasui »

:D ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

Private Sub CommandButton1_Click()
    If TextBox1.Value = "" Then
        MsgBox "กรุณาระบุผลลัพธ์ของท่านในขั้นตอนนี้", vbOKOnly + 64, "กรุณาอ่าน "
    Exit Sub
    End If
    If Sheets("แบบสอบถาม").OptionButtons("Option Button 81").Value = 1 Then
       MsgBox "กรุณาอ่าน"
       Exit Sub
    End If
    MsgBox ("ข้อมูลของท่านได้บันทึกแล้ว  ไปข้อที่ 1.2")
    Application.Goto reference:="ques1.2"
End Sub
porkub1 wrote:แล้วอยากถามว่า ผมสามารถ แก้ไข วัตถุที่เป็น macros หรือที่มาจาก form controls ในวัตถุที่เป็น activex ได้ หรือไม่ครับ เพราะเวลาอ้างชื่อวัตถุที่เป็น macros มีเตือนขึ้นมา ขอบคุณครับ
ไม่จำเป็นต้องแก้ครับ ไม่ว่าจะเป็น Form Control หรือ ActiveX Control ก็สามารถเขียน Code เข้าไปกำกับได้ทั้งนั้นครับ
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#24

Post by porkub1 »

:thup: :thup: :thup: ขอขอบพระคุณอาจารย์นะครับ ผมทำได้ในส่วนที่ผมติดปัญหาเกือบทั้งหมดแล้ว ทำให้ผมได้ความรู้เกี่ยว vba มากเลยครับ ถ้าบอร์ดนี้ มีอะไรให้ช่วยเหลือขอให้บอกผมมาได้เลยนะครับ

ขอให้อาจารย์ snasui มีความสุขความเจริญ นะครับ ขอบคุณจริงๆๆครับ
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#25

Post by porkub1 »

อาจารย์ครับ ขอสอบถามเพิ่มเติม ในการบันทึกข้อมูลข้อความที่กรอกใน textbox ตอนนี้จะบันทึกทับข้อมูลกัน เมื่อเวลากรอกใหม่

ทีนี้ผมอยากจะให้ จากในไฟล์ที่แนบ ผมได้สั่งให้บันทึก คือ ข้อ 1.1 กล่องข้อความ (textbox1) ข้อมูลที่กรอกกล่องนี้จะอยู่ใน เซลล์ A9
ที่นี้อยากให้ การบันทึกเมื่อกรอกครั้งแรก จะอยู่ใน เซลล์ A9 และบันทึกครั้งที่ 2 ในกล่องเดิม จะขอให้อยู่ เซลล์ A19 ครับ และบันทึกครั้งที่ 3 ในกล่องเดิม จะขอให้อยู่ เซลล์ A29 ครับ

ขอแนบโค้ดครับ

Code: Select all

Private Sub CommandButton1_Click()
If TextBox1.Value = "" Then
 strvaluemsg = MsgBox("กรุณาระบุผลลัพธ์ของท่านในขั้นตอนนี้", vbOKOnly + 64, "กรุณาอ่าน ")
Else: strvaluemsg = MsgBox("ข้อมูลของท่านได้บันทึกแล้ว  ไปข้อที่ 1.2")
Worksheets("บันทึกข้อมูล").Range("a9") = TextBox1.Value
Application.Goto reference:="ques1.2"

 End If
End Sub[attachment=0]Flowchartภาค(จัดทำจริงส่งคำถาม)2.xlsm[/attachment]



อันนี้ผมลองหาวิธีมาหลายวันแล้ว ยังหาไม่เจอ ยังไงรบกวนอาจารย์ด้วยนะครับ ขอบพระคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#26

Post by snasui »

:D ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Private Sub CommandButton1_Click()
    If TextBox1.Value = "" Then
        strvaluemsg = MsgBox("กรุณาระบุผลลัพธ์ของท่านในขั้นตอนนี้", vbOKOnly + 64, "กรุณาอ่าน ")
    Else: strvaluemsg = MsgBox("ข้อมูลของท่านได้บันทึกแล้ว  ไปข้อที่ 1.2")
        With Worksheets("บันทึกข้อมูล")
            If .Range("a9") = "" Then
                .Range("a9") = TextBox1.Value
            Else
                .Range("a" & Rows.Count).End(xlUp).Offset(10, 0) = TextBox1.Value
        End With
        Application.Goto reference:="ques1.2"
    End If
End Sub
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#27

Post by porkub1 »

:cp: :cp: ได้แล้วครับอาจารย์ ขอบพระคุณอาจารย์ มากครับ
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#28

Post by porkub1 »

snasui wrote::D ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Private Sub CommandButton1_Click()
    If TextBox1.Value = "" Then
        strvaluemsg = MsgBox("กรุณาระบุผลลัพธ์ของท่านในขั้นตอนนี้", vbOKOnly + 64, "กรุณาอ่าน ")
    Else: strvaluemsg = MsgBox("ข้อมูลของท่านได้บันทึกแล้ว  ไปข้อที่ 1.2")
        With Worksheets("บันทึกข้อมูล")
            If .Range("a9") = "" Then
                .Range("a9") = TextBox1.Value
            Else
                .Range("a" & Rows.Count).End(xlUp).Offset(10, 0) = TextBox1.Value
        End With
        Application.Goto reference:="ques1.2"
    End If
End Sub

เพิ่มเติมนะครับ ถ้ากรณีจะสามารถ เป็น เซลล์ที่กำนดเอง เช่น ครั้งแรกกำหนดข้อมูลที่ a11 ครั้งที่สองกำหนดที่ b25 ครั้งที่สามกำหนดที่ g 18 นี่เราจะกำหนดอย่างไรครับ ขอบพระคุณครับ อาจารย์
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#29

Post by porkub1 »

จากคำถามเพิ่มเติมได้แล้วนะครับ อาจารย์ ลองจนได้แล้วครับ
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#30

Post by porkub1 »

อาจารย์ครับ สอบถาม ผมต้องการ clear data ในชีทชื่อ "แบบสอบถามที่3" ซึ่งต้องการให้ กดปุ่มยกเลิก จะเคลียร์ data ใน textbox1 แล้วให้ ปุ่ม check box ถ้าเลือก ใช่ กับ ไม่ ให้กลับมา กล่องที่ว่าง ครับ คือให้ กลับไปอยู่ที่ option button 11 เมื่อกดปุ่มยกเลิก พอทำได้มั้ยครับ

โค้ดครับ

Code: Select all

Private Sub CommandButton2_Click()

MsgBox ("กรุณากรอกขั้นตอนนี้ อีกครั้ง ขอบคุณ")
' clear the data
Me.TextBox1.Value = ""
End Sub

จากแบบสอบถาม อยากให้บันทึก ค่าเมื่อกรอก เช่น ใช่ =1 ไม่ =0
ลงในชีท "บันทึกข้อมูล" โดย ใช่ อยู่ใน e16 ไม่บันทึกใน i22

โค้ดครับ

Code: Select all

If TextBox1.Value = "" Then
        strvaluemsg = MsgBox("ทดสอบ", vbOKOnly + 64, "อ่าน")
    Else: strvaluemsg = MsgBox("ไปข้อ 1.2")
        With Worksheets("บันทึกข้อมูล")
            If .Range("a9") = "" Then
                .Range("a9") = TextBox1.Value
            Else
                .Range("b" & Rows.Count).End(xlUp).Offset(10, 0) = TextBox1.Value
             .Range("d" & Rows.Count).End(xlUp).Offset(3, 0) = TextBox1.Value
                .Range("c" & Rows.Count).End(xlUp).Offset(5, 0) = TextBox1.Value
        
End If
  
       
        Application.Goto reference:="ques1.2"
    End With
    End If
ขอบคุณ อาจารย์ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#31

Post by snasui »

:D ในไฟล์แนบ Code เขียนไว้ที่ไหน ช่วยแจ้งรายละเอียดด้วยเพื่อเข้าถึงปัญหาโดยไวครับ
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#32

Post by porkub1 »

ขอโทษครับอาจารย์
ปัญหาจะอยู่ในชีท แบบสอบถามข้อ3 ครับ ผมแนบไฟล์ผิด ขอโทษด้วยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#33

Post by snasui »

:D ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Private Sub CommandButton2_Click()
    MsgBox ("กรุณากรอกขั้นตอนนี้ อีกครั้ง ขอบคุณ")
    ' clear the data
    Me.TextBox1.Value = ""
    ActiveSheet.OptionButtons("Option Button 9").Value = False
    ActiveSheet.OptionButtons("Option Button 10").Value = False
End Sub
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#34

Post by porkub1 »

ได้แล้วครับ อาจารย์ ขอบคุณมากครับ

อาจารย์ครับ ทีนี้ ผมอยากบันทึกค่าในการติ๊ก option button โดยกำหนดให้

ถ้าติ๊ก Option Button 9= 1
Option Button 10 = 2
โดยบันทึกค่าที่กำหนดลงใน worksheet "บันทึกข้อมูล" ที่ a13 ครับ ไม่ทราบว่าจะเขียนโค้ดอย่างไรครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#35

Post by snasui »

:D ได้เขียนมาเองแล้วหรือไม่ ช่วยโพสต์หรือแจ้งมาด้วยว่าที่ปรับมาเองแล้วนั้นติดขัดตรงบรรทัดไหน หรือแสดงผลเป็นอย่างไร
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#36

Post by porkub1 »

ลองไปได้ประมาณนี้ิะครับ

Code: Select all

Private Sub CommandButton1_Click()
  If TextBox1.Value = "" Then
 strvaluemsg = MsgBox("กรุณา", vbOKOnly + 64, "กรุณาอ่าน")
Else: strvaluemsg = MsgBox("¢éÍÁÙŢͧ·èÒ¹ä´éºÑ¹·Ö¡áÅéÇ  ¡ÅѺ仢éÍ·Õè 1.1")
Worksheets("บันทึกข้อมูล").Range("c9") = OptionButtons("Option Button 9").Value
Worksheets("บันทึกข้อมูล").Range("c10") = OptionButtons("Option Button 10").Value
Application.Goto reference:="r20c2"
End If
End Sub
งงว่าค่าที่เลือกจะเป็น 1 แต่ค่าที่ไม่ได้เลือก เป็น -4146 ครับ รบกวนอาจารย์ชี้แนะด้วยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#37

Post by snasui »

:D จากคำถามนี้
porkub1 wrote:ผมอยากบันทึกค่าในการติ๊ก option button โดยกำหนดให้

ถ้าติ๊ก Option Button 9= 1
Option Button 10 = 2
โดยบันทึกค่าที่กำหนดลงใน worksheet "บันทึกข้อมูล" ที่ a13 ครับ ไม่ทราบว่าจะเขียนโค้ดอย่างไรครับ
ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

If OptionButtons("Option Button 9").Value = True Then
     Sheets("บันทึกข้อมูล").Range("a13") = 1
End If
If OptionButtons("Option Button 10").Value = True Then
     Sheets("บันทึกข้อมูล").Range("a13") = 2
End If
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#38

Post by porkub1 »

อาจารย์ครับ ลอง run ดู ตัวเลขไม่มีใน ชีทที่กำหนดเลยครับ รบกวนอาจารย์ชี้แนะด้วยครับ ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#39

Post by snasui »

:D แนบไฟล์พร้อม Code ที่ปรับปรุงล่าสุดมาดูกัน และให้ทำเช่นนี้เสมอ อย่าแจ้งมาเฉย ๆ เพราะไม่เห็นว่าได้นำไปใช้ตรงไหน ใช้ถูกต้องหรือไม่ครับ
porkub1
Member
Member
Posts: 34
Joined: Tue Feb 11, 2014 11:22 am

Re: ปัญหาการจัดคำแบบสอบถามใน excel

#40

Post by porkub1 »

Code: Select all

Private Sub CommandButton1_Click()
    If TextBox1.Value = "" Then
        strvaluemsg = MsgBox("อ่าน, vbOKOnly + 64, "อ่าน")
    Else: strvaluemsg = MsgBox("ไปข้อ 1.2")
      
End If
  If OptionButtons("Option Button 9").Value = True Then
     Sheets("บันทึกข้อมูล").Range("a13") = 1
End If
If OptionButtons("Option Button 10").Value = True Then
     Sheets("บันทึกข้อมูล").Range("a13") = 2
End If
       
        Application.Goto reference:="r18c3"
    
    
End Sub
run แล้วไม่มีตัวเลขเลยครับ ขอบคุณครับอาจารย์
Post Reply