Page 1 of 1
รบกวนสอบถามอาจารย์ การไม่ให้แก้ไขค่าใน textboxค่ะ VBA
Posted: Sun Aug 07, 2011 11:30 pm
by panida
สวัสดีค่ะอาจารย์ ดิฉันติดปัญหาคือทำขอ้ที่ 2 และ 3 ไม่ได้ค่ะ
และแนบไฟล์พร้อมอธิบายรายละเอียดไว้แล้วค่ะ
1.ดิฉันสามารถนำค่า เลขที่ใบบิลมาใส่ใน cmbBill ได้แล้วค่ะ
เป็นการเลือก Bill1,Bill2,Bill3 ไปเรื่อยๆ
2.ดิฉันติดปัญหาตรงที่ว่า จากข้อ 1. พอเลือกรายการ เลขที่ใบบิลแล้ว ให้ชื่อ ผู้ออกเอกสาร ขึ้นมายังไงดีคะ
คือ เลือก bill1 แล้ว ให้ txtIssuer ให้ขึ้นชื่อผู้ออกเอกสาร , txtPrice ราคาสินต้า ตามมา
bill1 เจนจิรา 120
แอบคิดเล่นว่าจะใช้ VLookUpได้รึป่าว แต่นึกต่อไม่ออกแล้วค่ะ
3.หลังจากขึ้นมาแล้ว
ใน Optionbutton ติ๊กอยู่ที่ Original ตลอดโดยถ้าติ้ก Original แล้วไม่สามารถ ลบค่าใน txtIssuer, txtPrice
ถ้าเลือก Update ให้สามารถแก้ไขค่าใน txtIssuer, txtPrice ได้ค่ะ
4.หลังจากกด Update แล้วให้นำค่าใน txtIssuer, txtPrice ไปใส่ที่ตำแหน่งเดิม ข้อนี้ดิฉันทำได้แล้วค่ะ
รบกวนอาจารย์ช่วยชี้แนะข้อ 2,3 ทีค่ะ
กราบขอบพระคุณค่ะ
พนิดา
Re: รบกวนสอบถามอาจารย์ การไม่ให้แก้ไขค่าใน textboxค่ะ VBA
Posted: Mon Aug 08, 2011 12:00 am
by snasui

ผมเขียน Code รวบมาให้ทั้ง Issue และ Price ขึ้นอยู่กับ OptionButton1 และ OptionButton2 หากต้องการแยก ลองไปแยก Code ดูเองครับ
Code: Select all
Private Sub cmbBill_Change()
With Me
.txtIssuer = Application.VLookup(.cmbBill, Worksheets("Updata") _
.Range("B2:D1000"), 2, 0)
.txtPrice = Application.VLookup(.cmbBill, Worksheets("Updata") _
.Range("B2:D1000"), 3, 0)
.OptionButton1 = True
.txtIssuer.Enabled = False
.txtPrice.Enabled = False
End With
End Sub
Private Sub OptionButton1_Click()
With Me
.txtIssuer.Enabled = False
.txtPrice.Enabled = False
End With
End Sub
Private Sub OptionButton2_Click()
With Me
.txtIssuer.Enabled = True
.txtPrice.Enabled = True
End With
End Sub
ดูไฟล์แนบประกอบครับ
Re: รบกวนสอบถามอาจารย์ การไม่ให้แก้ไขค่าใน textboxค่ะ VBA
Posted: Mon Aug 08, 2011 12:38 am
by panida
กราบขอบพระคุณอาจารย์มากๆค่ะ
พนิดาค่ะ
Re: รบกวนสอบถามอาจารย์ การไม่ให้แก้ไขค่าใน textboxค่ะ VBA
Posted: Tue Aug 09, 2011 6:59 pm
by panida
สวัสดีค่ะอาจารย์
ขอบคุณอาจารย์ที่เมตตาช่วยเขียน code ค่ะอย่างชัดเจนค่ะ
คือดิฉันอยากสอบถามอาจารย์เพิ่มเติมอ่ะค่ะ
ขอคำชี้แนะค่ะอาจารย์
1.คือว่า จุดมันอยู่ที่ Original อันเดียวจะทำให้มันมี 2 อัน ได้มัยคะ
เพราะว่าดิฉันคงจะเอาไปเพิ่มเติมอีกค่ะ
(อันนี้มี 2 หัวข้อ จึงต้องการมี 2 จุด แล้วดิฉันจะเอาเพิ่มจาก 2 หัวข้อนี้อ่ะค่ะ)
2.จากข้อแรก พอมี 2จุดแล้ว
ถ้าเราจะแยกให้มันมันงานกันคนละหัวข้อเลยได้มั้ยคะ
เช่นอันนึงเลือก Original (ทำให้แก้ไขค่าไม่ได้)
อีกอันนึงเลือก Update(ทำให้สามารถแก้ไขได้)
ส่งไฟล์แนบให้แล้วค่ะไม่รู้มันจะขึ้นรึเปล่า
ขอบพระคุณอาจารย์มากๆค่ะ
พนิดา
Re: รบกวนสอบถามอาจารย์ การไม่ให้แก้ไขค่าใน textboxค่ะ VBA
Posted: Tue Aug 09, 2011 8:29 pm
by snasui

