:!: โปรดทราบ Image
    1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ดครับ Image
    2. การสมัครสมาชิกเพื่อโพสต์คำถาม ดาวน์โหลดไฟล์แนบไปศึกษา ทำตามขั้นตอนด้านล่างครับ
      1. สมัครสมาชิก ดูขั้นตอนตาม Link นี้ครับ => สมัครสมาชิก กรณีลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่นี่ครับ => Reset รหัสผ่านImage
      2. Login เข้าระบบโดยคลิก Login ตรงมุมขวาบนของหน้านี้ Image กรณีมีปัญหาในการเข้าใช้งาน คลิก Link นี้เพื่อแจ้งผู้ดูแลระบบครับ => ติดต่อผู้ดูแลระบบ
    3. เมื่อ Login แล้วสามารถกำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษได้ที่ Link นี้ครับ => ตั้งค่าส่วนตัว Image
    4. วิธีการตั้งและตอบกระทู้ดูได้ที่ Link นี้ครับ => วิธีการตั้งและตอบกระทู้ Image
    5. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ Link นี้ครับ => จัดรูปแบบตัวอักษร และสามารถกำหนดขนาดตัวอักษรใน Browser ได้ที่นี่ครับ ==> กำหนดขนาดตัวอักษรใน Browser Image

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

ฟอรั่มถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถาม-ตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบ ต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. อธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. ควรแนบตัวอย่างไฟล์มาที่ฟอรั่มนี้เพื่อเพิ่มความสะดวกในการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่น นอกจากนี้ไม่ควรแนบไฟลที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. สำหรับคำถามเกี่ยวกับ VBA ให้ลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน ควรโพสต์ Code ให้แสดงเป็น Code เพื่อสะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. แจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
kio2002
Member
Member
Posts: 150
Joined: Thu Sep 20, 2012 8:40 am

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

#1

Postby kio2002 » Thu Nov 16, 2017 8:40 pm

เรียนสมาชิกทุกท่านครับ
ผมต้องการให้มีการดักจับการเปลี่ยนแปลงที่เซลล์ 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: 22348
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

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

#2

Postby snasui » Thu Nov 16, 2017 9:20 pm

: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: 150
Joined: Thu Sep 20, 2012 8:40 am

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

#3

Postby kio2002 » Thu Nov 16, 2017 9:50 pm

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: 22348
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

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

#4

Postby snasui » Thu Nov 16, 2017 10:20 pm

: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: 150
Joined: Thu Sep 20, 2012 8:40 am

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

#5

Postby kio2002 » Wed Nov 22, 2017 7:59 pm

เรียนอาจารย์สันติพงศ์ครับ
ผมนำโค้ดไปใช้แล้วครับ แต่ยังติดปัญหาดังนี้ครับ
-พิมพ์เลข 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: 1604
Joined: Mon Oct 15, 2012 12:07 am

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

#6

Postby DhitiBank » Wed Nov 22, 2017 11:28 pm

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

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: 150
Joined: Thu Sep 20, 2012 8:40 am

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

#7

Postby kio2002 » Thu Nov 23, 2017 8:24 pm

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

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


Return to “Excel”

Who is online

Users browsing this forum: Google Feedfetcher and 41 guests