Page 1 of 1

VeryHidden File

Posted: Wed Apr 11, 2012 3:09 pm
by maya
หากต้องการ veryhidden ทุกชีท อัตโนมัติทุกครั้งที่เปิดสมุดงานขึ้นมาใหม่ ยกเว้นชีท Main สามรถทำได้ไหมคะ

Re: VeryHidden File

Posted: Wed Apr 11, 2012 3:39 pm
by songsug
แบบนี้ได้ไหมครับ

Code: Select all

Private Sub Workbook_Open() 'ตอนเปิดไฟล์ ซ่อนหมดเลย
For Each sh In Worksheets
        If sh.Name <> "Main" Then sh.Visible = xlSheetVeryHidden
Next
End Sub

Sub UnHidden() 'อันนี้ไว้ยกเลิกซ่อนนะครับ
For Each sh In Worksheets
 sh.Visible = xlSheetVisible
    Next
End Sub

Re: VeryHidden File

Posted: Wed Apr 11, 2012 3:46 pm
by maya
It's work :) Thank you for your help, K'Songsug. And can I ask u more, Why we have to put that code in "ThisWorkbook".

Re: VeryHidden File

Posted: Wed Apr 11, 2012 3:49 pm
by songsug
ที่เราต้องนำ Code ไปไว้ที่ ThisWorkbook เพราะเราจะกระทำกับ Events หรือสถานะการณ์ ที่มีอยู่ใน Workbook นั้นๆครับ แต่ถ้าหากเราต้องการกระทำกับ worksheets เราก็ต้องนำ Code ไปไว้ใน Worksheet ที่ต้องการครับ ซึ่งตัวเลือกต้อง Events ก็จะต่างกันออกไป
เช่น การกระทำต่อสมุดงาน อาจมีตัวเลือก เมื่อเปิด เมื่อปิด เมื่อบันทึก เมื่อสร้าง sheet ใหม่ หรือเมื่อลบ sheet เป็นต้นจ้า
แต่ถ้าเป็น worksheet เราก็จะกระทำตามเงื่อนไขที่เราเลือก เช่น เมื่อมาเลือก sheet ที่กดหนด เมื่อมีการเปลี่ยนแปลง เมื่อมีการแทรกแถว หรือคอลัมน์ .... ประมาณนี้ล่ะ
ถ้าผมอธิบายผิดพลาด รบกวนท่านอื่นๆเสริมให้หน่อยนะครับ ผมพูดไม่เก่ง แต่รักหมดใจ

Re: VeryHidden File

Posted: Wed Apr 11, 2012 7:43 pm
by godman
ขอบคุณคุณเจ้าของกระทู้ครับที่ ถามคำถามที่ผมเองก็อยากได้อยู่เหมือนกัน เพราะไม่อยากทำให้ผู้ที่ใช้ข้อมูลเรารู้สึกว่าข้อมูลมันเยอะแยะหลายชีตเหลือเกิน ต้องการให้ผู้ใช้ค่อยๆเลือกชี้ตที่สนใจแล้วคลิ้ก hyperlink เข้าไปอ่านเอา แต่ว่าผม apply macro มาใช้แล้วแต่ทำไมมันไม่ได้หละครับ รบกวนดูให้ด้วยครับว่าผมผิดที่ใหน

Re: VeryHidden File

Posted: Wed Apr 11, 2012 8:26 pm
by tupthai
จาก
For Each sh In Worksheets
เปลี่ยนเป็น
For Each sh In sheets
จะรวม Chart ด้วยครับ
:D

Re: VeryHidden File

Posted: Wed Apr 11, 2012 9:38 pm
by godman
ขอบคุณครับ แต่เมือผมทดลองนำไปใช้ดู ใน sheet main ผมทำ hyperlink ไว้ทำไปกดแล้วมันไม่ไปหละครับ ผมอยากให้มันเปิด sheet ที่กด hyperlink ได้
และความต้องการอันดับต่อมาคือ เมื่อละจาก sheet ที่กำลังเปิดอยู่ก็ให้ sheet นั้นถูกซ่อนไว้ ให้คงไว้แต่หน้า main เหมือนสภาพเดิม ขอบคุณครับ

Re: VeryHidden File

Posted: Wed Apr 11, 2012 10:28 pm
by tupthai
ไว้ใน sheet Main

Code: Select all

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

Worksheets(Mid(Target.SubAddress, 2, InStr(1, Target.SubAddress, "!") - 3)).Visible = xlSheetVisible
Application.EnableEvents = False
Target.Follow
Application.EnableEvents = True

End Sub
เมื่อละจาก sheet ที่กำลังเปิดอยู่ก็ให้ sheet นั้นถูกซ่อนไว้ ให้คงไว้แต่หน้า main เหมือนสภาพเดิม
ชีทอื่นๆทุกชีทยกเว้น Main ใช้code

Code: Select all

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

Worksheets(Mid(Target.SubAddress, 2, InStr(1, Target.SubAddress, "!") - 3)).Visible = xlSheetVeryHidden
Application.EnableEvents = False
Target.Follow
Application.EnableEvents = True

End Sub

Re: VeryHidden File

Posted: Thu Apr 12, 2012 9:46 pm
by godman
แจ้งผลการใช้งานครับ ใช้ได้ดีระดับหนึ่งมากครับ ขอบพระคุณครับ