: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
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

การล๊อคชีท

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การล๊อคชีท

#21

Post by snasui »

:D ตัวอย่าง Code และไฟล์สำหรับการซ่อน Worksheet ตามด้านล่างครับ ซึ่งจะซ่อนชีท Temp และ Datastore เอาไว้ เหลือเฉพาะชีท Form

Code: Select all

Sub SaveToDatastore()
    ActiveSheet.Unprotect Password:="240130" '<==UnProtect
    Sheets("DataStore").Unprotect Password:="240130" '<==UnProtect
    If Range("A4") <> "" Then
        Sheets("Temp").Range("A2:G11") _
            .Resize(Sheets("Temp").Range("H1"), 7).Copy
        Sheets("DataStore").Range("A" & Rows.Count) _
            .End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
        Sheets("Form").Range("B4:D13,C1,C2") _
            .SpecialCells(xlCellTypeConstants).ClearContents
        MsgBox ("บันทึกข้อมูบเรียบร้อยแล้ว")
    Else
        MsgBox ("คุณยังไม่เลือกสินค้า")
        Range("A17").Activate
    End If
    Sheets("DataStore").Protect Password:="240130" '<==Protect
    ActiveSheet.Protect Password:="240130" '<==Protect
End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การล๊อคชีท

#22

Post by bank9597 »

:D ขอบคุณครับ

อีกนิดครับ โค๊ดที่อาจารย์ให้มานี้ ถูกต้องตามหลักการแล้วใช่ไหมครับ คือว่ามันจะไม่เกิดข้อผิดพลาดภายหลังดังที่อาจารย์เคยกล่าวไว้
ถ้ายังไงแล้ว ผมจะเอาไปปรับรูปแบบใหม่ให้ถูกต้องตามหลักครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การล๊อคชีท

#23

Post by snasui »

:D โดยหลักแล้วการทำงานกับไฟล์กับชีทที่ป้องกันไว้ในลักษณะนี้นั้น จะใช้วิธีการเช่นที่ผมทำมาเป็นตัวอย่าง ซึ่ง Code นี้ทำงานได้อย่างถูกต้องแล้ว ส่วนจะเกิดข้อผิดพลาดจากนี้ต่อไปหรือไม่อยู่ที่การนำไปประยุกต์ใช้ครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การล๊อคชีท

#24

Post by bank9597 »

:D ครับอาจารย์

ผมจะลองนำโค๊ดไปปรับใช้อีกครับ เพราะว่ายังมีขั้นตอนของการดึงข้อมูลจาก DataStore มา แก้ไข,ลบ,เพิ่ม ซึ่งชีท DataStore ได้ถูกซ่อนและป้องกันไว้
ผมคิดว่าน่าจะทำได้ แต่หากมีปัญหาอะไร ก็คงต้องรบกวนอาจารย์อีกครับ :D
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การล๊อคชีท

#25

Post by bank9597 »

:D สวัสดีครับอาจารย์ ผมมีเรื่องรบกวนครับ
ยังอยู่ในเรื่องเดิมครับ เรื่องของการซ่อนแผ่นงานครับ
ผมอยากถามว่า ในกรณีที่ผมซ่อนแผ่นไว้ และใส่พาสเวิร์ดป้องกันการยกเลิกการซ่อนไว้ด้วย ถ้าผมอยากให้ชีทที่ผมซ่อนไว้ออกมาแสดง และเมื่อแสดงเส็จก็ให้กลับไปซ่อนเหมือนเดิม ไม่ทราบว่าเราจะทำได้ไหมครับ
สมมุติว่าชีท Report ผมซ่อนไว้ พร้อมรหัสป้องกัน ปกติผมจะเขียนโค๊ดเลือกสมุดงานดังนี้

Code: Select all



Sub Report()
Sheets ("Report").Select
End Sub


หากชีทถูกซ่อนไว้ ไม่ทราบว่าเราจะใช้วิธีการไหนครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การล๊อคชีท

#26

Post by snasui »

:D สามารถยกเลิกการซ่อนชีท Report ด้วย Code ด้านล่างครับ

Code: Select all

Sheets("Report").Visible = True
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การล๊อคชีท

#27

Post by bank9597 »

:D ขอบคุณครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การล๊อคชีท

#28

Post by bank9597 »

:twisted: อาจารย์ครับ จากการตั้งกระทู้นี้ ทำให้ผมคิดอะไรออกอย่างนึง ซึ่งอยากให้อาจารย์ช่วยเหลือและให้คำแนะนำครับ
ผมมีไฟล์งานทดสอบแนบมาให้ ชื่อไฟล์ Form
ในไฟล์นี้จะมีทั้งหมด 4 ชีท คือ Home,Data,Product และ Supplier
ชีท Supplier จะถูกซ่อนไว้ครับ
ในชีท Home ผมมีปุ่ม Supplier ไว้ยกเลิกการซ่อนและแสดงชีท Supplier เมื่อกดปุ่มแล้วมันจะนำเราไปที่ชีท Supplier
ภายใน Supplier นั้น จะมีปุ่มปิดชีทและซ่อนชีท Supplier ไว้ตามเดิมครับครับ

สิ่งผมอยากทำคือ เวลาเราเปิดชีท Supplier โดยการกดปุ่มสั่งงานมาจากชีท Home และในเวลาที่ชีท Supplier กำลังแสดงอยู่นั้น ชีทต่างๆที่เหลือ(Home,Data,Product)จะต้องถูกล๊อคไว้ ไม่ให้สามารถใช้งานได้

