:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#1

Post by yodpao.b »

ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ
1.JPG
2.JPG
คำถาม เมื่อใส่ Protect table จะไม่ทำงานถูกต้องแล้วใช่ไหมครับพอมีวิธีแก้ไขให้ table ทำงานได้ไหมครับ

เนื่องจากในตารางบางช่องเป็นสูตรจึงทำการล็อคเชลครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#2

Post by snasui »

:D แก้ด้วยทำงานด้วย Code ครับ ลักษณะจะเป็นตามด้านล่างครับ

ปลด Lock > บันทึกข้อมูล > Lock
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#3

Post by yodpao.b »

ขอบคุณครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#4

Post by yodpao.b »

พอคิดออกแล้วครับ
ขั้นแรก ล็อคก่อน

ขั้น 2 ปลดล็อค

Code: Select all

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then

            MsgBox "Finish adding"

    End If

End Sub
code ด้านบนหมายถึง เมื่อคลิกเชลใดในคอลัม B ให้ปลดล็อค


ขั้น 3 ล็อค

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then

            MsgBox "Finish sssssssssss adding"

    End If

End Sub
code ด้านบนหมายถึง เมื่อพิมพ์ข้อความแล้วจึงไปเลือกเซลอื่นๆ ให้ล็อค

คำถาม
ขอ เปลี่ยน code ในขั้นตอนที่ 3 เป็น เมื่อออกจากเซล B:B ให้ทำการล็อค
(หมายถึงไม่ต้องพิมพ์ก็สามารถ ล็อคได้)
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#5

Post by snasui »

:D ตัวอย่าง Code ครับ

Code: Select all

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
            'Protect
    Else
            'Unprotect
    End If
End Sub
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#6

Post by yodpao.b »

ผมลองใช้ตามอาจารย์
โดยใช้ msgbox แทนการใช้ protect

Code: Select all

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
            MsgBox "Finish adding"    ' protect
    Else
            MsgBox "Finish aaaaaaaaaaaaaaaaadding"      ' un protect
    End If
End Sub
ผลที่ได้ดังนี้
เมื่อคลิกเซลใดใดที่ไม่ใช่ช่อง B จะขึ้น MsgBox "Finish aaaaaaaaaaaaaaaaadding" ตัวนี้ตลอด
ยังไม่ถูกต้องนัก
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#7

Post by yodpao.b »

ผมลองใช้

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then

            MsgBox "Finish adding     1     'protect
            MsgBox "Finish adding     2     'Unprotect

    End If


End Sub
ได้ตามต้องการ
table ผล ออกมาให้ เป็นเส้นตาราง
เดียวขอลองดูก่อนครับว่ามีผลเสียข้างเคียงใดบ้าง
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#8

Post by snasui »

yodpao.b wrote: Tue Oct 22, 2019 7:44 pm ผลที่ได้ดังนี้
เมื่อคลิกเซลใดใดที่ไม่ใช่ช่อง B จะขึ้น MsgBox "Finish aaaaaaaaaaaaaaaaadding" ตัวนี้ตลอด
ยังไม่ถูกต้องนัก
:D ขึ้นอยู่ว่าต้องการให้แสดงผลลัพธ์เป็นแบบไหน อย่างไร Code สามารถเขียนให้สลับกันได้ในส่วนของ If...Then...Else ไม่ใช่ว่าจำเป็นต้องใช้ตรงไปตรงมาตามนั้น สามารถปรับเปลี่ยนเองได้ครับ

ถ้าต้องการผลลัพธ์แบบเจาะจงก็ควรตั้งคำถามให้เจาะจง อธิบายถึงสิ่งที่ต้องการและแนบไฟล์พร้อม Code ที่ติดปัญหามาด้วยครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#9

Post by yodpao.b »

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then

ActiveSheet.Unprotect

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowFiltering:=True, AllowUsingPivotTables:=True

End If


End Sub
โดคที่ผมเขียนใช้ไม่ได้ครับ ตารางไม่แสดงช่องเพิ่ม


ขั้นตอนที่ต้องการคามรูปครับ
0.JPG
1.JPG
2.JPG
You do not have the required permissions to view the files attached to this post.
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#10

Post by yodpao.b »

ไฟล์ครับ
You do not have the required permissions to view the files attached to this post.
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#11

Post by yodpao.b »

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
ActiveSheet.Unprotect
Else
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowFiltering:=True, AllowUsingPivotTables:=True

