Page 1 of 2
Msg แจ้งเตือน
Posted: Wed Feb 20, 2019 3:09 pm
by Leng
ยากสอบถามครับว่าถ้าผมต้องการทำสแกนและให้แจ้งเตือนหากข้อมูลเกิน โดยโค๊ดที่ผมใช้คือ
Code: Select all
If Range("L2:L11").Value < Range("M2:M11").Value Then
If MsgBox(" µéͧ¡Ò÷ӵèÍËÃ×ÍäÁè ", vbYesNo + vbQuestion + vbDefaultButton2, " Close and Save ") = 6 Then
Call Sample2
MsgBox "TOTAL NUMBER ERROR"
Exit Sub
End If
End If
แต่ปัญหาคือพอโค๊ดอื่นที่สแกนไม่เกินจำนวนที่ตั้งไว้ก็ไม่สามารถสแกนได้ครับ
คือสิ่งที่ต้องการคือ cloumn M2:M11 ต้องมีค่าไม่เกินจำนวน cloumn L2:L11 หากเกิน ยากให้ มี msg แจ้งเตือนครับ
L2<M2 หากจำนวนใน M2 มีค่ามากกว่า L2 ให้แจ้งเตือน
L3<M2 หากจำนวนใน M3 มีค่ามากกว่า L3 ให้แจ้งเตือน
L4<M2 หากจำนวนใน M4 มีค่ามากกว่า L4 ให้แจ้งเตือน
L5<M2 หากจำนวนใน M5 มีค่ามากกว่า L5 ให้แจ้งเตือน
L6<M2 หากจำนวนใน M6 มีค่ามากกว่า L6 ให้แจ้งเตือน
L7<M2 หากจำนวนใน M7 มีค่ามากกว่า L7 ให้แจ้งเตือน
L8<M2 หากจำนวนใน M8 มีค่ามากกว่า L8 ให้แจ้งเตือน
L9<M2 หากจำนวนใน M9 มีค่ามากกว่า L9 ให้แจ้งเตือน
L10<M2 หากจำนวนใน M10 มีค่ามากกว่า L10 ให้แจ้งเตือน
L11<M2 หากจำนวนใน M11 มีค่ามากกว่า L11 ให้แจ้งเตือน
Re: Msg แจ้งเตือน
Posted: Wed Feb 20, 2019 5:53 pm
by snasui

แนบ Code นี้มากับไฟล์ตัวอย่างด้วยจะได้ช่วยทดสอบได้ครับ
Re: Msg แจ้งเตือน
Posted: Thu Feb 21, 2019 8:09 am
by Leng
Re: Msg แจ้งเตือน
Posted: Thu Feb 21, 2019 9:04 pm
by snasui

ตัวอย่างการ Loop เข้าไปในแต่ละเซลล์ของ L2:L11 เพื่อเช็คว่ามีค่าใดน้อยกว่าค่าในบรรทัดเดียวกันของคอลัมน์ M บ้าง ตามด้านล่างครับ
Code: Select all
'Other code
For Each Rng In Range("l2:l11")
If Rng.Value < Rng.offet(0, 1).Value Then
If MsgBox(" ต้องการทำต่อหรือไม่ ", vbYesNo + vbQuestion + vbDefaultButton2, " Close and Save ") = 6 Then
Call Sample2
MsgBox "TOTAL NUMBER ERROR"
Exit Sub
End If
End If
Next rmg
'Other code
Re: Msg แจ้งเตือน
Posted: Sat Feb 23, 2019 10:44 am
by Leng
ผมได้นำโค๊ดที่อาจารย์ให้ไปใส่แล้วครับแต่ไม่สามารถ run ได้ครับ
Re: Msg แจ้งเตือน
Posted: Sat Feb 23, 2019 11:00 am
by snasui

ไม่พบว่ามีการนำ Code ที่ผมตอบไปใช้ในไฟล์ที่แนบมาครับ
หรือเขียนไว้ที่ตรง Sub ไหน แจ้งรายละเอียดพร้อมลำดับวิธีทดสอบให้เห็นปัญหาที่เกิดขึ้นมาด้วยครับ
Re: Msg แจ้งเตือน
Posted: Sat Feb 23, 2019 1:47 pm
by Leng
ต้องขอโทษด้วยครับ
Re: Msg แจ้งเตือน
Posted: Sat Feb 23, 2019 2:00 pm
by snasui

