Page 1 of 1
MsgBox กับ IF ไม่ทำตามเงื่อนไขครับ
Posted: Tue Mar 07, 2017 2:32 pm
by myjrcenter
ต้องการให้เมื่อกดปุ่ม พิมพ์และบันทึก ให้ VBA ตรวจสอบใน sheets "ทำรายการ" Range "C8" ว่ามีค่าปรับหรือไม่ ถ้าไม่มีค่าปรับ ให้พิมพ์และบันทึก ถ้ามีตั้งแต่ 1 บาทขึ้นไปให้โชว์ MsgBox กด Yes ให้พิมพ์และบันทึก กด No ให้กลับมาแก้ไขครับ ผมลองเขียนดูแล้วถ้ามีค่าปรับจะได้ผลตามต้องการ แต่ถ้าไม่มีค่าปรับ มันไม่สามารถพิมพ์ได้ รบกวนช่วยตรวจสอบให้ด้วยครับ ขอบคุณครับ
Code: Select all
Sub พิมพ์และบันทึก()
If Worksheets("ทำรายการ").Range("C8") > 0 Then
Dim x As Integer
x = MsgBox("มีค่าปรับต้องการพิมพ์ต่อใช่หรือไม่", vbYesNo)
If x = vbNo Then
Sheets("·ทำรายการ").Range("C8").Select
Else
Sheets("ใบเสร็จ¨").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End If
End If
Sheets("ทำรายการ").Select
Range("C4").Select
Sheets("ทำรายการ").Range("C4").Copy
With Sheets("เก็บข้อมูล")
.Range("B" & .Range("B" & Rows.Count).End(xlUp).Row).Offset(1, 0).PasteSpecial xlPasteValues
End With
Range("C4").Select
ActiveWorkbook.save
End Sub
Re: MsgBox กับ IF ไม่ทำตามเงื่อนไขครับ
Posted: Tue Mar 07, 2017 3:19 pm
by puriwutpokin
ปรับเพิ่มเป็น
Code: Select all
Sub ¾ÔÁ¾ìáÅкѹ·Ö¡()
'If Worksheets("·ÓÃÒ¡ÒÃ").Range("C8") > 0 Then ยกเลิกอันนี้
Dim x As Integer
x = MsgBox("ÁÕ¤èÒ»ÃѺµéͧ¡ÒþÔÁ¾ìµèÍãªèËÃ×ÍäÁè", vbYesNo)
If x = vbNo Then
Sheets("·ÓÃÒ¡ÒÃ").Range("C8").Select
Else
Sheets("ãºàÊÃç¨").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End If
' End If ยกเลิกอันนี้
Sheets("·ÓÃÒ¡ÒÃ").Select
Range("C4").Select
Sheets("·ÓÃÒ¡ÒÃ").Range("C4").Copy
With Sheets("à¡çº¢éÍÁÙÅ")
.Range("B" & .Range("B" & Rows.Count).End(xlUp).Row).Offset(1, 0).PasteSpecial xlPasteValues
End With
Range("C4").Select
ActiveWorkbook.Save
End Sub
Re: MsgBox กับ IF ไม่ทำตามเงื่อนไขครับ
Posted: Tue Mar 07, 2017 3:43 pm
by myjrcenter
คือถ้าไม่มีค่าปรับ (เซลล์ C8 มีค่าเป็นศูนย์) ไม่ต้องการให้ MsgBox โชว์ครับ ให้ข้ามไปพิมพ์แล้วก็บันทึกเลยได้มั้ยครับ
Re: MsgBox กับ IF ไม่ทำตามเงื่อนไขครับ
Posted: Tue Mar 07, 2017 4:27 pm
by Serverchita
ปรับให้แล้วครับ
Code: Select all
Sub พิมพ์และบันทึก()
If Worksheets("ทำรายการ").Range("C8") > 0 Then
Dim x As Integer
x = MsgBox("มีค่าปรับต้องการพิมพ์ต่อใช่หรือไม่", vbYesNo)
If x = vbNo Then
Sheets("·ทำรายการ").Range("C8").Select
Else
Sheets("ใบเสร็จ¨").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End If
Else
Sheets("ใบเสร็จ¨").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End If
Sheets("ทำรายการ").Select
Range("C4").Select
Sheets("ทำรายการ").Range("C4").Copy
With Sheets("เก็บข้อมูล")
.Range("B" & .Range("B" & Rows.Count).End(xlUp).Row).Offset(1, 0).PasteSpecial xlPasteValues
End With
Range("C4").Select
ActiveWorkbook.save
End Sub
Re: MsgBox กับ IF ไม่ทำตามเงื่อนไขครับ
Posted: Tue Mar 07, 2017 4:29 pm
by puriwutpokin
ปรับเป็น
Code: Select all
Sub พิมพ์และบันทึก()
If Worksheets("ทำรายการ").Range("C8") > 0 Then
Dim x As Integer
x = MsgBox("มีค่าปรับต้องการพิมพ์ต่อใช่หรือไม่", vbYesNo)
If x = vbNo Then
Sheets("ทำรายการ").Range("C8").Select
Else
Sheets("ใบเสร็จ").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End If
Else
If Worksheets("ทำรายการ").Range("C8") = 0 Then
Sheets("ใบเสร็จ").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End If
End If
Sheets("ทำรายการ").Select
Range("C4").Select
Sheets("ทำรายการ").Range("C4").Copy
With Sheets("เก็บข้อมูล")
.Range("B" & .Range("B" & Rows.Count).End(xlUp).Row).Offset(1, 0).PasteSpecial xlPasteValues
End With
Range("C4").Select
ActiveWorkbook.Save
End Sub
Re: MsgBox กับ IF ไม่ทำตามเงื่อนไขครับ
Posted: Tue Mar 07, 2017 4:41 pm
by myjrcenter
ใช้โค๊ดของคุณ puriwutpokin ได้ตามที่ต้องการเลยครับ
ขอขอบคุณ คุณ puriwutpokin และ คุณ Serverchita ทั้งสองท่านมากเลยครับ
Re: MsgBox กับ IF ไม่ทำตามเงื่อนไขครับ
Posted: Tue Mar 07, 2017 4:57 pm
by Serverchita