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

pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#1

Post by March201711 »

ถ้ามีคำว่า Others ใน column G ให้มี pop up แจ้งเตือนว่าให้ใส่ใน column I ว่า " what desciption??? และ column K ว่าเป็น " What price???ค่ะ
เข่น cell G18 เลือก drop down เป็น Other….Software(specific) ควรมี pop up แจ้งว่า ต้องกรอก ชื่อใน cell I18 และ ราคาที่ cell K18
เข่น cell G19 เลือก drop down เป็น Other….Hardware(specific) ควรมี pop up แจ้งว่า ต้องกรอก ชื่อใน cell I19 และ ราคาที่ cell K19
เข่น cell G20 เลือก drop down เป็น Other….Renovation(specific) ควรมี pop up แจ้งว่า ต้องกรอก ชื่อใน cell I20 และ ราคาที่ cell K20
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: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#2

Post by snasui »

:D การแจ้งเตือนด้วย Popup ต้องทำด้วย VBA จำเป็นต้องเขียนมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบน :roll: ติดตรงไหนค่อยถามกันต่อครับ
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#3

Post by March201711 »

Code: Select all

 Sub Pop_up_inColumn_I_and_K()

    If Worksheets("Form").Range("G18").Value = "Others…..Equipment (specific)" Then
 '    If Worksheets("Form").Range("G18").Value = "Others…..Hardware (specific)" Then
 '    If Worksheets("Form").Range("G18").Value = "Others…..Renovation (specific)" Then

    
    MsgBox ("Please fill the next column!")
    
    End If
    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: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#4

Post by snasui »

:D ปัจจุบัน Code ที่เขียนมาแล้วนั้นยังติดปัญหาใด กรุณาอธิบายมาด้วยครับ
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#5

Post by March201711 »

ติดปัญหาที่ ไม่ pop up ตรงcell ที่เลือก และไม่มี high light สีแสดงให้เห็นน่ะค่ะ

คือ ถ้าเลือก drop down ที่ column G เป็น others…..ในแต่ละ type ที่ column E ให้มี pop up หน้าต่างแสดงขึ้นมาว่า ให้กรอกที่ column I ว่าเป็น สินทรัพย์อะไรค่ะ ให้เม้าท์ไปวางที่ column I เช่น

เข่น ถ้าเลือก cell E18 type office equipment แล้วใน drop down ที่ cell G18 ไม่มีสินทรัพย์ที่เลือก แล้วไปเลือกเป็น others…..Equipment (specific) ให้มี pop up แจ้งว่า ต้องกรอก ชื่อใน cell I18 และ ราคาที่ cell K18
ถ้าเลือก cell E20 type Hardware แล้วใน drop down ที่ cell G20 ไม่มีสินทรัพย์ที่เลือก แล้วไปเลือกเป็น Others…..Hardware (specific) ให้มี pop up แจ้งว่า ต้องกรอก ชื่อใน cell I20 และ ราคาที่ cell K20
ถ้าเลือก cell E23 type Renovation แล้วใน drop down ที่ cell G23 ไม่มีสินทรัพย์ที่เลือก แล้วไปเลือกเป็น Others…..Renovation (specific) ให้มี pop up แจ้งว่า ต้องกรอก ชื่อใน cell I23 และ ราคาที่ cell K23
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: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#6

Post by snasui »

:D ตัวอย่าง Code เขียนใน Worksheet ที่เกี่ยวข้องครับ

Code: Select all

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Intersect(Target, Me.Range("i18:i38")) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    If Me.Cells(Target.Row, "e").Value = "" Then
        MsgBox "Please fill value in column 'E'"
        Me.Cells(Target.Row, "e").Activate
    ElseIf Me.Cells(Target.Row, "g").Value = "" Then
        MsgBox "Please fill value in column 'G'"
        Me.Cells(Target.Row, "g").Activate
    End If
    Application.EnableEvents = True
End Sub
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#7

Post by March201711 »

ทำไม รันไม่ได้คะ แล้ว private sub ไม่เหมือนกัน sub ยังงัยคะ ช่วยบอกวิธีการรันให้หน่อยค่ะ
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: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#8