นอกจากการแนบไฟล์ที่มี Code แล้ว ช่วยให้รายละเอียดมาตามที่ผมแจ้งไปในโพสต์ #6 ด้วยครับ
Re: Msg แจ้งเตือน
Posted: Sat Feb 23, 2019 2:10 pm
by Leng
ตรงนี้ครับต่อจาก sumif
Private Sub TextBox2_AfterUpdate()
If Me.TextBox2.Text = "" Then Exit Sub
emptyrow = WorksheetFunction.CountA(Range("A:A")) + 1
With Worksheets("Barcode")
If Me.TextBox2.Text = "" Then Exit Sub
If WorksheetFunction.CountIf(Sheets("Barcode").Range("K2:N50"), Me.TextBox2.Value) = 0 Then
Call Sample2
'Me.TextBox2.Value = ""
MsgBox "Not found."
Exit Sub
End If
With Me
.TextBox4 = Application.WorksheetFunction.VLookup(CLng(Me.TextBox2), Sheets("Barcode").Range("K2:N50"), 4, 0)
End With
.Cells(emptyrow, 1).Value = TextBox1.Value 'date
.Cells(emptyrow, 2).Value = ComboBox3.Value 'factory
.Cells(emptyrow, 3).Value = TextBox5.Value 'stlye
.Cells(emptyrow, 4).Value = TextBox3.Value 'colors
.Cells(emptyrow, 5).Value = ComboBox4.Value 'size
.Cells(emptyrow, 6).Value = ComboBox2.Value 'note
.Cells(emptyrow, 7).Value = ComboBox1.Value 'name
.Cells(emptyrow, 8).Value = TextBox2.Value 'barcode
.Cells(emptyrow, 9).Value = TextBox4.Value 'number
.Range("m2").Value = WorksheetFunction.SumIf(Range("H2:H500"), Range("K2"), Range("I2:I500"))
.Range("m3").Value = WorksheetFunction.SumIf(Range("H2:H500"), Range("K3"), Range("I2:I500"))
.Range("m4").Value = WorksheetFunction.SumIf(Range("H2:H500"), Range("K4"), Range("I2:I500"))
.Range("m5").Value = WorksheetFunction.SumIf(Range("H2:H500"), Range("K5"), Range("I2:I500"))
.Range("m6").Value = WorksheetFunction.SumIf(Range("H2:H500"), Range("K6"), Range("I2:I500"))
.Range("m7").Value = WorksheetFunction.SumIf(Range("H2:H500"), Range("K7"), Range("I2:I500"))
.Range("m8").Value = WorksheetFunction.SumIf(Range("H2:H500"), Range("K8"), Range("I2:I500"))
.Range("m9").Value = WorksheetFunction.SumIf(Range("H2:H500"), Range("K9"), Range("I2:I500"))
.Range("m10").Value = WorksheetFunction.SumIf(Range("H2:H500"), Range("K10"), Range("I2:I500"))
.Range("m11").Value = WorksheetFunction.SumIf(Range("H2:H500"), Range("K11"), Range("I2:I500"))
For Each Rng In Range("l2:l11")
If Rng.Value < Rng.offet(0, 1).Value Then
If MsgBox(" µéͧ¡Ò÷ӵèÍËÃ×ÍäËÁ ", vbYesNo + vbQuestion + vbDefaultButton2, " Close and Save ") = 6 Then
Call Sample2
MsgBox "TOTAL NUMBER ERROR"
Exit Sub
End If
End If
Next rmg
Dim strRowSource As String
With ListBox2
strRowSource = .RowSource
.RowSource = vbNullString
.RowSource = strRowSource
End With
Dim lsRow As Long
With Sheets("Barcode")
lsRow = .Range("a" & .Rows.Count).End(xlUp).Row
End With
ListBox1.RowSource = Sheets("Barcode").Range("A2:i" & lsRow).Address(external:=True)
With ListBox1
.ListIndex = .ListCount - 1
.Selected(.ListCount - 1) = True
End With
End With
End Sub
Re: Msg แจ้งเตือน
Posted: Sat Feb 23, 2019 2:28 pm
by snasui

สิ่งที่ตอบมาไม่ใช่สิ่งที่แจ้งไป ผมแจ้งให้ลำดับวิธีทดสอบเพื่อให้เกิดปัญหาครับ
สำหรับการโพสต์ Code กรุณาโพสต์ Code ให้แสดงเป็น Code เพื่อสะดวกในการอ่านดูกฎการใช้บอร์ดข้อ 5 ด้านบนประกอบครับ
Code ที่ผมตอบไปมีคำผิด
ให้แก้
If Rng.Value < Rng.offet(0, 1).Value Then เป็น
If Rng.Value < Rng.offset(0, 1).Value Then ครับ
Re: Msg แจ้งเตือน
Posted: Sat Feb 23, 2019 2:48 pm
by Leng
ต้องขอโทษด้วยครับ สามารถแจ้งเตือนได้แล้วครับ
แต่ปัญหาคือ พอใส่โค๊ด อื่นที่ไม่เกินจำนวนที่ตั้งไว้ ก็ จะมี msg ขึ้นมาตลอดเลยครับ
สิ่งที่ต้องการคือ
ถ้าโค๊ดใน cloumn M มีผลรวมมากกว่า cloumn L ให้แจ้งเตือนครับเช่น
โค๊ด 123 ต้อง มีจำนวน แค่ 2 แล้วผลรวมของ cloumn M ต้องไม่เกิน cloumn L ครับ
Re: Msg แจ้งเตือน
Posted: Sat Feb 23, 2019 3:00 pm
by snasui

