snasui.com ยินดีต้อนรับ ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
Private Sub CommandButton4_Click()
On Error Resume Next
Sheets("ฐานข้อมูลล่วงเวลา").Select
If CobBox01.Value = True Then
If MsgBox(" ท่านต้องการ ลบ ข้อมูลนี้ใช่หรือไม่ ? ", vbYesNo + vbQuestion, "ลบข้อมูล") = vbYes Then
Range("A7").Select
Do While True
If ActiveCell.Value = CobBox01.Text Then Call UnprotectSheets
ActiveCell.Offset(0, 0).EntireRow.Delete
Unload Me Call ProtectSheets
UserForm5.Show
Exit Sub
End If
ActiveCell.Offset(1, 0).Select
Loop
Else: End
End If
Else
MsgBox " ค้นหาข้อมูลก่อนจึงทำการลบได้", vbExclamation, "ลบข้อมูล"
End If
End Sub
จากตัวอย่างด้านบนที่ตัวอักษรสีแดง
จะเป็นการสั่ง ยกเลิกการ Protect แล้วจึงดำเนินการทำงาน หลังจากเสร็จขั้นตอนทำงานแล้วจึง Protect เพื่อไม่ให้แก้ไขได้
ที่มา
เนื่องจากผมได้ทำการ Protect ทุกหน้า เพื่อไม่ให้มีการแก้ไขในไฟล์ และต้องการให้ใช้ฟอร์มเพียงอย่างเดียว แต่เนื่องจากบางทีผู้ใช้งานที่ได้รับมอบหมาย
ต้องการเข้าไปเปลี่ยนแปลงบางอย่างในไฟล์จึงต้องการปลดลีอคทุกหน้า ผมจึงเขียนฟอรืมและโค้ดด้านล่างนี้ขึ้นมา เพื่อสั่งปลดล้อคทุกหน้า แต่เนื่องจากทำงานไปมันก็ล้อกเองอีก
เพราะคำสั่งที่เขียนมันสั่งหลังจากทำงานให้ล้อค จึงต้องปลดล็อคอีกครั้ง
Private Sub CommandButton1_Click()
Dim UserName, PassWord As String
UserName = TextBox1.Text
PassWord = TextBox2.Text
If UserName = "123" And PassWord = "456" Or UserName = "789" And PassWord = "000" Then
MsgBox " ÃËÑʼèÒ¹¶Ù¡µéͧ¤ÅÔê¡ OK à¾×èÍ·Ó§Ò¹µèÍ ", vbInformaticon
Unload Me Call UnProtectAll
'UserForm5!CommandButton5.Visible = False
Else
MsgBox " ÃËÑʼèÒ¹äÁè¶Ù¡µéͧ¤ÅÔê¡ OK à¾×èͻԴä¿Åì ", vbcriltcal
TextBox1.Text = ""
TextBox2.Text = ""
End If
End Sub