Page 1 of 1

ต้องการให้ใส่ password ก่อนดูบาง sheet

Posted: Wed Dec 04, 2019 8:00 pm
by ryderman11
คือในเวิร์คบุ๊กนี้ มีหลายชีต แต่มีชีตหนึ่งที่ให้ staff.1 เป็นคนคีย์ข้อมูลในช่องที่กำหนด ซึ่งข้อมูลเหล่านี้จะถูกสำเนาไปตามชีตต่างๆที่ในเวิร์คบุ๊กนี้ และ staff.2.3.4 จะเข้ามาใช้และเพิ่มเติมข้อมูลในส่วนของตนเองและพิมพ์ออกมา
ที่เป็นกังวลคือข้อมูลใน ชีต staff.1 ที่เป็นส่วนสำคัญที่สุด อาจถูกแก้ไขได้

ชีต staff.1 / Protect sheet และ Locked cell ไว้บางส่วน และให้อนุญาตให้คีย์ข้อมูลใน cell ที่กำหนดเท่านั้น

คำถามคือว่าถ้าต้องการ ให้ทุกครั้งที่เปิดไฟล์ และคลิกดูชีตStaff.1 ต้องใส่ passworld มีวิธีที่ไม่ต้องใช่ VB หรือเปล่าครับ (เคยลองทำ Hide แล้ว รู้สึกเสียเวลามากขึ้น)


ปล.ไม่มีพี้นฐาน VB

ขอบคุณครับ

Re: ต้องการให้ใส่ password ก่อนดูบาง sheet

Posted: Wed Dec 04, 2019 8:33 pm
by snasui
ryderman11 wrote: Wed Dec 04, 2019 8:00 pm คำถามคือว่าถ้าต้องการ ให้ทุกครั้งที่เปิดไฟล์ และคลิกดูชีตStaff.1 ต้องใส่ passworld มีวิธีที่ไม่ต้องใช่ VB หรือเปล่าครับ
:D จากคำถามนี้ คำตอบคือไม่มีวิธีอื่นครับ

การคลิกเลือกชีตนั้นแล้วให้ใส่ Password จะเป็นความสามารถทางด้าน Programming ครับ

Re: ต้องการให้ใส่ password ก่อนดูบาง sheet

Posted: Thu Dec 05, 2019 8:40 pm
by ryderman11
snasui wrote: Wed Dec 04, 2019 8:33 pm
ryderman11 wrote: Wed Dec 04, 2019 8:00 pm คำถามคือว่าถ้าต้องการ ให้ทุกครั้งที่เปิดไฟล์ และคลิกดูชีตStaff.1 ต้องใส่ passworld มีวิธีที่ไม่ต้องใช่ VB หรือเปล่าครับ
:D จากคำถามนี้ คำตอบคือไม่มีวิธีอื่นครับ

การคลิกเลือกชีตนั้นแล้วให้ใส่ Password จะเป็นความสามารถทางด้าน Programming ครับ
พอมีตัวอย่างมั้ยครับอาจารย์ สำหรับวิธีทำผ่าน VB จะขอนำไปประยุกค์ใช้

ขอบคุณสำหรับคำตอบและคำแนะนำครับ

Re: ต้องการให้ใส่ password ก่อนดูบาง sheet

Posted: Thu Dec 05, 2019 9:07 pm
by snasui
:D ตัวอย่างครับ :arrow: Worksheet_Activate

Re: ต้องการให้ใส่ password ก่อนดูบาง sheet

Posted: Fri Dec 06, 2019 2:46 pm
by ryderman11
snasui wrote: Thu Dec 05, 2019 9:07 pm :D ตัวอย่างครับ :arrow: Worksheet_Activate
เรียนอาจารย์ครับ ได้ลองประยุกค์ใช้ code แล้ว แต่มีปํญหาตรงที่ ถ้าค้างไว้ที่ชีตที่ให้ใส่ pass แล้วปิดไฟล์ เวลาเปิดมามันยังสามารถเห็นโดยไม่ต้องใส่ pass เลย รบกวนช่วยปรับ code ให้หน่อยครับ


Private Sub Worksheet_Activate()
With Sheets("....")
Application.EnableEvents = False
.Visible = xlSheetHidden
If InputBox("Enter PASSWORD if any change is needed !") <> "...." Then _
.Previous.Select Else _
.Visible = xlSheetVisible: .Activate
.Visible = xlSheetVisible
Application.EnableEvents = True
End With
End Sub

Re: ต้องการให้ใส่ password ก่อนดูบาง sheet

Posted: Fri Dec 06, 2019 3:57 pm
by ryderman11
เพิ่มเติมครับ หลังจาก save Marco แล้ว ทำ protect workbook ตามเดิม กับขึ้น error

"run-time error 1004,
unable to set the visible property of the worksheet class"

รบกวนหน่อยครับ

Re: ต้องการให้ใส่ password ก่อนดูบาง sheet

Posted: Fri Dec 06, 2019 10:02 pm
by snasui
:D การโพสต์ Code ให้ดูตัวอย่างตามกฎข้อ 5 ด้านบน จะได้แตกต่างจากข้อความปกติและสะดวกต่อการอ่านครับ

ช่วยแนบไฟล์ตัวอย่างประกอบมาด้วยจะได้ช่วยดูให้ได้ครับ