Code นั้นถูกต้องแล้วครับ
เป็นการเช็คว่า L น้อยกว่า M หรือไม่ ถ้าน้อยกว่าให้แจ้งเตือน มีค่าเท่ากับตรวจสอบว่า M มากกว่า L หรือไม่ ถ้ามากกว่าให้แจ้งเตือน
ที่บอกว่าผิดพลาด ทดสอบอย่างไรครับ ช่วยลำดับวิธีการทดสอบมาเป็นขั้นตอน คลิกอะไร กรอกค่าใด ตรงไหน อย่างไร สิ่งเหล่านี้ต้องแจ้งมาด้วยเสมอครับ
Re: Msg แจ้งเตือน
Posted: Sat Feb 23, 2019 3:27 pm
by Leng
ขั้นตอนการทำงานครับ
1.ให้ใส่ข้อมูล จาก userfrom 2 โดยช่องแลกให้กำหนดโค๊ด และช่องที่ 2 กำหนดจำนวนของโค๊ดนั้นๆ ครับ
2.เมื่อเปิดหน้า userfrom 1 มา แล้วทำการ scan bacode bacode ต้องตรงกับข้อที่ 1 ที่กำหนดโค๊ดไว้ใน Userfrom2
3.โค๊ดแต่ละโค๊ดที่ scan ใน userfrom 1 จะทำการ sumif ไว้และเด้งโชว์ใน list box ตลอดครับ
แต่สิ่งที่ต้องการ
เวลา scan ข้อมูลใน userfrom 1 ผมต้องการให้ข้อมูลไม่เกิน จาก userfrom 2 ที่กำหนดไว้ว่าโค๊ด ไหนต้องมีจำนวนเท่าไหร่ครับหากเกินให้มีข้อความแจ้งเตือน Yes/no เพื่อต้องการถามว่าคุณต้องการทำต่อหรือไม่
Re: Msg แจ้งเตือน
Posted: Sat Feb 23, 2019 3:37 pm
by snasui

ไม่ทราบว่าที่แจ้งมาเกี่ยวข้องอะไรกับค่าในคอลัมน์ L และ M เกิดการตรวจสอบค่ากันในขั้นตอนไหนครับ
Re: Msg แจ้งเตือน
Posted: Sat Feb 23, 2019 3:56 pm
by Leng
1. ข้อมูลใน userfrom 2 จะบันทึกลง ใน Cloumn K และ Cloumn L
2. ข้อมูลใน userfrom 1 จะบันทึกลง ใน Cloumn A ถึง Cloumn I และทำการรวมข้อมูลของแต่ละโค๊ด ไว้ใน cloumn M ครับ
ผมเลยคิดว่าถ้าทำแจ้งเตือนโดยอ้างอิงจาก cloumn หน้าจะง่ายครับ โดยถ้าผลรวมแต่ละโค๊ดใน cloumn M เกินผลรวมของโค๊ดในแต่ละโค๊ดใน Cloumn L ก็ให้แจ้งเตือนครับ
Re: Msg แจ้งเตือน
Posted: Sat Feb 23, 2019 4:02 pm
by snasui

ช่วยยกตัวอย่าง Code และจำนวนที่กรอก ปุ่มที่คลิกแล้วเกิดปัญหา จะได้สะดวกในการทดสอบและเข้าถึงปัญหาโดยเร็วที่สุดครับ
Re: Msg แจ้งเตือน
Posted: Sat Feb 23, 2019 4:15 pm
by Leng
ผมได้ทำการใส่ข้อมูลไว้แล้วครับ
สามารถกดเพิ่มข้อมูล ในช่อง barcode ได้เลยครับ
แต่ตอนนี้ปัญหาคือ
พอใส่โค๊ด อื่นที่ไม่เกินจำนวนที่ตั้งไว้ ก็ จะมี msg ขึ้นมาตลอดเลยครับ
สิ่งที่ต้องการคือ
อยากให้ msg ขึ้นเตือนก็ต่อเมื่อมีข้อมูลเกินในแต่ละโค๊ดที่กำหนดครับ
Re: Msg แจ้งเตือน
Posted: Sat Feb 23, 2019 4:35 pm
by snasui

ผมคีย์ 123 ในช่อง Barcode แล้ว Enter ไม่พบการแจ้งเตือนครับ
Re: Msg แจ้งเตือน
Posted: Sat Feb 23, 2019 4:49 pm
by Leng
ต้องพิมพ์ข้อมูลให้เกิน ในข้อมูลที่โชว์ใน list box ก่อนครับ ถึงมีการแจ้งเตือน
Re: Msg แจ้งเตือน
Posted: Sat Feb 23, 2019 4:57 pm
by snasui

ผมจะยังไม่ทดสอบจนกว่าจะระบุค่ามาให้อย่างชัดเจนว่าต้องทำอะไร ที่ตรงไหน อย่างไร ด้วยค่าเท่าใด ถ้าโพสต์มาด้วยข้อความอื่นที่ไม่สื่อถึงสิ่งที่ผมแจ้งมาในโพสต์นี้ผมขออภัยที่จะแจ้งว่าผมขอพิจารณาไม่ตอบครับ