: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

ดักจับการเปลี่ยนแปลงที่เซลล์ A1 แล้วแสดง inputbox

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

ดักจับการเปลี่ยนแปลงที่เซลล์ A1 แล้วแสดง inputbox

#1

Post by kio2002 »

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

ตอนนี้ติดตรงนี้ครับ (ถ้าใส่ password ถูกต้อง ให้แสดง inputbox อันใหม่ เพื่อใส่ตัวเลข แล้วส่งค่าไปยังเซลล์ A1 แล้วออกจากคำสั่ง ไม่ว่าเซลล์ A1 จะไม่เท่ากับ 7 ก็ตาม)
ผมอยากให้มันออกจากคำสั่ง แต่มันไม่ยอมออกครับ

รบกวนช่วยดู code ให้หน่อยครับ
code จะอยู่ที่ sheet1

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Message, Message1, Title, Title1, msg1, msg2 As Variant
    Message = "¡ÃسҢÍ͹حҵԨҡ ¼¨¡. áÅÐãÊè Password"
    Message1 = "ãÊèÀÒÉÕÁÙŤèÒà¾ÔèÁ"
    Title = "Password"
    Title1 = "VAT"
    Default1 = ""
        If Target.Address = Range("a1").Address Then
            If Range("a1").Value <> 7 Then
                msg1 = InputBox(Message, Title)
            If msg1 = 1234 Then
                msg2 = InputBox(Message1, Title1)
                Range("a1").Value = msg2
            Else
                MsgBox "¤Ø³ãÊè Password ¼Ô´"
                Range("a1").Value = 7
            End If
            End If
        End If
    Exit Sub
End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ดักจับการเปลี่ยนแปลงที่เซลล์ A1 แล้วแสดง inputbox

#2

Post by snasui »

:D ตัวอย่าง Code ครับ

Code: Select all

'Other code
If Target.Address = Range("a1").Address Then
    If Range("a1").Value <> 7 Then
        msg1 = InputBox(Message, Title)
        If msg1 = 1234 Then
            Application.EnableEvents = False
            msg2 = InputBox(Message1, Title1)
            Range("a1").Value = msg2
            Application.EnableEvents = True
        Else
            MsgBox "คุณใส่ Password ผิด"
            Range("a1").Value = 7
        End If
    End If
End If
'Other code
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

Re: ดักจับการเปลี่ยนแปลงที่เซลล์ A1 แล้วแสดง inputbox

#3

Post by kio2002 »

code ตรงตามที่ต้องการเลยครับอาจารย์
แค่เพิ่ม Application.EnableEvents = False และ Application.EnableEvents = True
เส้นผมบังภูเขาอีกละ
รบกวนสอบถามอาจารย์อีกหน่อยครับ
พอดีผมปรับ fromat cells เป็น Percentage เวลาส่งค่าจาก inputbox ไปยังเซลล์ A1
เช่นพิมพ์ 7 กดปุ่ม ok ค่าที่ส่งไปเป็น 700 ต้องแก้ไขตรงไหนครับอาจารย์

พอดีผมเพิ่ม "7%" ไปแล้วก็ยังไม่ได้

Code: Select all

'Other code
If Target.Address = Range("a1").Address Then
    If Range("a1").Value <> "7%" Then
        msg1 = InputBox(Message, Title)
        If msg1 = 1234 Then
            Application.EnableEvents = False
            msg2 = InputBox(Message1, Title1)
            Range("a1").Value = msg2
            Application.EnableEvents = True
        Else
            MsgBox "คุณใส่ Password ผิด"
            Range("a1").Value = "7%"
        End If
    End If
End If
'Other code
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ดักจับการเปลี่ยนแปลงที่เซลล์ A1 แล้วแสดง inputbox

#4

Post by snasui »

:D ตัวอย่าง Code ครับ

Code: Select all

If Target.Address = Range("a1").Address Then
    If Range("a1").Value / 100 <> "7%" Then
        msg1 = InputBox(Message, Title)
        If msg1 = 1234 Then
            Application.EnableEvents = False
            msg2 = InputBox(Message1, Title1)
            Range("a1").Value = msg2 / 100
            Application.EnableEvents = True
        Else
            MsgBox "¤Ø³ãÊè Password ¼Ô´"
            Range("a1").Value = Range("a1").Value / 100
        End If
    End If
End If
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

Re: ดักจับการเปลี่ยนแปลงที่เซลล์ A1 แล้วแสดง inputbox

#5

Post by kio2002 »

เรียนอาจารย์สันติพงศ์ครับ
ผมนำโค้ดไปใช้แล้วครับ แต่ยังติดปัญหาดังนี้ครับ
-พิมพ์เลข 7 ที่เซลล์ A1 แล้วยังแสดง inputbox
-ใส่ password ที่ inputbox ผิด โปรแกรมไม่ยอมออกจากคำสั่ง
รบกวนอาจารย์ดูให้อีกทีครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: ดักจับการเปลี่ยนแปลงที่เซลล์ A1 แล้วแสดง inputbox

#6

Post by DhitiBank »

ลองแบบนี้ครับ

Code: Select all

If Target.Address = Range("a1").Address Then
    If Range("a1").Value <> 0.07 Then
        msg1 = InputBox(Message, Title)
        Application.EnableEvents = False
        If msg1 = 1234 Then
            msg2 = InputBox(Message1, Title1)
            Range("a1").Value = msg2 / 100
        Else
            MsgBox "คุณใส่ Password ผิด"
            Range("a1").Value = Range("a1").Value / 100
        End If
        Application.EnableEvents = True
    End If
End If
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

Re: ดักจับการเปลี่ยนแปลงที่เซลล์ A1 แล้วแสดง inputbox

#7

Post by kio2002 »

ขอบคุณท่านอาจารย์ และสมาชิก คุณ Dhitibank เป็นอย่างมากครับ code ใช้ได้ตรงตามที่ต้องการเลยครับ
ผมปรับนิดหน่อย ตอนนี้ OK แล้วครับ
จาก
MsgBox "คุณใส่ Password ผิด"
Range("a1").Value = Range("a1").Value / 100

เป็น
MsgBox "คุณใส่ Password ผิด"
Range("a1").Value = 0.07
Post Reply