ลองต่อยอดจาก Code นี้มาด้วยตัวเองก่อน ติดปัญหาตรงไหนมาถามกันต่อครับ
Code: Select all
Private Sub OptionButton1_Click()
With Me
.txtIssuer.Enabled = False
.txtPrice.Enabled = False
End With
End Sub
Private Sub OptionButton2_Click()
With Me
.txtIssuer.Enabled = True
.txtPrice.Enabled = True
End With
End Sub
สังเกตว่าแต่ละ Sub กระทบกับ 2 Control ลองเพิ่มอีก 2 Sub จะได้เป็น 4 Sub และกำหนดให้แต่ละ Sub กระทบเพียง Control เดียวเท่านั้น
Re: รบกวนสอบถามอาจารย์ การไม่ให้แก้ไขค่าใน textboxค่ะ VBA
Posted: Tue Aug 09, 2011 9:00 pm
by panida
ขอบพระคุณอาจารย์มากๆค่ะที่ช่วยชี้แนะ
ดิฉันปรับแก้ไขตามคำแนะนำของอาจารย์แล้วค่ะ
และก็สามารถแก้ไขได้
มีบางอย่างที่ยังไม่ค่อยเข้าใจ จึงอยากขอคำอธิบายจากอาจารย์ค่ะ
1.คือ comมันไม่ยอมให้ใช้ชื่อ
OptionButton3ค่ะ ดิฉันก็เลยเปลี่ยนชื่อเป็น rad3แล้วถึงใช้ได้
แล้วทำไมอันอื่นไม่ต้องเปลี่ยนก็ใช้ได้คะ
2.คือ สามารถกดปุ่มเลือกได้แค่อันอันเดียวเองเหรอคะ
เช่น กดOptionButton1 ปุ่มoptiond ก็อยู่ที่OptionButton1
แต่พอOptionButton3 ปุ่มoptiond ก็อยู่ที่OptionButton3
อยากให้ปุ่มกลมๆติดอยู่ได้ 2 ที่คือ 1หรือ2 และ 3หรือ4 ได้มั้ยคะอาจารย์
ขอบพระคุณค่ะ
Code: Select all
Private Sub OptionButton1_Click()
With Me
.txtIssuer.Enabled = False
End With
End Sub
Private Sub OptionButton2_Click()
With Me
.txtIssuer.Enabled = True
End With
End Sub
Private Sub rad3_Click()
With Me
.txtPrice.Enabled = False
End With
End Sub
Private Sub OptionButton4_Click()
With Me
.txtPrice.Enabled = True
End With
End Sub
Re: รบกวนสอบถามอาจารย์ การไม่ให้แก้ไขค่าใน textboxค่ะ VBA
Posted: Tue Aug 09, 2011 9:16 pm
by snasui
panida wrote:
1.คือ comมันไม่ยอมให้ใช้ชื่อ
OptionButton3ค่ะ ดิฉันก็เลยเปลี่ยนชื่อเป็น rad3แล้วถึงใช้ได้
แล้วทำไมอันอื่นไม่ต้องเปลี่ยนก็ใช้ได้คะ
ปกติการเขียน Code ให้กับ Control ให้ดับเบิ้ลคลิกไปที่ Control นั้น โปรแกรมจะวิ่งไปยังพื้นที่ให้เขียน Code และไม่สับสนว่าเราสร้าง Control อะไรไว้บ้าง
panida wrote:2.คือ สามารถกดปุ่มเลือกได้แค่อันอันเดียวเองเหรอคะ
เช่น กดOptionButton1 ปุ่มoptiond ก็อยู่ที่OptionButton1
แต่พอOptionButton3 ปุ่มoptiond ก็อยู่ที่OptionButton3
อยากให้ปุ่มกลมๆติดอยู่ได้ 2 ที่คือ 1หรือ2 และ 3หรือ4 ได้มั้ยคะอาจารย์
ตัวอย่างคือที่ผมโพสต์ไว้แล้วครับ
snasui wrote:

