Page 1 of 1

การป้องกันเซล

Posted: Mon Feb 27, 2012 2:17 pm
by yodpao.b
"การป้องกันเซล"
ต้องการ
-ล็อคเซลทั้งหมด ที่เป็นพื้นที่สีชมพู
-ล็อคเซลทั้งหมด ที่เป็นพื้นที่ช่องสีขาว แต่สามารถคลิกได้และห้ามแก้ไข
รบกวนดูให้หน่อยละครับ
ผมลองใช้การป้องกันแล้วทำได้เฉพาะ ที่เป็นพื้นที่สีชมพู

Re: การป้องกันเซล

Posted: Mon Feb 27, 2012 2:56 pm
by snasui
:D การ Lock เซลล์ลองตามตาม Link นี้ http://www.snasui.com/viewtopic.php?p=691#p691

สำหรับการ Lock เซลล์แล้วให้คลิกเลือกได้แต่แก้ไขไม่ได้สามารถเลือกตามภาพด้านล่าง แต่เซลล์ที่ไม่ให้แก้ไขได้นั้นจะต้องทำการ Locked ไว้ก่อนครับ
SelectCellsFromLockCells.png

Re: การป้องกันเซล

Posted: Mon Feb 27, 2012 3:17 pm
by bank9597
:lol: ตามที่ผมเห็นคือ ผู้ถามต้องการล็อค 2 แบบในเวิร์คชีทเดียว คือ เซลล์สีชมพูต้องการล๊อคแบบไม่ให้คลิ๊กได้ ส่วนเซลล์สีขาวให้ล๊อคแบบธรรมดาคือ คลิ๊กเซลล์ได้แต่ไม่ให้แก้ไข

ซึ่งผมก็คิดว่ามันไม่น่าจะทำได้ในการล๊อคครั้งเดียว

Re: การป้องกันเซล

Posted: Mon Feb 27, 2012 3:50 pm
by snasui
bank9597 wrote: :lol: ตามที่ผมเห็นคือ ผู้ถามต้องการล็อค 2 แบบในเวิร์คชีทเดียว คือ เซลล์สีชมพูต้องการล๊อคแบบไม่ให้คลิ๊กได้ ส่วนเซลล์สีขาวให้ล๊อคแบบธรรมดาคือ คลิ๊กเซลล์ได้แต่ไม่ให้แก้ไข

ซึ่งผมก็คิดว่ามันไม่น่าจะทำได้ในการล๊อคครั้งเดียว
การทำเช่นนี้ต้องอาศัยเทคนิคเข้ามาช่วยครับ โดยมีแนวทางคือ
  1. ช่วงเซลล์ใด ๆ ที่ไม่ต้องการให้คลิกได้ให้ใช้ Object มาบังไว้เช่น Rectangle
  2. กำหนด Transparent (ความโปร่งแสง) ให้กับ Object เป็น 100%
  3. ในตอน Protect กำหนดให้คลิกเลือกได้ทั้ง Locked และ Unloced cells

Re: การป้องกันเซล

Posted: Mon Feb 27, 2012 4:01 pm
by yodpao.b
เข้าใจแล้วครับ
แต่ขอถามอีกหน่อยครับ
เราสามรถใช้การเขียนโคดเข้าช่วยได้ไหม
เช่น เซลนี้คลิกได้แต่ห้ามแก้ไข ส่วนเซลอื่นคลิกไม่ได้

Re: การป้องกันเซล

Posted: Mon Feb 27, 2012 5:54 pm
by snasui
:lol: หลังจากป้องกันแบบให้เลือกได้เฉพาะเซลล์ที่ไม่ได้ Locked สามารถเขียน Code เข้ามาช่วยเพื่อไม่ให้แก้ได้ครับ ยกตัวอย่างเช่น ไม่ให้แก้เซลล์ D7 สามารถเขียน Code เป็นตามด้านล่าง

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$D$7" Then
        Application.Undo
    End If
End Sub

Re: การป้องกันเซล

Posted: Tue Feb 28, 2012 2:06 pm
by yodpao.b
ขอบคุณครับ
(ผมว่าแล้วต้องมีทิป)

Re: การป้องกันเซล

Posted: Mon Mar 12, 2012 2:11 pm
by yodpao.b
เรียนอาจาร์ยครับผมได้ใช้แบบที่อาจาร์ยว่าไว้แล้ว ผลที่ได้ดังคำอธิบายด้านล่างครับ
มันยังไม่ตรงกับสิ่งที่ต้องการครับผม

"หลังจากป้องกันแบบให้เลือกได้เฉพาะเซลล์ที่ไม่ได้ Locked สามารถเขียน Code เข้ามาช่วยเพื่อไม่ให้แก้ได้ครับ ยกตัวอย่างเช่น ไม่ให้แก้เซลล์ D9 สามารถเขียน Code เป็นตามด้านล่าง"

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$9" Then
Application.Undo
End If
End Sub

จากตัวอย่างของอาจาร์ยวิธีการที่ผมทำดังนี้
1. เซลล์ D9 มาร์คการป้องกันออก
2. สั่งการป้องกันแผ่นงาน แบบ ให้เลือกได้เฉพาะเซลล์ที่ไม่ได้ Locked
3.เมื่อแก้ไขที่ เซลล์ D9 เรียบร้อยแล้ว

ผลที่ได้คือ มันจะแวป แวป สมุติว่า ค่าที่เซล D9 เท่ากับ 111 และแก้ไขเปลี่ยนเป็น 222
หลังจากแก้ไขแล้ว มันจะ แวป แวป เป็น 111 สลับกับ 222


ที่ต้องการคือ ที่เซล D9 แก้ไขไม่ได้ หรือ ห้ามพิมพ์ครับผมจะต้องมีค่า 111

Re: การป้องกันเซล

Posted: Mon Mar 12, 2012 2:20 pm
by snasui
:D กรณีไม่ให้พิมพ์จะต้อง locked ครับ และเมื่อ Locked แล้ว สามารถกำหนดให้คลิกลงในเซลล์ได้ หรือ คลิกลงในเซลล์ไม่ได้ อย่างใดอย่างหนึ่ง หากความต้องการคือ Locked ทั้งหมด แต่บางส่วนให้คลิกลงในเซลล์ได้บางส่วนเลือกไม่ได้เช่นนี้แล้ว ไม่มีความสามารถนี้ใน Version ปัจจุบันลงไปครับ คงต้องรอ Version ถัด ๆ ไปยกเว้นจะเขียนเองด้วย Macro อย่างที่ผมทำเป็นตัวอย่างไปให้ :mrgreen: :mrgreen: :lol:

Re: การป้องกันเซล

Posted: Mon Mar 12, 2012 3:11 pm
by yodpao.b
ผมได้แก้ไขไปแบบอื่นแล้วครับ ขอบคุณมากครับ