Page 1 of 1

การใส่ ProtectSheet ใน Excel VBA

Posted: Fri Jun 22, 2012 11:16 am
by วังวู ช่ง
เรียน ท่าน อาจารย์ ที่เคาลบครับ

บันหาในหัวข้อนี้ ผมต้องกานป้องกันข้อมูนโดยใช้ VBA ช่วยครับ ความต้องการคืว่า

๑. เมื่อ UnProtect Sheet ให้ถามรหัดลับครับ ชึ่งจำต้องป้อนรหัดเขาไปจึ่ง UnProtect ได้ แต่เมื่อปิดหน้างานให้จำรหัดนั้นเหมือนเดีมครับ ถ้าจะดัดปรับข้อมูนโดยไม่ได้ Run Macro จะทำไม่ได้ครับ

๒. เมื่อ UnProtect Sheet ไม่ให้ถามรหัดลับครับ แต่เมื่อปิดหน้างานให้จำรหัดนั้นเหมือนเดีมครับ ถ้าจะดัดปรับข้อมูนโดยไม่ได้ Run Macro จะทำไม่ได้ครับ

มีตัวอย่าง และ VBA ที่ผมส้างขื้นโดยกาน Record Macro มาพร้อมครับ

ขอบคุณท่าน อาจารย์ ล่วงหน้าครับ

Re: การใส่ ProtectSheet ใน Excel VBA

Posted: Fri Jun 22, 2012 4:52 pm
by snasui
:D ให้บันทึก Macro การป้องกัน Worksheet มาก่อน ใส่ Password ให้เรียบครับ จากนั้นบันทึก Macro การยกเลิกการป้องกันแล้วแนบไฟล์มาอีกครั้ง และแจ้ง Password ที่ใช้มาด้วยครับ

Re: การใส่ ProtectSheet ใน Excel VBA

Posted: Sat Jun 23, 2012 9:58 pm
by วังวู ช่ง
เรียน ท่าน อาจารย์ ที่เคาลบครับ โคดที่ได้จากการบันทึกเป็นอย่างนี้ครับ

Code: Select all

Sub ProtectSheet()
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowInsertingHyperlinks:=True
End Sub

Sub UnProtectSheet()
    ActiveSheet.Unprotect
End Sub

ไม่ถามรหัดเลียครับ แต่เวลาบันทึก ผมใส่รหัดครับ รหัดคื 59456999 ครับ

Re: การใส่ ProtectSheet ใน Excel VBA

Posted: Sun Jun 24, 2012 7:20 am
by snasui
:D ลองนำ Code ด้านล่างไปปรับใช้ดูครับ

Code: Select all

Sub ProtectSheet()
    ActiveSheet.Protect Password:="59456999"
End Sub

Sub UnProtectSheet()
    pswd = InputBox("Please enter your password.")
    If pswd = "59456999" Then
        ActiveSheet.Unprotect Password:="59456999"
        MsgBox "Great job."
    Else
        MsgBox "Incorect password"
    End If
End Sub