ลองต่อยอดจาก Code นี้มาด้วยตัวเองก่อน ติดปัญหาตรงไหนมาถามกันต่อครับ
Code: Select all
Private Sub OptionButton1_Click()
With Me
.txtIssuer.Enabled = False
.txtPrice.Enabled = False
End With
End Sub
Private Sub OptionButton2_Click()
With Me
.txtIssuer.Enabled = True
.txtPrice.Enabled = True
End With
End Sub
สังเกตว่าแต่ละ Sub กระทบกับ 2 Control ลองเพิ่มอีก 2 Sub จะได้เป็น 4 Sub และกำหนดให้แต่ละ Sub กระทบเพียง Control เดียวเท่านั้น
Re: รบกวนสอบถามอาจารย์ การไม่ให้แก้ไขค่าใน textboxค่ะ VBA
Posted: Tue Aug 09, 2011 10:30 pm
by panida
สังเกตว่าแต่ละ Sub กระทบกับ 2 Control ลองเพิ่มอีก 2 Sub จะได้เป็น 4 Sub และกำหนดให้แต่ละ Sub กระทบเพียง Control เดียวเท่านั้น
ทำตามที่อาจารย์แนะนำแล้วค่ะ เพิ่มเป็น 4 sub แต่ละ sub กระทบ 1 control
แต่ว่าปุ่มกลมๆ มันก็ยังมีขึ้นแค่อันเดียวอ่ะค่ะเลยไม่รู้จะไปต่อยังไงดีค่ะ
มีคำสั่งอะไรนอกเหนือจากนี้มั้ยคะ
มีคำชี้แนะอื่นๆอีกมั้ยคะ
Re: รบกวนสอบถามอาจารย์ การไม่ให้แก้ไขค่าใน textboxค่ะ VBA
Posted: Tue Aug 09, 2011 10:35 pm
by snasui

