Page 1 of 1
อยากให้เอ็กเซลแจ้งเตือนแบบ Pop up
Posted: Mon Mar 27, 2017 8:34 pm
by JanEevil
ปรึกษาค่ะ
1.หนูมีตารางงานที่ต้องทำเป็นประจำทุกเดือน แต่ใน 1 ดือนมีหลายงาน แต่งานซ้ำกันทุกเดือน
2.หนูลองใช้ VBA แล้วเบื่องต้นแต่ผลที่อกกมายังไม่น่าพอใจ
2.1 หนูอยากให้ขึ้นเตือแบบ Pop Up โดยการรันวันที่และเนื้อหาให้สอดคล้องกัน
2.2 หนูอยากให้ Pop Up เด้งขึ้นเองและเตือนทุก 5 นาที
2.3 มีทางเป็นไปได้ไหมค่ะที่จะไม่ต้องเปิดเอ็กเซลก็แจ้งเตือนอัตโนมัติ
นี่คือโค้ดที่หนูเขียน
Private Sub Worksheet_Open()
End Sub
Sub mycolumnc()
If (C = TODAY) Then
MsgBox ("Switchgear SF6 (2 in 4 out)")
End If
End Sub
Action Plan.xlsm
Re: อยากให้เอ็กเซลแจ้งเตือนแบบ Pop up
Posted: Mon Mar 27, 2017 9:01 pm
by snasui
การทำเช่นนี้เป็นการเขียนโปรแกรมควบคุม Windows โดยใช้ Task Schedule เพื่อให้เปิด Excel ทุก 5 นาที เปิดขึ้นมาแล้ว Excel ค่อยดำเนินการต่อด้วย Code ใน Excel และเมื่อดำเนินการแล้วค่อยปิดตัวเองลงแล้วจะถูกเปิดใหม่ด้วย Windows
สิ่งที่ต้องทำคือ
- เขียน Task Schedule ใน Windows โดยคลิก Start > คีย์ Administrative Tools > Task Schedule หากทำไม่เป็นจำเป็นต้องศึกษามาเองก่อน ติดแล้วค่อยถามกันต่อ การกำหนดลักษณะนี้เกินกว่าขอบเขตของ Excel สามารถสอบถามในหมวด Other ไม่ใช่หมวด Excel นี้ครับ
- เขียน Code ใน Excel เพื่อตรวจสอบค่าตามที่ต้องการ หากว่าเข้าเงื่อนไขให้แสดง MessageBox ตามที่ต้องการ การแนบ Code มาในฟอรัมให้อ่านและปฏิบัติตามกฎการใช้บอร์ดข้อ 5 ด้านบนครับ
Re: อยากให้เอ็กเซลแจ้งเตือนแบบ Pop up
Posted: Mon Mar 27, 2017 9:15 pm
by JanEevil
Private Sub Worksheet_Open()
End Sub
Sub mycolumnc()
If (C = TODAY) Then
MsgBox ("Switchgear SF6 (2 in 4 out)")
End If
End Sub
Re: อยากให้เอ็กเซลแจ้งเตือนแบบ Pop up
Posted: Mon Mar 27, 2017 9:16 pm
by snasui
ยังวางไม่ถูกครับ
และหากวางถูกแล้วให้อธิบายมาใหม่ว่าต้องการจะทำอะไร ที่ชีตใด คอลัมน์ใด ต้องการให้แสดงผลเช่นไร การอธิบายต้องให้ละเอียดระดับนั้นจึงจะสะดวกต่อการทำความเข้าใจครับ
Re: อยากให้เอ็กเซลแจ้งเตือนแบบ Pop up
Posted: Mon Mar 27, 2017 9:35 pm
by JanEevil
ขออธิบายก่อนนะค่ะ
1ต้องการ แจ้งเตือนแบป็อปอัพโดยให้ข้อมูลในคอลัม B ขึ้นอยู่ในป็อปอัพด้วย
เช่น วันนี้วันที่ 27/3/60 เวลาเปิดไฟล์งานขึ้นมาก็จะเห็น Pop up ขึ้นเตื่อน สวัสดีค่ะ งานวันนี้คือ เช็คระบบไฟ
2ต้องการแจ้งเตือนที่ชีต Action Plan โดยคอลัม C คือวันที่ ที่จะต้องทำงานนั้น
Re: อยากให้เอ็กเซลแจ้งเตือนแบบ Pop up
Posted: Mon Mar 27, 2017 10:19 pm
by snasui
หลักการคือจะต้อง Loop ค่าในคอลัมน์ C ทุกค่าแล้วตรวจสอบว่าเป็นวันที่ปัจจุบันหรือไม่ หากใช่ให้นำค่าในคอลัมน์ B มาแสดงใน Message
ศึกษาการ Loop ด้วย For each Next เสียก่อนแล้วปรับ Code มาใหม่ ติดแล้วค่อยถามกันต่อครับ
ดูตัวอย่างการ Loop ได้ที่นี่ครับ
For Each Loop
อย่าลืมวาง Code ให้เป็น Code ตามที่ได้แจ้งไปแล้วครับ
Re: อยากให้เอ็กเซลแจ้งเตือนแบบ Pop up
Posted: Tue Mar 28, 2017 12:10 pm
by JanEevil
Code: Select all
Sub Round()
For Each C In ActionPlan.CurrentRegion.Cells
If Abs(C.Value) < 0.01 Then C.Value = TODAY
Next
End Sub
Sub RoundToZero2()
For Each C In Sheet2("Action Plan").Range("C:B").Cells
If Abs(C.Value) < 0.01 Then C.Value = TODAY
Next
End Sub
ตรวจดูให้หน่อนค่ะ C7 หนูผูกสูตร =TODAY() ไว้
Re: อยากให้เอ็กเซลแจ้งเตือนแบบ Pop up
Posted: Tue Mar 28, 2017 12:11 pm
by JanEevil
Code: Select all
Sub Action_Plan_Open()
End Sub
Sub AlertActionPlan()
Dim C, B As String
Dim varColumnb As Variant
If ColumnC = TODAY Then
MsgBox "ÊÇÑÊ´Õ¤èÐ ¤Ø³ÁÕ§Ò¹µéͧ·Ó"
End If
End Sub
Sub Round()
For Each C In ActionPlan.CurrentRegion.Cells
If Abs(C.Value) < 0.01 Then C.Value = TODAY
Next
End Sub
Sub RoundToZero2()
For Each C In Sheet2("Action Plan").Range("C:B").Cells
If Abs(C.Value) < 0.01 Then C.Value = TODAY
Next
End Sub
Re: อยากให้เอ็กเซลแจ้งเตือนแบบ Pop up
Posted: Tue Mar 28, 2017 6:59 pm
by snasui
แนบไฟล์ล่าสุดที่ได้เขียน Code ด้านบนไว้แล้ว จะได้ช่วยดูต่อไปจากนั้นครับ
Re: อยากให้เอ็กเซลแจ้งเตือนแบบ Pop up
Posted: Wed Mar 29, 2017 9:48 am
by JanEevil
โค๊ดที่ให้มาใช้ไม่ได้ทำไงดีค่ะ
Re: อยากให้เอ็กเซลแจ้งเตือนแบบ Pop up
Posted: Wed Mar 29, 2017 10:17 am
by parakorn
snasui wrote: แนบไฟล์ล่าสุดที่ได้เขียน Code ด้านบนไว้แล้ว จะได้ช่วยดูต่อไปจากนั้นครับ
JanEevil wrote:โค๊ดที่ให้มาใช้ไม่ได้ทำไงดีค่ะ
การแนบไฟล์ตัวอย่าง จะทำให้ผู้แก้ปัญหา เข้าถึงปัญหาโดยง่ายครับ
ผู้ถามควรแนบไฟล์ที่เกิดปัญหา จะได้เปิดดูเพื่อแก้ปัญหาต่อไปครับ