เว้นแต่ว่าเราจะกดปุ่มปิดการทำงานในชีท Supplier ก่อนเท่านั้น โดยปุ่มปิดและซ่อนชีทตัวนี้ จะมีคำสั่งซ่อนชีท และนำเราให้กลับไปยังชีทต้นทางด้วย

:D ไม่รู้อาจารย์จะพอเข้าใจไหมน่ะครับ ผมได้ทำมาให้อาจารย์ดูบ้างแล้ว แต่ติดต้องการล๊อคชีทอื่นๆครับ อิอิ ผมคิดว่าถ้าเราทำวิธีการนี้ได้ เราน่าจะประหยัดเวลาขึ้นเยอะเลยครับ

รบกวนด้วยน่ะครับ
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การล๊อคชีท

#29

Post by snasui »

:D ลองเขียน Code มาแล้วยังครับ Code อยู่ที่ Module ไหน ชื่อ Procedure ใดครับ

การใช้ Icon แสดงอารมณ์ดูความเหมาะสมด้วยนะครับ Icon แยกเขี้ยว :twisted: แบบนี้นั้นผมใช้เตือนสมาชิก หากสมาชิกมาเตือนผมโดยไม่มีสาเหตุอาจจะถูก Ban นะครับ :evil:
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การล๊อคชีท

#30

Post by bank9597 »

:D ขอโทษครับอาจารย์ ในความเข้าใจของผม ผมคิดว่าเป็นการทำหน้าทะเล้นอ่ะครับ ไม่รู้ว่าเค้าใช้ในกรณีไหนกัน ตรงนี้ผมต้องขอโทษด้วยน่ะครับ ผมไม่รู้จริงๆ :D

ผมเขียนโค๊ดไปให้แล้ว ในส่วนของการซ่อนและแสดงชีทครับ ซึ่งอยู่ในโมดูลที่ 2 ชื่อ OpenSub และ CloseSub ครับ ส่วนโค๊ดที่ใช้ล๊อคชีทนั้น ยังไม่สามารถทำได้เลยครับ :roll:

รบกวนให้คำแนะนำด้วยครับ :D
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การล๊อคชีท

#31

Post by snasui »

:D ผมเขียน Code ตัวอย่างการซ่อนชีทอื่น ๆ เมื่อชีท Supplier ถูก Activate ขึ้นมา เป็นการใช้ Event ของ Worksheet_Activate มาให้ตามด้านล่าง
หากต้องการยกเลิกการซ่อนชีทอื่นและทำการซ่อนชีท Supplier ไว้ใหม่ให้ลองใช้ Event Worksheet_Deactivate ลองปรับมาดูก่อนครับ

Code: Select all

Private Sub Worksheet_Activate()
    Dim wsh As Worksheet
    For Each whs In Worksheets
        If whs.Name <> "Supplier" Then
            whs.Visible = False
        End If
    Next
End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การล๊อคชีท

#32

Post by bank9597 »

:D ผมลองปรับแล้วครับ รู้สึกว่าใช้ได้ดีเลยทีเดียวครับ
ตามโค๊ดด้านล่างครับ

Code: Select all

Sub CloseSup0()
Dim wsh As Worksheet
For Each wsh In Worksheets
        If wsh.Name <> "Supplier" Then
            wsh.Visible = True
        End If
    Next
    
Sheets("Home").Select
If Sheets("Home").Select Then
Sheets("Supplier").Visible = False
End If
End Sub
ขอบคุณครับ :D
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การล๊อคชีท

#33

Post by bank9597 »

:) ในกรณีที่ชีทถูกซ่อนมีรหัสกำกับไว้ เราจะสามารถใช้วิธปลดล๊อควิธีแบบเดิมได้ไหมครับ คือใช้โค๊ด :ard:

Code: Select all

ActiveSheet.Unprotect Password:="1234"

และปลคล๊อคด้วย

Code: Select all

ActiveSheet.Protect Password:="1234"
ยังไงผมจะลองทำดูก่อนครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การล๊อคชีท

#34

Post by bank9597 »

:D รายผลครับ ผมลองใช้แล้ว มันเป็นการป้องกันแผ่นงานครับ

แสดงว่าต้องหาวิธีใหม่ :|
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
Piyawan_kibke2523
Member
Member
Posts: 10
Joined: Thu Aug 29, 2013 8:01 am

Re: การล๊อคชีท

#35

Post by Piyawan_kibke2523 »

สวัสดีค่ะคุณ bank9597 ดิฉันอยากรบกวนสอบถามคุณได้หรือเปล่าค่ะ ไม่รู้จะติดต่อยังไงอยากให้ตอบคำถามดิฉันหน่อยนะค่ะ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การล๊อคชีท

#36

Post by bank9597 »

Piyawan_kibke2523 wrote:สวัสดีค่ะคุณ bank9597 ดิฉันอยากรบกวนสอบถามคุณได้หรือเปล่าค่ะ ไม่รู้จะติดต่อยังไงอยากให้ตอบคำถามดิฉันหน่อยนะค่ะ
:D หากเป็นคำถามเกี่ยวกับสูตรเอ็กซ์เซลล์สามารถตั้งคำถามในฟอรั่มได้เลยครับ

หากเป็นคำถาม vba ต้องให้ท่านอื่นช่วยดูด้วยครับ เพราะผมไม่ค่อยถนัดครับ

หากติดต่อทางอื่น สามารถสอบถามเรื่องปลีกย่อยการใช้งานโปรแกรมได้ทางอีเมลล์ bank9597@gmail.com ครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
Post Reply