Post by snasui »

:D Code นี้ต้องอยู่ใน Sheet ของมันเองครับ

Private Sub ต่างกับ Sub ที่การเรียกใช้งาน ถ้าเป็น Private จะไม่สามารถเรียกใช้จาก Procedure ใน Module อื่นใดนอกจาก Procedure ใน Module มันเองได้

ส่วน Sub เป็นอันเดียวกับ Public Sub จะสามารถเรียกใช้งานจาก Procedure ที่อยู่ต่าง Module กันได้

ข้างบนนี้อธิบายตามสิ่งที่ถาม แต่เข้าใจว่าไม่ได้ถามประเด็นนี้ แต่เป็นประเด็นของ Change Event มากกว่า

Code ข้างต้นเป็นการดักจับการเลือกเซลล์ คือเมื่อคลิกเลือกเซลล์จะ Run Code เลย ไม่ต้องไปคลิกปุ่มหรือเมนู แต่จะต้องนำ Code นี้ไปวางใน Module ที่เป็นชีตของมันเองใน VBE ไม่ใช่วางใน Module ทั่วไปครับ
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#9

Post by March201711 »

เลือกเซลล์ตามที่อาจารย์บอกแล้ว ไม่เห็นมี pop up ขึ้นมาเลยค่ะ
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: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#10

Post by snasui »

:D แนบไฟล์ที่ได้ปรับปรุง Code แล้วมาด้วยจะได้ช่วยดูให้ได้ครับ
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#11

Post by March201711 »

ติดปัญหาที่ ไม่ pop up ตรง cell ที่เลือก ค่ะ

Code: Select all

 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Intersect(Target, Me.Range("i18:i38")) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    
    If Me.Cells(Target.Row, "e").Value = "Office_equipment" Then
        MsgBox "Please fill value in column 'G'"
        Me.Cells(Target.Row, "g").Activate
    ElseIf Me.Cells(Target.Row, "g").Value = "Others…..Equipment (specific)" Then
        MsgBox "Please fill value in column 'I' and fill price in column 'K'"
        Me.Cells(Target.Row, "i", "K").Activate
    End If
    
    If Me.Cells(Target.Row, "e").Value = "Hardware" Then
        MsgBox "Please fill value in column 'G'"
        Me.Cells(Target.Row, "g").Activate
    ElseIf Me.Cells(Target.Row, "g").Value = "Others…..Hardware (specific)" Then
        MsgBox "Please fill value in column 'I' and fill price in column 'K'"
        Me.Cells(Target.Row, "i", "K").Activate
    End If
    
    If Me.Cells(Target.Row, "e").Value = "Renovation" Then
        MsgBox "Please fill value in column 'G'"
        Me.Cells(Target.Row, "g").Activate
    ElseIf Me.Cells(Target.Row, "g").Value = "Others…..Renovation (specific)" Then
        MsgBox "Please fill value in column 'I' and fill price in column 'K'"
        Me.Cells(Target.Row, "i", "K").Activate
    End If
    
    
    
    Application.EnableEvents = True
    
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: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#12

Post by snasui »

:D จาก Statement นี้

If Intersect(Target, Me.Range("i18:i38")) Is Nothing Then Exit Sub เป็นการกำหนดว่าให้ Code ทำงานเมื่อมีการคลิกเลือกเซลล์ในช่วง i18:i38 เท่านั้น การเลือกเซลล์อื่น ๆ จะไม่มีผลให้ Code ทำงานครับ

เราจะใช้ส่วนนี้ไปตรวจสอบส่วนอื่น ๆ ว่าได้เลือกตรงกับที่ต้องการหรือไม่ก็สามารถทำได้โดยไม่ลำบาก

ส่วน Statement Me.Cells(Target.Row, "i", "K").Activate ไม่ถูกต้อง จำเป็นต้องแก้ไขเสียใหม่ ที่ถูกต้องควรเป็นเช่น Me.Cells(Target.Row, "i").Activate เป็นต้น
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#13

Post by March201711 »

