: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

ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

#1

Post by piman »

สวัสดีครับ

ตอนรันโปรแกรมขึ้นมา ถ้าค่าใน textbox ของเลขที่ตำแหน่งเป็นค่าว่าง ให้ปุ่มบันทึกไม่สามารถทำงานได้ครับ

แต่พอรันโปรแกรมแล้ว ยังสามารถกดปุ่มบันทึกได้อยู่ครับ ด้านล่างคือ code ที่ผมเขียนไว้ในช่อง textbox รับค่าเลขที่ตำแหน่งครับ


ขอบคุณครับ

Code: Select all

 Private Sub txtNumber_Change()
If Me.EnableEvents = False Then Exit Sub
    If Me.txtNumber.Value = "" Then
        Me.cmdSave.Enabled = False
    Else
        Me.cmdSave.Enabled = True
End If
End Sub 
You do not have the required permissions to view the files attached to this post.
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

#2

Post by piman »

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

แต่ตอนรันโปรแกรมขึ้นมาเลย ปุ่มบันทึกกลับไม่ล็อกให้ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

#3

Post by snasui »

:D สรุปว่าเช็ค เลขที่ หรือ เลขที่ตำแหน่ง ที่เขียนมาคือเช็ค เลขที่ ครับ
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

#4

Post by piman »

เลขที่ตำแหน่งครับ txtNumber ชื่อของ textbox เลขที่ตำแหน่งครับ

วัตถุประสงค์เพื่อต้องการไม่ให้สามารถกดปุ่มบันทึกได้ครับ ถ้าหากยังกรอกข้อมูลที่กำหนดไว้ไม่ครบครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

#5

Post by snasui »

:D ตัวอย่าง Code ครับ

เมื่อเลือกรายการแล้วคลิกปุ่ม แก้ไข หาก TextBox เลขที่ตำแหน่งเป็นค่าว่างให้ปุ่ม ยันทึก ไม่ทำงาน

Code: Select all

Private Sub cmdEdit_Click()
    If selected_list = 0 Then
        MsgBox "กรุณาเลือกรายการที่ต้องการแก้ไข.", vbOKOnly + vbInformation, "แก้ไข"
        Exit Sub
    End If

    Me.txtRownumber.Value = Application.WorksheetFunction.Match(Me.lstData.List(Me.lstData.ListIndex, 0), ThisWorkbook.Sheets("Data").Range("A:A"), 0)
    'ข้อมูลส่วนตัว-------------
    Me.txtNumber.Value = Me.lstData.List(Me.lstData.ListIndex, 1)
    Me.txtNumberdep.Value = Me.lstData.List(Me.lstData.ListIndex, 2)
    If Me.txtNumberdep.Value = "" Then
        Me.cmdSave.Enabled = False
    Else
        Me.cmdSave.Enabled = True
    End If
'Other code
เมื่อแก้ไข TextBox เลขที่ตำแหน่งให้เป็นค่าว่างให้ปุ่ม บันทึก ไม่ทำงาน

Code: Select all

Private Sub txtNumberdep_Change()
    If Me.txtNumberdep.Value = "" Then
        Me.cmdSave.Enabled = False
    Else
       Me.cmdSave.Enabled = True
    End If
End Sub
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

#6

Post by piman »

ขอบคุณครับผม

ผมขอสอบถามข้อมูลเพิ่มเติมครับ ผมทำการ Protect Sheet ทุก Sheet ที่มี แล้วใส่ code ปลดล็อกแล้วครับ

**แต่จะมี Sheet Searchdata ที่ใส่ code ปลดล็อกยังไงก็ไม่สามารถรันโปรแกรมได้ครับ ถ้าไม่ได้ทำการ Protect Sheet Searchdate สามารถรันได้ตามปกติครับ**

password protect sheet = "password"

แนบไฟล์ล่าสุดมาให้แล้วครับ
You do not have the required permissions to view the files attached to this post.
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

#7

Post by piman »

แจ้งข้อมูลเพิ่มเติมครับ ลองกดปุ่มบันทึก ก็ขึ้น error เหมือนกันครับ
User avatar
logic
Gold
Gold
Posts: 1510
Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365

Re: ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

#8

Post by logic »

เท่าดที่ดู เขียนเป็น ActiveSheet.Unprotect "password" คือปลดล็อคเฉพาะชีตที่ Active อยู่เท่านั้น

หากจะทำงานกับชีตที่ล็อคก็ตามไปปลดที่นั่นด้วยครับ 🤢😀

ใส่เวอร์ชันของเอ็กเซลในข้อมูลส่วนตัวด้วยครับ ดูวิธีที่ใต้โพสต์ของอาจารย์ ส่วนผมจัดการเรียบร้อยแล้ว 😊
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

#9

Post by piman »

ถ้าระบุชื่อชีทไปเลย

Code: Select all

 Sheets("searchdata").Unprotext "password" 
