: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

VBA ป้องกันการปิด user form ไปเฉยๆ โดยไม่ใส่ค่าครับ

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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่

Post a reply


This question is a means of preventing automated form submissions by spambots.
Smilies
:D :thup: :cp: :flw: :rz: :sg: :tt: :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :ard: :arl: :aru: :| :mrgreen: :geek: :ugeek:

BBCode is ON
[img] is ON
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: VBA ป้องกันการปิด user form ไปเฉยๆ โดยไม่ใส่ค่าครับ

Re: VBA ป้องกันการปิด user form ไปเฉยๆ โดยไม่ใส่ค่าครับ

#3

by DhitiBank » Mon Jun 02, 2014 10:19 pm

ขอบคุณคุณ bank9597 มากครับ ตรงตามความต้องการเลยครับ

Re: VBA ป้องกันการปิด user form ไปเฉยๆ โดยไม่ใส่ค่าครับ

#2

by bank9597 » Mon Jun 02, 2014 6:33 pm

:D ลองใช้ใช้โค๊ดนี้ดูครับ

Code: Select all

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = 0 Then
        Cancel = True
        MsgBox "คุณไม่สามารถปิดฟอร์มได้", vbCritical
    End If
End Sub

VBA ป้องกันการปิด user form ไปเฉยๆ โดยไม่ใส่ค่าครับ

#1

by DhitiBank » Mon Jun 02, 2014 6:08 pm

เรียนอาจารย์ และสวัสดีเพื่อนๆ ครับ

ผมต้องการกำหนดสิทธิ์ผู้ใช้ที่จะเลือกใส่ค่าในเซลล์ A1 เฉพาะผู้ที่มีรหัส admin เท่านั้นจึงแก้ไขค่าได้ เขียนโค้ดโดยการสั่งให้เมื่อมีการแก้ไขค่าในเซลล์ A1 แล้ว ให้เรียก user form ออกมาเพื่อใส่รหัสให้ถูกต้อง หากใส่ผิด ค่าในเซลล์ A1 จะกลับไปเป็นค่าปกติ (คือ M1) แต่ผมเจอปัญหาคือ หากผู้ใช้ปิด user form (กดปุ่ม x) โดยที่ไม่จำเป็นต้องกรอกรหัส ค่าใน A1 ก็ยังจะอยู่ตามที่พิมพ์เอาไว้ ผมจะป้องกันไม่ให้ผู้ใช้ปิด user form ได้อย่างไรครับ

โค้ดที่ใช้ตามด้านล่างครับ
ที่ Sheet1;

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        If Cells(1, 1).Text = "M1" Then
                Exit Sub
            Else
                Pasform1.Show
        End If
    End If
End Sub
ที่ User Form (ชื่อ Pasform1);

Code: Select all

Private Sub CommandButton1_Click()
    If Pasform1.TextBox1.Text = "admin" Then
            MsgBox "Password is correct ;)"
            Unload Pasform1
        Else
            MsgBox "Password is incorrect!!"
            Unload Pasform1
            Sheets("sheet1").Cells(1, 1).Value = "M1"
    End If
End Sub
ขอบคุณครับ
Attachments
TESTTT.xlsm
(16.41 KiB) Downloaded 40 times

Top