ถ้าจะให้มี pop up ที่ column k ตั้งแต่ k18 : k38 ด้วยล่ะคะ
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: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#14

Post by snasui »

:D ลองปรับ Statement เดิมด้วยการเพิ่มช่วงเข้าไปดูครับ
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#15

Post by March201711 »

จะไม่เอา column j รวมด้วยน่ะค่ะ จะเพิ่มแค่เฉพาะ column i18 : i38 และ k18 : k38 ค่ะ เพิ่มแล้วมันก้อติด debug ค่ะ อาจารย์
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: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#16

Post by snasui »

:D แนบไฟล์ล่าสุดที่ปรับ Code แล้วมาด้วยจะได้ตอบต่อไปจากนั้นครับ
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#17

Post by March201711 »

ปรับ code เพิ่ม range k18:K38 แล้ว และอยากให้ pop up ไปที่ Row K พอปรับแล้ว ใช้งานไม่ได้ค่ะ รบกวนอาจารย์ช่วยดูให้หน่อยนะคะ ขอบคุณค่ะ

Code: Select all

 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Intersect(Target, Me.Range("i18:i38"), Me.Range("k18:k38")) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    
    If Me.Cells(Target.Row, "g").Value = "Others…..Equipment (specific)" Then
        MsgBox "Please fill Others(description) in column 'I'"
        Me.Cells(Target.Row, "i").Activate
    ElseIf Me.Cells(Target.Row, "g").Value = "Others…..Equipment (specific)" Then
        MsgBox "Please fill Price/unit in column 'K'"
        Me.Cells(Target.Row, "k").Activate
    End If
    
    
'
'    If Me.Cells(Target.Row, "e").Value = "Hardware" Then
'        MsgBox "Please fill value in column 'G'"
'        Me.Cells(Target.Row, "g").Activate
'    ElseIf Me.Cells(Target.Row, "g").Value = "Others…..Hardware (specific)" Then
'        MsgBox "Please fill value in column 'I' and fill price in column 'K'"
'        Me.Cells(Target.Row, "i").Activate
'    End If
'
'    If Me.Cells(Target.Row, "e").Value = "Renovation" Then
'        MsgBox "Please fill value in column 'G'"
'        Me.Cells(Target.Row, "g").Activate
'    ElseIf Me.Cells(Target.Row, "g").Value = "Others…..Renovation (specific)" Then
'        MsgBox "Please fill value in column 'I' and fill price in column 'K'"
'        Me.Cells(Target.Row, "i").Activate
'    End If
'
    
    
    Application.EnableEvents = True
    
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: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#18

Post by snasui »

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

จาก

If Intersect(Target, Me.Range("i18:i38"), Me.Range("k18:k38")) Is Nothing Then Exit Sub

ปรับเป็น

If Intersect(Target, Me.Range("i18:i38, k18:k38")) Is Nothing Then Exit Sub
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#19

Post by March201711 »

ค่ะ ถ้าเอาเซลล์ไปไว้ที่ column K ทำไม pop up ยังขึ้น ให้ไปที่ column i คะ เพราะเขียน code ไว้ ให้ไปที่ column k แล้วน่ะค่ะ
แบบนี้ค่ะ

Code: Select all

If Me.Cells(Target.Row, "g").Value = "Others…..Equipment (specific)" Then
        MsgBox "Please fill Others(description) in column 'I'"
        Me.Cells(Target.Row, "i").Activate
   ElseIf Me.Cells(Target.Row, "g").Value = "Others…..Equipment (specific)" Then
        MsgBox "Please fill Price/unit in column 'K'"
        Me.Cells(Target.Row, "k").Activate
    End If
ต้องปรับยังไงคะให้ขึ้น pop up แจ้งว่า Please fill Price/unit in column K และ cell อยู่ตำแหน่งที่ column K ค่ะ
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: pop up แจ้งเตือนให้ลงรายการตามcell ที่ High light สีส้ม

#20

Post by snasui »

:D กรุณาแนบไฟล์พร้อม Code ล่าสุด แจ้งปัญหาที่เป็นและสิ่งที่ต้องการ จะได้ตอบต่อไปจากนั้นครับ
Post Reply