Page 1 of 1

Protect Lock Sheet

Posted: Tue Aug 14, 2012 1:48 pm
by kit_nad
ผมต้องการที่จะ Protect sheet ไว้แต่พอเวลา save แล้วมันก็ขึ้น Error ตอน Save ทุกทีครับ
ลองทำตามกระทู้นี้แล้วแต่ก็ไม่ได้ผลครับ
viewtopic.php?f=3&t=404&p=4419&hilit=Protect
มันต้องมี code อะไรเพิ่มหรือเปล่า???

Re: Protect Lock Sheet

Posted: Tue Aug 14, 2012 2:08 pm
by ChoBkuN
ผมไม่เก่ง VBA นะครับ
เข้าใจว่า เวลา Protect Sheet จะทำให้เป็นลักษณะ Read Only ทำให้ Save ไม่ได้
คงต้องเขียน VBA ว่าเวลากดปุ่ม Save
ให้ Unprotect Sheet ก่อน
แล้ว Save
แล้ว Protect Sheet ใหม่แบบ อัตโนมัติ
ครับ

Re: Protect Lock Sheet

Posted: Tue Aug 14, 2012 3:54 pm
by kit_nad
เดี๋ยวผมแนบไฟล์ไปให้ใหม่นะครับ

Re: Protect Lock Sheet

Posted: Tue Aug 14, 2012 4:10 pm
by ChoBkuN
ผมลืมบอกว่า วิธีแก้ของผม คือใช้ มาโคร เพื่อมาช่วยสร้างคำสั่งให้
unprotect --> save --> protect นะครับ
ชื่อ มาโคร ว่า SaveButton

Re: Protect Lock Sheet

Posted: Tue Aug 14, 2012 4:13 pm
by kit_nad
ไป insert Button มาแล้วเขียน code vba เลอครับ

Re: Protect Lock Sheet

Posted: Tue Aug 14, 2012 4:32 pm
by snasui
:D การบันทึก Macro ไม่จำเป็นต้องสร้างปุ่มขึ้นมาก่อนครับ สร้างปุ่มทีหลังแล้วค่อย Assign Macro ให้กับปุ่มก็สามารถทำได้ครับ

Re: Protect Lock Sheet

Posted: Tue Aug 14, 2012 4:36 pm
by kit_nad
ครับอาจารย์ผมเขียน macro แล้ว
อันนี้เป็นคำสั่ง save ครับ

Public Sub SaveJig() '' Form
ActiveSheet.Unprotect Password:="1111"
If Range("C4") <> "" And Range("E4") <> "" And Range("C5") <> "" And Range("E5") <> "" Then
Sheets("temp").Range("A2:K2").Copy
Sheets("Database").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Sheets("Form").Range("C4:c8,E4:E8").SpecialCells(xlCellTypeConstants).ClearContents
MsgBox ("Save data complete")
Else
MsgBox ("Please input data before click save data" & vbCrLf & "·èÒ¹¡ÃÍ¡¢éÍÁÙÅäÁè¤Ãº")
End If
ActiveSheet.Protect Password:="1111"
End Sub

Re: Protect Lock Sheet

Posted: Tue Aug 14, 2012 4:45 pm
by snasui
:D ช่วยวาง Code ให้แสดงเป็น Code ตามกระทู้นี้ครับ viewtopic.php?f=3&t=1187

สำหรับ Code ที่เขียนมายังไม่มี Code สำหรับการ Save ไฟล์ ลองบันทึก Macro การ Save แล้วนำ Code มาใช้กับ Code เดิมหากยังไม่ได้ช่วยแนบ Code ที่ปรับปรุงแล้วมาอีกครั้งครับ

Re: Protect Lock Sheet

Posted: Wed Aug 15, 2012 8:23 am
by kit_nad

Code: Select all

Public Sub SaveJig() '' Form
ActiveSheet.Unprotect Password:="1111"
If Range("C4") <> "" And Range("E4") <> "" And Range("C5") <> "" And Range("E5") <> "" Then
Sheets("temp").Range("A2:K2").Copy
Sheets("Database").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Sheets("Form").Range("C4:c8,E4:E8").SpecialCells(xlCellTypeConstants).ClearContents
MsgBox ("Save data complete")
Else
MsgBox ("Please input data before click save data" & vbCrLf & "·èÒ¹¡ÃÍ¡¢éÍÁÙÅäÁè¤Ãº")
End If
ActiveSheet.Protect Password:="1111"
End Sub

Re: Protect Lock Sheet