End If
End Sub
โตดอาจารย์ถูกต้องครับ
แต่เวลาคลิก ช่องอื่นมันจะ Protect ทุกครั้งเลย (มันทำให้เกิดปัญหาเวลาจะทำอะไรเพิ่มกับหน้านี้ไม่ได้เลยในเวลาที่เราปลด Protect เพื่อทำอพไรเพิ่มเติมที่ไม่เกียวกับในตาราง)
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#12

Post by snasui »

yodpao.b wrote: Tue Oct 22, 2019 8:52 pm โตดอาจารย์ถูกต้องครับ
แต่เวลาคลิก ช่องอื่นมันจะ Protect ทุกครั้งเลย (มันทำให้เกิดปัญหาเวลาจะทำอะไรเพิ่มกับหน้านี้ไม่ได้เลยในเวลาที่เราปลด Protect เพื่อทำอพไรเพิ่มเติมที่ไม่เกียวกับในตาราง)
ค่อยๆ ถามตอบกันไปและกรุณาวาง Code ให้เป็นข้อความ Code เสมอครับ

ขั้นตอนแรกซึ่งสำคัญอย่างยิ่ง ช่วยอธิบายว่าต้องการให้ปลดการป้องด้วยกันเหตุการณ์ใด และป้องกันกลับไปใหม่ด้วยเหตุการณ์ใดครับ

การกำหนดว่า คลิกคอลัมน์ใด ๆ แล้วปลดการป้องกัน พอคลิกคอลัมน์อื่น ๆ แล้วให้ป้องกัน ลักษณะ Code แบบนี้ย่อมทำงานใดไม่ได้ ดังนั้น จะต้องกำหนดเหตุการณ์ในการปลดการป้องกันและการป้องกันไม่ให้ขัดกับการทำงานครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#13

Post by yodpao.b »

ปลดการป้อง เหตุการณ์ เมื่อพิมพ ในช่อง ฺB:B
ใส่การป้องกัน เหตุการณ์ เมื่อพิมพแล้วเสร็จตารางจะเกิดขึ้น
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#14

Post by snasui »

:D ปกติก่อนพิมพ์จะมีการป้องกันเอาไว้ย่อมไม่สามารถพิมพ์ได้อยู่แล้ว ดังนั้นเหตุการณ์นี้ไม่ควรจะใช้กำหนดให้ปลดการป้องกันได้ครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#15

Post by yodpao.b »

ปลดได้ครับ เนื่องจากในช่อง ฺB:B ผมนำการป้องกันที่อยู่ในฟอรแมทเชลออก
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#16

Post by snasui »

:D กรณีกำหนดให้เซลล์นั้นมีการแก้ไขได้ หากกำหนดการปลดการป้องกันเมื่อพิมพ์ ไม่สามารถทำได้

ป้องกันเมื่อพิมพ์เสร็จสามารถทำได้ครับ

กรุณาทำความเข้าใจว่าพิมพ์กับพิมพ์เสร็จมันคือเหตุการณ์เดียวกัน ไม่ใช่แยกเป็น 2 เหตุการณ์ คือ พิมพ์เหตุการณ์หนึ่งและพิมพ์เสร็จเหตุการณ์หนึ่งแต่อย่างใดครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#17

Post by yodpao.b »

อาจารย์ครับ ถ้าอย่างนั้น เปลี่ยนเป็น
ปลดการป้อง เหตุการณ์ เมื่อพิมพ ในช่อง ฺB:B
ใส่การป้องกัน เหตุการณ์ เมื่อพิมพ ในช่อง ฺC:C

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
            ActiveSheet.Unprotect
'            MsgBox "Finish adding "   ' Unprotect
    End If
    
    If Not Application.Intersect(Target, Range("C:C")) Is Nothing Then
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
                , AllowFormattingCells:=True, AllowFormattingColumns:=True, _
                    AllowFormattingRows:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
'            MsgBox "Finish adding1111111111111111 "   ' Protect
    End If
ผมใช้ code นี้ protect ทำงานได้ตามต้องการ แต่ table ไม่ทำงานครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#18

Post by snasui »

:D กรุณาแนบไฟล์ตัวอย่างประกอบ จะได้ช่วยทดสอบให้ได้ครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#19

Post by yodpao.b »

แนบไฟล
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใช้ table คู่กับ Protect ทำงานบางอย่างไมได้ครับ

#20

Post by snasui »

:D ตัวอย่าง Code ครับ

Code: Select all

If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
    ActiveSheet.Unprotect
    Target.Value = Target.Value
End If
Post Reply