Page 2 of 3
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Thu Feb 13, 2014 4:48 pm
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
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Thu Feb 13, 2014 4:52 pm
by porkub1
แล้วอยากถามว่า ผมสามารถ แก้ไข วัตถุที่เป็น macros หรือที่มาจาก form controls ในวัตถุที่เป็น activex ได้ หรือไม่ครับ เพราะเวลาอ้างชื่อวัตถุที่เป็น macros มีเตือนขึ้นมา ขอบคุณครับ
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Thu Feb 13, 2014 5:56 pm
by snasui

ตัวอย่าง 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 เข้าไปกำกับได้ทั้งนั้นครับ
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Fri Feb 14, 2014 1:36 pm
by porkub1

ขอขอบพระคุณอาจารย์นะครับ ผมทำได้ในส่วนที่ผมติดปัญหาเกือบทั้งหมดแล้ว ทำให้ผมได้ความรู้เกี่ยว vba มากเลยครับ ถ้าบอร์ดนี้ มีอะไรให้ช่วยเหลือขอให้บอกผมมาได้เลยนะครับ
ขอให้อาจารย์ snasui มีความสุขความเจริญ นะครับ ขอบคุณจริงๆๆครับ
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Mon Feb 17, 2014 1:46 pm
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]
อันนี้ผมลองหาวิธีมาหลายวันแล้ว ยังหาไม่เจอ ยังไงรบกวนอาจารย์ด้วยนะครับ ขอบพระคุณครับ
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Mon Feb 17, 2014 6:58 pm
by snasui

ลองปรับ 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
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Tue Feb 18, 2014 8:42 am
by porkub1

ได้แล้วครับอาจารย์ ขอบพระคุณอาจารย์ มากครับ
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Tue Feb 18, 2014 11:39 am
by porkub1
snasui wrote:
ลองปรับ 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 นี่เราจะกำหนดอย่างไรครับ ขอบพระคุณครับ อาจารย์
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Tue Feb 18, 2014 12:01 pm
by porkub1
จากคำถามเพิ่มเติมได้แล้วนะครับ อาจารย์ ลองจนได้แล้วครับ
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Thu Feb 20, 2014 3:23 pm
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
ขอบคุณ อาจารย์ครับ
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Thu Feb 20, 2014 5:17 pm
by snasui

ในไฟล์แนบ Code เขียนไว้ที่ไหน ช่วยแจ้งรายละเอียดด้วยเพื่อเข้าถึงปัญหาโดยไวครับ
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Thu Feb 20, 2014 5:50 pm
by porkub1
ขอโทษครับอาจารย์
ปัญหาจะอยู่ในชีท แบบสอบถามข้อ3 ครับ ผมแนบไฟล์ผิด ขอโทษด้วยครับ
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Thu Feb 20, 2014 5:57 pm
by snasui

ลองปรับ 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
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Thu Feb 20, 2014 9:18 pm
by porkub1
ได้แล้วครับ อาจารย์ ขอบคุณมากครับ
อาจารย์ครับ ทีนี้ ผมอยากบันทึกค่าในการติ๊ก option button โดยกำหนดให้
ถ้าติ๊ก Option Button 9= 1
Option Button 10 = 2
โดยบันทึกค่าที่กำหนดลงใน worksheet "บันทึกข้อมูล" ที่ a13 ครับ ไม่ทราบว่าจะเขียนโค้ดอย่างไรครับ
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Thu Feb 20, 2014 9:52 pm
by snasui

ได้เขียนมาเองแล้วหรือไม่ ช่วยโพสต์หรือแจ้งมาด้วยว่าที่ปรับมาเองแล้วนั้นติดขัดตรงบรรทัดไหน หรือแสดงผลเป็นอย่างไร
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Thu Feb 20, 2014 10:23 pm
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 ครับ รบกวนอาจารย์ชี้แนะด้วยครับ
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Thu Feb 20, 2014 10:39 pm
by snasui

จากคำถามนี้
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
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Thu Feb 20, 2014 11:07 pm
by porkub1
อาจารย์ครับ ลอง run ดู ตัวเลขไม่มีใน ชีทที่กำหนดเลยครับ รบกวนอาจารย์ชี้แนะด้วยครับ ขอบคุณครับ
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Thu Feb 20, 2014 11:22 pm
by snasui

แนบไฟล์พร้อม Code ที่ปรับปรุงล่าสุดมาดูกัน และให้ทำเช่นนี้เสมอ อย่าแจ้งมาเฉย ๆ เพราะไม่เห็นว่าได้นำไปใช้ตรงไหน ใช้ถูกต้องหรือไม่ครับ
Re: ปัญหาการจัดคำแบบสอบถามใน excel
Posted: Thu Feb 20, 2014 11:30 pm
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 แล้วไม่มีตัวเลขเลยครับ ขอบคุณครับอาจารย์