Posted: Wed Aug 15, 2012 9:07 am
by snasui
:mrgreen:
snasui wrote:สำหรับ Code ที่เขียนมายังไม่มี Code สำหรับการ Save ไฟล์ ลองบันทึก Macro การ Save แล้วนำ Code มาใช้กับ Code เดิมหากยังไม่ได้ช่วยแนบ Code ที่ปรับปรุงแล้วมาอีกครั้งครับ

Re: Protect Lock Sheet

Posted: Wed Aug 15, 2012 9:13 am
by kit_nad
อาจารย์คับผมงงครับ
ช่วยพูดภาษาเถือนๆ ได้ไหมคับผมงงครับ

Re: Protect Lock Sheet

Posted: Wed Aug 15, 2012 9:23 am
by snasui
:D ผมเขียนไว้ชัดเจนแล้วครับ เนื่องจาก Code ที่แนบมา ไม่มีบรรทัดไหนที่เป็นการ Save ไฟล์ ลองบันทึก Macro สำหรับการ Save ไฟล์โดยเฉพาะ แล้วนำ Code นั้นมาปรับใช้กับ Code นี้ โดยนำมาไว้หลังบรรทัด

ActiveSheet.Protect Password:="1111"

ซึ่งผมเห็นว่า Code สำหรับการ Save นั้นไม่ได้ยาก สามารถใช้การบันทึก Macro ได้ และเมื่อเขียนการ Save แล้วยังติดขัดตรงไหน สามารถแนบไฟล์ที่เป็นปัญหาถามมาได้เรือย ๆ การใช้ภาษาในการถามตอบควรใช้ให้เหมาะสม จะเถื่อนไม่ได้ครับ

Re: Protect Lock Sheet

Posted: Wed Aug 15, 2012 11:34 am
by kit_nad
อาจารย์ครับผมลองดูหลายๆ กระทู้แล้วไม่เห็นมีใครใส่คำสั่ง save เลย
viewtopic.php?f=3&t=1590&p=11080&hilit=protect#p11080
ช่วยเกรินนิดๆ ได้ไหมครับ

Re: Protect Lock Sheet

Posted: Wed Aug 15, 2012 12:08 pm
by snasui
:D ผมตอบไว้ชัดแล้วครับ ไม่ได้ตอบแบบใบ้ ลองสรุปขั้นตอนการทำงานมาเป็นคำพูดดูอีกครั้งครับ และติดในขั้นตอนใด ตามที่ถามมานั้นเป็นคำถามเกียวกับการ Save และปัญหาคือ Save ไม่ได้

และเมื่อมีปัญหาเกี่ยวกับการ Save ผมก็ตอบเรื่อง Save ครับ การจะ Save ได้ก็ต้องมี Code สำหรับการ Save ก่อน แต่ที่เขียนมานั้นไม่มี Code สำหรับการ Save ครับ

Re: Protect Lock Sheet

Posted: Wed Aug 15, 2012 4:01 pm
by kit_nad
มันไม่มี code สำหรับการ save แต่ใช้คำสั่ง Copy แล้วค่อยไป Save ใน โปรแกรม Excel อีกทีไม่ได้เลอครับ

Re: Protect Lock Sheet

Posted: Wed Aug 15, 2012 4:26 pm
by snasui
:D ได้ครับ สรุปตอนนี้ปัญหาคืออะไรครับ :?:

Re: Protect Lock Sheet

Posted: Wed Aug 15, 2012 4:40 pm
by kit_nad
ปัญหาของผมคือ ผม lock sheet ไว้
พอ run คำสั่ง macro เสร็จแล้วมันขึ้น Error ว่า read only ครับ
ถ้าปลดล็อกจะสามารถ copy data ได้

Re: Protect Lock Sheet

Posted: Wed Aug 15, 2012 4:46 pm
by snasui
:D ขั้นตอนการทำงานจาก Code ที่แนบมาก็ถูกต้องแล้วครับ กรณีที่มีการ Protect ไว้จะต้องปลดการ Protect ก่อน จากนั้นปรับปรุงข้อมูลตามต้องการ และเมื่อเสร็จสิ้นการปรับปรุงให้ Protect เอาไว้ใหม่ครับ ที่สำคัญ การปลดการ Protect จะต้องมั่นใจว่าเป็นชีทที่เราต้องการทำงานด้วย ไม่เช่นนั้นก็ Error ครับ

Re: Protect Lock Sheet

Posted: Wed Aug 15, 2012 4:54 pm
by kit_nad
อาจารย์ครับผมใช้คำสั่ง Call Mudule เอานะครับจะได้ตัดไปหาไปเลยครับ
ตอนนี้ save ได้แล้วครับขอบคุณครับ