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

อยากทำ form login ครับ แต่กลัวเค้ากด shift ผ่าน

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
pboonwang
Member
Member
Posts: 3
Joined: Thu Dec 22, 2011 8:36 am

อยากทำ form login ครับ แต่กลัวเค้ากด shift ผ่าน

#1

Post by pboonwang »

ผมอยากทำ Form Login พอเปิดโปรแกรม Formก็เริ่มทำงาน มีชีทเก็บยูเซอร์กับรหัสผ่าน ถ้าไม่มีก็ปิดไฟล์ แต่ติดที่ไม่รู้จะป้องกันเค้ากด Shift เพื่อข้ามยังงัย พอมีคำแนะนำมั้ยครับ :?: Image
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: อยากทำ form login ครับ แต่กลัวเค้ากด shift ผ่าน

#2

Post by snasui »

:D แนบไฟล์ แนบ Code ที่เขียนไว้แล้วมาด้วยครับ จะได้ช่วยกันทดสอบได้
pboonwang
Member
Member
Posts: 3
Joined: Thu Dec 22, 2011 8:36 am

Re: อยากทำ form login ครับ แต่กลัวเค้ากด shift ผ่าน

#3

Post by pboonwang »

ตัวอย่างครับ ผมใช้ very hide ซ่อนชีทเอา
พนักงานคือ admin พาสเวิร์ดคือ 11
พาสเวิร์ดดูโค้ดคือ 123456 ครับ
พอจะเพิ่มความปรอดภัยได้อีกมั้ยครับ
You do not have the required permissions to view the files attached to this post.
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: อยากทำ form login ครับ แต่กลัวเค้ากด shift ผ่าน

#4

Post by snasui »

:lol: การกด Shift ค้างไว้ตอนเปิดไฟล์ก็เหมือนกับการปิดการใช้งาน Macro ดังนั้น Code ต่าง ๆ จึงหยุดทำงาน

ลองตามนี้ครับ
  1. ปัองกัน Sheet1 ไว้ก่อนทุกเซลล์ การปลดการป้องกันต้องทราบ Password หรือต้องผ่านการ Login
  2. ใน Event สำหรับการปิดไฟล์จะทำการป้องกัน Sheet1, Save และปิด โดยตัวอย่าง Code ที่ ThisWorkbook เป็นตามด้านล่าง

    Code: Select all

    Public passOK As Boolean
    
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Sheet2.Visible = xlSheetVeryHidden
        Sheet8.Visible = xlSheetVeryHidden
        Sheet1.Range("C5").Locked = True
        Sheet1.Protect Password:=1
        ThisWorkbook.Save
    End Sub
    
    Private Sub Workbook_Open()
        passOK = False
        LoginForm.Show
    End Sub
  3. ตัวอย่างการปรับ Code ที่ LoginForm เป็นตามด้านล่าง

    Code: Select all

    Private Sub Okcmd_Click()
        'On Error Resume Next
        Dim row As Byte
        If UserText = "" Or PassText = "" Then
            MsgBox "กรุณากรอกข้อมูลให้ครบ"
            Exit Sub
        End If
        For row = 2 To 10
            If UserText = Sheet8.Cells(row, 1) Then
                If CLng(PassText) = Sheet8.Cells(row, 2) Then
                    passOK = True
                    Sheet1.Unprotect Password:=1
                    Sheet1.Range("C5").Locked = False
                    Select Case Sheet8.Cells(row, 3)
                        Case 1
                            Sheet2.Visible = xlSheetVisible
                            Sheet8.Visible = xlSheetVisible
                            passOK = True
                            LoginForm.Hide
                        Case 2
                            Sheet2.Visible = xlSheetVeryHidden
                            Sheet8.Visible = xlSheetVeryHidden
                            passOK = True
                            LoginForm.Hide
                        Case 3
                            Sheet2.Visible = xlSheetVeryHidden
                            Sheet8.Visible = xlSheetVeryHidden
                            passOK = True
                            LoginForm.Hide
                        Case Else
                            MsgBox "ข้อมูลพนักงานไม่ครบ กรุณาติดต่อ Admin "
                    End Select
    '            Else
    '                MsgBox "รหัสผ่านไม่ถูกต้อง กรุณาพิมพ์ใหม่อีกครัง", vbInformation, "แจ้งเตือน"
                End If
            End If
        Next
        If passOK = False Then
            MsgBox "รหัสผ่านไม่ถูกต้อง กรุณาพิมพ์ใหม่อีกครัง", vbInformation, "แจ้งเตือน"
        End If
    End Sub
    
    Private Sub UserForm_Terminate()
        Thisworkbook.Close
    End Sub
    
ดูไฟล์แนบประกอบครับ
You do not have the required permissions to view the files attached to this post.
pboonwang
Member
Member
Posts: 3
Joined: Thu Dec 22, 2011 8:36 am

Re: อยากทำ form login ครับ แต่กลัวเค้ากด shift ผ่าน

#5

Post by pboonwang »

เจตนาเพื่อ lock การแก้ใขในชีท1 ใช่มั้ยครับ
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: อยากทำ form login ครับ แต่กลัวเค้ากด shift ผ่าน

#6

Post by snasui »

การ Lock Sheet1 ไว้ก็เพื่อไม่ให้แก้ไขได้ถ้ามีการกด Shift ป้องกันการใช้งาน Macro ตอนเปิดไฟล์ จะเห็นว่าแม้ไม่มีหน้าต่าง Login ให้เห็นแต่ก็ทำงานกับไฟล์นี้ไม่ได้อยู่ดี การจะทำงานได้ต้องรู้ Password ในการปลดการป้องกัน Sheet1 ออกก่อน หรือไม่ก็ต้อง Login ด้วย Password ที่ถูกต้องเท่านั้นครับ :mrgreen:
User avatar
tahc
Bronze
Bronze
Posts: 253
Joined: Wed Sep 15, 2010 10:32 am

Re: อยากทำ form login ครับ แต่กลัวเค้ากด shift ผ่าน

#7

Post by tahc »

ขอบคุณมากครับ ขออนุญาตนำไปใช้ประโยชน์ด้วยคนครับ
Post Reply