Page 1 of 1

สอบถามเรื่องการใช้เขียน vba auto very hidden

Posted: Sat Jun 11, 2022 8:42 am
by Xcelvba
1.สอบถามว่ามีวิธีการใดที่สามารถ auto hidden all sheet ยกเว้น ชีตแรก (Login) เมื่อปิด
1.1 ถ้าทำได้จำเป็นไหมที่ต้องเซฟทุกครั้งเมื่อมีการปิด

2.เบื้องต้น Very Hidden ทุกชีตไว้ก่อนแล้ว

Code: Select all

Private Sub CommandButton1_Click()
With Sheets("login")
If .form1.TextBox1 = "admin" & .form1.TextBox2 = "admin" Then
Worksheets("sheet1").Visible = False
Worksheets("sheet2").Visible = False
Worksheets("sheet3").Visible = False
Else: MsgBox ("Retry login again")
End If
End With
End Sub
ขอบคุณครับ

Re: สอบถามเรื่องการใช้เขียน vba auto very hidden

Posted: Sat Jun 11, 2022 12:24 pm
by snasui
Xcelvba wrote: Sat Jun 11, 2022 8:42 am 1.สอบถามว่ามีวิธีการใดที่สามารถ auto hidden all sheet ยกเว้น ชีตแรก (Login) เมื่อปิด
:D นำ Code ด้านล่างไปเพิ่มไว้ใน ThisWorkbook ครับ

Code: Select all

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim sh As Worksheet
    For Each sh In Worksheets
        If sh.Name <> "login" Then
            sh.Visible = xlSheetVeryHidden
        End If
    Next sh
    ThisWorkbook.Close True
End Sub
Xcelvba wrote: Sat Jun 11, 2022 8:42 am 1.1 ถ้าทำได้จำเป็นไหมที่ต้องเซฟทุกครั้งเมื่อมีการปิด
ขึ้นอยู่กับว่าต้องการให้มีการจดจำค่าที่เปลี่ยนแปลงไปหรือไม่ หากไม่ต้องการให้จดจำก็ไม่จำเป็นต้อง Save แต่ในกรณีนี้จำเป็นต้อง Save เพื่อให้จดจำการซ่อนชีตครับ

Re: สอบถามเรื่องการใช้เขียน vba auto very hidden

Posted: Sat Jun 11, 2022 1:06 pm
by Xcelvba
:D ขอบคุณครับ
ขึ้นอยู่กับว่าต้องการให้มีการจดจำค่าที่เปลี่ยนแปลงไปหรือไม่ หากไม่ต้องการให้จดจำก็ไม่จำเป็นต้อง Save แต่ในกรณีนี้จำเป็นต้อง Save เพื่อให้จดจำการซ่อนชีตครับ
สอบถามเพิ่มเติมครับ เงื่อนไขในการแสดงชีท เมื่อมีการ login ครับ
ID : admin
password :admin
ถ้าถูกให้ เปิด ชีตทั้งหมด
ถ้าผิดขึ้น error message ครับ

Code: Select all

Private Sub CommandButton1_Click()
    Dim sh1 As Worksheet
    For Each sh1 In Worksheets
        With Sheets("login")
                If .form1.TextBox1 = "admin" & .form1.TextBox2 = "admin" Then
                     For Each sh In Worksheets
                         If sh1.Name <> "login" Then
                            sh1.Visible = xlSheetVisible
                         End If
                    Next sh1
                Else: MsgBox ("Retry login again")
                 End If
        End With
End Sub

Sheet1(login)

Re: สอบถามเรื่องการใช้เขียน vba auto very hidden

Posted: Sat Jun 11, 2022 1:39 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Private Sub CommandButton1_Click()
    Dim sh As Worksheet
    With Sheets("login")
        If .TextBox1 = "admin" And .TextBox2 = "admin" Then
            For Each sh In Worksheets
                 If sh.Name <> "login" Then
                    sh.Visible = xlSheetVisible
                 End If
            Next sh
        Else
            MsgBox ("Retry login again")
        End If
    End With
End Sub

Re: สอบถามเรื่องการใช้เขียน vba auto very hidden

Posted: Sat Jun 11, 2022 2:38 pm
by Xcelvba
ขอบคุณ อ. มากครับได้แล้วครับ