Page 2 of 2
Re: รบกวนช่วยดู code
Posted: Mon Feb 13, 2017 10:03 am
by snasui

ตัวอย่างการ Loop เพื่อแสดงผลว่าเซลล์ใดครบกำหนด ลองนำไปปรับใช้ดูครับ
Code: Select all
Sub Msgbox_show()
Dim rall As Range
For Each r In Range("L3:L203")
If r.Value = "ครบกำหนด" Then
MsgBox r.Address(0, 0) & " ครบกำหนดแล้ว"
End If
Next r
End Subb
Re: รบกวนช่วยดู code
Posted: Mon Feb 13, 2017 10:10 am
by rich37
snasui wrote:
ตัวอย่างการ Loop เพื่อแสดงผลว่าเซลล์ใดครบกำหนด ลองนำไปปรับใช้ดูครับ
Code: Select all
Sub Msgbox_show()
Dim rall As Range
For Each r In Range("L3:L203")
If r.Value = "ครบกำหนด" Then
MsgBox r.Address(0, 0) & " ครบกำหนดแล้ว"
End If
Next r
End Subb
ใช้ได้ครับ แต่จะให้แสดงเมื่อเปิดไฟล์ ครบนัด ได้อย่างไรครับ เมื่อเงื่อนไขเป็นจริง รบกวนด้วยครับ
Re: รบกวนช่วยดู code
Posted: Mon Feb 13, 2017 10:15 am
by snasui

แสดงเมื่อเปิดไฟล์ต้องเรียกใช้จาก Event Open ครับ ตัวอย่าง
http://www.excel-easy.com/vba/events.html
Re: รบกวนช่วยดู code
Posted: Mon Feb 13, 2017 10:21 am
by rich37
ขอบคุณมากๆครับอาจารย์ ตรงตามความต้องการทุกอย่างแล้วครับ
Re: รบกวนช่วยดู code
Posted: Mon Feb 13, 2017 11:18 am
by rich37
Code: Select all
Sub Msgbox_show()
Dim rall As Range
For Each r In Range("L3:L203")
If r.Value = "ครบกำหนด" Then
MsgBox r.Address(0, 0) & " ครบกำหนดแล้ว"
End If
Next r
End Subb
Code ด้านบนจะวนไปจนกว่าจะครบตามเงื่อนไข ถ้าต้องการจะให้โชว์ Msgbox แค่ครั้งเดียวไม่ว่าจะมีกี่เซลส์ก็ตามที่ครบกำหนดได้หรือไม่ครับ
Re: รบกวนช่วยดู code
Posted: Mon Feb 13, 2017 11:37 am
by snasui

ต้องปรับมาเองก่อน ติดแล้วค่อยถามกันต่อครับ
Re: รบกวนช่วยดู code
Posted: Mon Feb 13, 2017 1:14 pm
by rich37
มีปัญหาใหม่เกิดขึ้นครับจาก Code ด้านล่าง เริ่มต้นจากถ้าข้อมูลในชีต Data ไม่มีข้อมูลแล้วกดส่งข้มูล สูตรที่สร้างไว้ในชีตจะถูกลบไปทั้งหมดผมเลยใส่ Msgbox ( If Worksheets("Data").Range("A3") = "" Then
MsgBox "คุณไม่มีข้อมูลที่จะส่งไป กรุณากรอกข้อมูลก่อน", vbExclamation, "กรุณากรอกข้อมูล"
Else )เตือนไว้ก็ใช้ได้ผล แต่พอชีต Data มีข้อมูล( ไม่เข้าเงื่อนไข ActiveSheet.Range("$A$2:$M$202").AutoFilter Field:=12, Criteria1:="ครบกำหนด" ) ก็เกิด error ตามรูปแนบ พาสปลดล็อค 123456789 ครับ
Code: Select all
Private Sub CommandButton1_Click()
If Worksheets("Data").Range("A3") = "" Then
MsgBox "คุณไม่มีข้อมูลที่จะส่งไป กรุณากรอกข้อมูลก่อน", vbExclamation, "กรุณากรอกข้อมูล"
Else
ActiveSheet.Unprotect
Selection.AutoFilter
ActiveSheet.Range("$A$2:$M$202").AutoFilter Field:=12, Criteria1:="ครบกำหนด"
Sheets("Data").Range("Source").Copy Sheets("Report").Range("Target")
Range("Source").ClearContents
ActiveSheet.Range("$A$2:$M$202").AutoFilter Field:=12
Sheets("Data").Range("Source").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveWorkbook.Save
Application.DisplayAlerts = False
Application.Quit
End If
End Sub
Re: รบกวนช่วยดู code
Posted: Mon Feb 13, 2017 3:50 pm
by rich37
ปัญหาแก้ไขได้แล้ว เล่นเอาเหนื่อย ขอบคุณอาจารย์ที่แนะนำครับ