ตัวอย่าง code แบบนี้ถูกต้องหรือไม่ครับ
User avatar
logic
Gold
Gold
Posts: 1510
Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365

Re: ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

#10

Post by logic »

แบบนั้นเลยครับ 👏
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

#11

Post by piman »

ขอบคุณมากครับ
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

#12

Post by piman »

สอบถามเพิ่มเติมครับ

กรณีที่ใช้ข้อมูลจาก 2 sheet ผมลองเขียน code

Code: Select all

 Sheets("Data").Unprotect "password
Sheets("Searchdata").Unprotect "password" 
แต่ยังขึ้น error ครับ

สามารถเขียนปลดล็อก 2 sheet ด้วย วิธีใดได้บ้างครับ

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

Re: ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

#13

Post by snasui »

:D ที่เขียนมาก็ใช้ได้แล้วครับ

การปลด Lock จะต้องปลดทุกชีตที่เกี่ยวข้องกับ Code นั้น ๆ ถ้า Code ได้เปลี่ยนค่าใน 10 ชีตก็ต้องปลด Lock ทั้ง 10 ชีตเสียก่อนครับ

ทางที่ดีให้ Loop ปลด Lock ทุกชีตเสียก่อน ทำงานเสร็จค่อย Loop เพื่อ Lock เอาไว้เหมือนเดิม จะได้ไม่ต้องมานั่งเลือกว่าจะปลดและป้องกันชีตใดครับ
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

#14

Post by piman »

ขอบคุณครับ ผมได้ตัวอย่าง code จากเพื่อนสมาชิกแล้วครับ

ทีนี้ผมลองรัน แล้วเจอ error 1 ตำแหน่งที่ code ด้านล่างครับ

Code: Select all

 Private Sub cmdDataemployee_Click()
Me.Hide
Userform1.Show
End Sub 
หลังจากรัน code จะแสดงหน้าของฟอร์ม frmmain มาก่อนครับ แล้วกดปุ่มข้อมูลพนักงาน เพื่อไปที่ฟอร์ม userform1 ครับ

จากนั้นขึ้น error ที่

Code: Select all

 Userform1.Show 
ครับ รบกวนด้วยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

#15

Post by snasui »

:D ในขั้นตอนการเปิด Form มีการ Call Procedure ที่ชื่อว่า reset และใน Procedure นี้มีการ Clear ข้อมูลในชีต Searchdata ซึ่งจะทำให้เกิด Error เพราะยังไม่ได้ปลด Lock ก่อนที่จะ Clear

การใช้ Code จำเป็นต้องฝึก Debug ให้เป็น อย่างง่าย ๆ คือคลิกเข้าไปในยังแถบที่ลูกศรสีเหลืองชี้ในภาพ จะเกิดสัญญลักษณ์สีเลือดหมูเพื่อกำหนดว่าเมื่อทำการ Run Code มาแล้วให้ Code มาหยุด ณ ตำแหน่งนี้ จากนั้นกดแป้น F8 เพื่อที่จะรันไปทีละ Step เมื่อถึงบรรทัดใดที่ Code ไม่ทำตามคำสั่งก็หมายความว่าบรรทัดนั้นก่อให้เกิดปัญหาครับ

เมื่อจะยกเลิกการหยุด Code ก็ให้คลิกซ้ำในตำแหน่งเดิมเพื่อให้สัญญลักษณ์สีเลือดหมูหายไปครับ
You do not have the required permissions to view the files attached to this post.
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

#16

Post by piman »

ขอบคุณมากครับผม สามารถรันได้แล้วครับ

เบื้องต้นผมใส่ Unprotect ทุกจุดที่มี Error เลยครับ
zxczxcvzxcvb
Member
Member
Posts: 3
Joined: Mon Aug 17, 2020 6:27 pm
Excel Ver: 2013

Re: ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

#17

Post by zxczxcvzxcvb »

สอบถามข้อมูลเพิ่มเติมครับ
ถ้าสมมุติเรากำหนดให้ใส่ข้อมูลใน Textbox1 ได้สามตัวแล้ว
อยากให้เคอร์เซอร์เลื่อนไปอยู่ TextBox2 เอง
จะใช้ Code ไหนครับ
User avatar
logic
Gold
Gold
Posts: 1510
Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365

Re: ถ้าค่าใน textbox ว่าง ให้ปุ่มบันทึกไม่สามารถใช้งานได้

#18

Post by logic »

zxczxcvzxcvb wrote: Tue Aug 18, 2020 11:46 am สอบถามข้อมูลเพิ่มเติมครับ
ถ้าสมมุติเรากำหนดให้ใส่ข้อมูลใน Textbox1 ได้สามตัวแล้ว
อยากให้เคอร์เซอร์เลื่อนไปอยู่ TextBox2 เอง
จะใช้ Code ไหนครับ
น่าจะเป็นการ SetFocus ครับ ~~> https://www.snasui.com/viewtopic.php?f= ... cus#p26130
Post Reply