Page 1 of 1
Lock workbook, lock and Protect sheet from viewing
Posted: Wed Apr 04, 2012 12:03 pm
by maya
ขอรบกวนหน่อยนะคะ คือ
ถ้าสร้าง work book ขึ้นมา ซึ่งจะประกอบไปด้วยหลาย sheets อยู่แล้ว ต้องการ protect และ lock แค่บาง sheets ซึ่งต้องการให้ protect โดยให้ไม่สามารถเห็นcontent ในsheet หรือไม่สามารถเปิด sheet ได้ หากไม่กรอกรหัสก่อน(โดยปกติทราบว่า สามารถแค่ป้องกันการแก้ไข) แล้ว lock work book เพิ่มอีกชั้นโดยการใส่รหัสก่อนเปิด
ทั้งหมดนี่สามารถทำในexcel ได้ไหมคะ
Re: Lock workbook, lock and Protect sheet from viewing
Posted: Wed Apr 04, 2012 12:27 pm
by snasui
เราสามารถซ่อนชีทไว้ได้ครับ กรณีใช้ Excel 2003 เลือกชีทที่ต้องการซ่อน ข้าเมนู Format > Sheet > Hide
กรณีใช้ Excel 2007 ขึ้นไปคลิกขวาที่แถบชีท > Hide
จากนั้นทำการป้องกัน Workbook ไว้ครับ
Re: Lock workbook, lock and Protect sheet from viewing
Posted: Wed Apr 04, 2012 1:09 pm
by maya
ได้แค่ซ่อนชีทหรอคะ แบบนี้หากลืมซ่อนในครั้งต่อไป ก็อาจจะไม่ปลอดภัย พอดีต้องการ security ให้กับชีทน่ะคะ เพราะสมมติ คนในแผนกเดียวกัน แต่บางชีทบางคนก็ไม่จำเป็นต้องทราบน่ะคะ มีวิธีอื่นไหมคะ ขอบคุณค่ะ
Re: Lock workbook, lock and Protect sheet from viewing
Posted: Wed Apr 04, 2012 1:20 pm
by songsug
ถ้าแบบนั้นใช้การกำหนดสิทธ์เป็น User เครื่องได้ไหมครับ ใช้ Application.username ก็ได้
โดยใช้ VBA ตอนเปิดไฟล์ขึ้นมา Check user ตามเงื่อนไข อาจใช้ IF เข้ามาช่วยเช่น
IF application.username = "IT18" Then
Sheetที่กำหนดสิทธ์1.Visible = True
Sheetที่กำหนดสิทธ์2.Visible = True
Sheetที่กำหนดสิทธ์3.Visible = True
else
Sheetที่กำหนดสิทธ์1.Visible = false
Sheetที่กำหนดสิทธ์2.Visible = false
Sheetที่กำหนดสิทธ์3.Visible = false
end if
ปล แต่ถ้า User มีหลายเครื่องและหลายสิทธิ์มาก แนะนำให้สร้างตารางกำหนดสิทธ์บน Excel แล้วตรวจสอบ User ที่เข้ามาใช้งานล้วใช้ For วนซ่อน Sheet ก็ได้ครับ
Re: Lock workbook, lock and Protect sheet from viewing
Posted: Wed Apr 04, 2012 1:25 pm
by snasui
การป้องกันตามลักษณะที่ถามมีวิธีเยอะแยะครับ
หากไม่ต้องการให้บางคนเห็นข้อมูลใด ๆ สามารถใช้การ Login เข้ามาช่วย เพื่อจำกัดสิทธิ์บางอย่าง เช่นถ้าเป็น Admin จะเห็นทั้งหมด ถ้าเป็น User ก็จะเห็นแค่ 3 หน้า จาก 100 หน้า หรือเห็นชีททั้งหมดแต่ไม่เห็น Contents เช่นนี้เป็นต้น และสามารถทำได้อีกมาก แต่การทำเช่นนั้นคงต้องใช้ VBA เข้ามาช่วยเช่นที่คุณ songsug ยกตัวอย่างมา
และการซ่อนที่ผมแนะนำไปก็สามารถที่จะยกเลิกการซ่อนเมื่อทำการปิดไฟล์แล้วค่อยซ่อนใหม่เมื่อเปิดไฟล์และเช็คสิทธิ์ของผู้ใช้แล้วว่าไม่มีสิทธิ์ดูชีทนั้น ๆ นอกจากนี้ยังสามารถที่จะกำหนดให้ใช้งานโดยกำหนดรหัสเป็นพื้นที่ได้ ฯลฯ
ไม่ทราบว่าต้องการใช้แบบไหนลองออกแบบมา และหากต้องใช้ VBA จำเป็นต้องเขียนมาก่อนเสมอครับ
Re: Lock workbook, lock and Protect sheet from viewing
Posted: Thu Apr 05, 2012 5:04 pm
by maya
ช่วยแก้ไขด้วยนะคะ แก้แล้วไม่ผ่านค่ะ
Code: Select all
Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ws As Worksheet
Dim C As Range
For Each ws In Sheets
If ws.Name <> "customer" Then ws.Visible = xlSheetVeryHidden
ElseIf ws.Name <> "ownerroom" Then ws.Visible = xlSheetVeryHidden
ElseIf ws.Name <> "room" Then ws.Visible = xlSheetVeryHidden
ElseIf ws.Name <> "payment" Then ws.Visible = xlSheetVeryHidden
ElseIf ws.Name <> "infrastructuremonthly" Then ws.Visible = xlSheetVeryHidden
Next ws
End If
End Sub
Private Sub Workbook_Open()
Dim user As String
Dim pwd As String
Dim ct As Integer
Dim LR As Long
Dim C As Range
LR = Sheets("Login").Cells(Rows.Count, "A").End(xlUp).Row
user = InputBox("Enter your UserName")
Set C = Worksheets("Login").Range("$A1:$A" & LR).Find(user, LookIn:=xlValues)
If C Is Nothing Then
MsgBox "Unauthorized to proceed"
Me.Close
End If
ct = 2
retry:
pwd = InputBox("Enter Password")
If pwd <> Sheets("Login").Cells(C.Row, 2) Then
If ct = 0 Then
MsgBox "Out of tries"
Me.Close
End If
MsgBox "Wrong Password." & Chr(10) & "You have " & ct & " tries left"
ct = ct - 1
GoTo retry
End If
Dim ws As Worksheet
For Each ws In Sheets
If ws.Name <> "customer" Then ws.Visible = xlSheetVeryHidden
ElseIf ws.Name <> "ownerroom" Then ws.Visible = xlSheetVeryHidden
ElseIf ws.Name <> "room" Then ws.Visible = xlSheetVeryHidden
ElseIf ws.Name <> "payment" Then ws.Visible = xlSheetVeryHidden
ElseIf ws.Name <> "infrastructuremonthly" Then ws.Visible = xlSheetVeryHidden
Next ws
End If
End Sub
Re: Lock workbook, lock and Protect sheet from viewing
Posted: Thu Apr 05, 2012 5:44 pm
by snasui
แนบไฟล์ตัวอย่างมาด้วยครับ เพื่อน ๆ จะได้ช่วยทดสอบได้ครับ
Re: Lock workbook, lock and Protect sheet from viewing
Posted: Mon Nov 10, 2014 11:22 am
by chacriya
หากต้องการใส่password ในการเปิดแต่ละsheet สามารถทำได้หรือไม่คะ หากสามารถทำได้รบกวนขอวิธิการเขียนแต่ละขั้นดอน
ขอบคุณมากค่ะ
Re: Lock workbook, lock and Protect sheet from viewing
Posted: Mon Nov 10, 2014 2:57 pm
by snasui
คำว่าใส่ Password ในการเปิดแต่ละ Sheet ช่วยอธิบายขั้นตอนการป้องกันมาด้วยว่าต้องการให้เป็นลักษณะใด โดยลำดับมาทีละขั้นครับ
หมายถึงเมื่อ Click ที่แถบชีทแล้วให้แสดงกล่องโต้ตอบให้ใส่ Password ใช่หรือไม่ หากใช่ จะต้องใช้ VBA ซึ่งต้องเขียนมาก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบนครับ