Page 1 of 1

ช่วยดู Code ป้องกันเซลหน่อยครับ

Posted: Mon May 23, 2011 7:16 am
by tigerwit
แนวคิดคือ การทำโปรแกรมพิมพ์แบบบันทึกผลการเรียนประจำรายวิชา (ปพ5)
ในหน้าแรกนี้ ป้องกันเซล D4 (กรอกชื่อโรงเรียน)ไว้ ไม่ให้ผู้ใช้เปลี่ยนชื่อโรงเรียนได้
หากต้องการใช้โปรแกรมนี้ต้องขอรหัสจากผู้พัฒนาโปรแกรม ไปปลดล็อคเซล

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

หลังจากผู้ใช้คลิกปุ่มปลดล็อค ใส่รหัสถูกต้อง และแก้ไขชื่อโรงเรียนแล้ว (ในเซล D4)
มันยังสามารถแก้ไข ชื่อโรงเรียนเป็นได้อีก

ที่ต้องการคือ
ผู้ใช้คลิก ปลดล็อค ใส่รหัสถูก เซล D4 สามารถแก้ไขได้
หลังผู้ใช้จากแก้ไข เซล D4 แล้ว ไม่ว่าจะ enter หรือ tab ให้โปรแกรมล็อค เซล D4 ไม่ให้แก้ไข

หมายเหตุ รหัสปลดล็อค สวัสดีครับ
แป้น keyboard ภาษาไทย

Re: ช่วยดู Code ป้องกันเซลหน่อยครับ

Posted: Mon May 23, 2011 12:54 pm
by snasui
:D ลองตามนี้ครับ

1. ที่ Sheet39 เพิ่ม Event ตามด้านล่าง

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$4" Then
    locksheet
 End If
End Sub
2. ที่ UnlockAll ปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Sub unlockAll()
Application.EnableEvents = False
On Error Resume Next
    Sheets("Main").Select
    ActiveSheet.Unprotect
    If Err <> 0 Then
        MsgBox "รหัสผ่านไม่ถูกต้อง โปรดติดต่อผู้พัฒนาโปรแกรม"
        Exit Sub
    End If
    Range("D4").Select
'    Selection.Locked = False
'    Selection.FormulaHidden = False
    ActiveSheet.Unprotect DrawingObjects:=False, Contents:=False, Scenarios:=False
        Range("D4").Select
    Selection.Interior.ColorIndex = xlNone
    Selection.Font.ColorIndex = 5
    Selection.Font.ColorIndex = 5
    ActiveCell.FormulaR1C1 = "กรอกชื่อโรงเรียนของท่านได้แล้ว"
'    Range("D4").Select
'    Call locksheet
    Application.EnableEvents = True
End Sub

Re: ช่วยดู Code ป้องกันเซลหน่อยครับ

Posted: Mon May 23, 2011 6:46 pm
by tigerwit
ขอบพระคุณอย่างสูงครับ