ขออภัยที่ทำให้เข้าใจผิดไปได้ขนาดนั้น
ตัวอย่างที่ผมส่งให้ดูผมตั้งใจให้เห็นว่าการเขียน Code ให้กับ Control ใด ๆ แล้วกระทบกับหลาย Control นั้นเป็นอย่างไร ไม่นึกว่าจะพยายามไปอ่านเรื่องการให้กระทบกับ Control ใด Control หนึ่ง
ซึ่งไม่ใช่ประเด็นที่สนใจถาม หรือที่ผมพยายามจะสื่อ เพียงแต่ผม Copy ข้อความติดไปจากคำถามในความเห็นก่อนเท่านั้น ช่วยส่งไฟล์ที่ลองทำแล้วมาด้วยครับ จะได้ทำตัวอย่างมาให้ใหม่ก่อนที่จะสับสนกันไปใหญ่ครับ
Re: รบกวนสอบถามอาจารย์ การไม่ให้แก้ไขค่าใน textboxค่ะ VBA
Posted: Tue Aug 09, 2011 10:51 pm
by panida
อันที่เป็นอยู่ในปัจจุบันค่ะ
คือมีจุดวงกลมขึ้น แค่ 1 อันเท่านั้น
แต่ที่สนใจคืออยากได้แบบ 2 อันค่ะ
Re: รบกวนสอบถามอาจารย์ การไม่ให้แก้ไขค่าใน textboxค่ะ VBA
Posted: Tue Aug 09, 2011 11:01 pm
by snasui

ลองตาม Code ด้านล่าง ดูไฟล์แนบประกอบครับ
Code: Select all
Private Sub OptionButton1_Click()
With Me
.txtIssuer.Enabled = False
.txtPrice.Enabled = False
End With
End Sub
Private Sub OptionButton2_Click()
With Me
.txtIssuer.Enabled = True
.txtPrice.Enabled = True
End With
End Sub
Private Sub OptionButton3_Click()
With Me
.txtIssuer.Enabled = False
.txtPrice.Enabled = False
End With
End Sub
Private Sub OptionButton4_Click()
With Me
.txtIssuer.Enabled = True
.txtPrice.Enabled = True
End With
End Sub
Re: รบกวนสอบถามอาจารย์ การไม่ให้แก้ไขค่าใน textboxค่ะ VBA
Posted: Tue Aug 09, 2011 11:09 pm
by panida
ขอบพระคุณอาจารย์มากๆค่ะที่เมตตาช่วยเหลือ
พนิดาค่ะ
Re: รบกวนสอบถามอาจารย์ การไม่ให้แก้ไขค่าใน textboxค่ะ VBA
Posted: Tue Aug 09, 2011 11:24 pm
by snasui

ผมสังเกตในไฟล์แจ้งมาว่าต้องการให้ Option แสดงการเลือกทั้งคู่ ต้องใช้ Control
Frame เข้ามาช่วยในการทำเช่นนั้นเพื่อแบ่ง Option Button ออกเป็น 2 กลุ่ม จากนั้นกำหนดขอบ Frame ไม่ให้แสดง จากนั้นปรับ Code เป็นตามด้านล่าง
Code: Select all
Private Sub OptionButton1_Click()
With Me
.OptionButton3 = True
.txtIssuer.Enabled = False
.txtPrice.Enabled = False
End With
End Sub
Private Sub OptionButton2_Click()
With Me
.OptionButton4 = True
.txtIssuer.Enabled = True
.txtPrice.Enabled = True
End With
End Sub
Private Sub OptionButton3_Click()
With Me
.OptionButton1 = True
.txtIssuer.Enabled = False
.txtPrice.Enabled = False
End With
End Sub
Private Sub OptionButton4_Click()
With Me
.OptionButton2 = True
.txtIssuer.Enabled = True
.txtPrice.Enabled = True
End With
End Sub
ดูไฟล์แนบประกอบครับ
Re: รบกวนสอบถามอาจารย์ การไม่ให้แก้ไขค่าใน textboxค่ะ VBA
Posted: Wed Aug 10, 2011 12:30 am
by panida
กราบขอบพระคุณอาจารย์อีกครั้งหนึ่งค่ะที่สละวลามาช่วยชี้แนะคนความรู้น้อยอย่างดิฉัน
ดิฉันจะนำสิ่งที่อจารย์แนะนำไปต่อเติมลองเล่นดูค่ะ
ราตรีสวัสดิ์ค่ะ
พนิดาค่ะ