Page 1 of 1

อยากสร้างกล่องข้อความขึ้นมาแจ้งเตือนตามเงื่อนไขที่กำหนดไว้(VBA)

Posted: Thu Sep 08, 2016 9:12 pm
by kio2002
เรียนทุกท่าน
ผมได้ทำ VBA ลบแถวที่มีค่าเป็น 0 หรือไม่มีค่าใดๆ ในเซลล์ที่กำหนดไว้ระหว่าง A10 ถึง A20
แต่พอใส่จำนวนสินค้า ในเซลล์ A10ถึงA20ทุกเซลล์เป็นค่าใดๆ เช่น 1,2,6,7 มันจะมีกล่องข้อความขึ้นมาแจ้ง "run-time error '1004':
"No cells werw found."

แต่ผมอยากให้มีกล่องข้อความขึ้นมาแจ้งเตือนตามที่เรากำหนดโดยมีเงื่อนไขตามด้างล่างนี้
ถ้ากรณี เซลล์ระหว่าง A10 ถึง A20 มีค่าใดๆ เช่น 1,2,5 ตั้งแต่เซลล์ระหว่าง A10 ถึง A20 ที่ไม่ใช่ 0 หรือค่าว่างเปล่า
อยากให้มีกล่องข้อความโชว์ขึ้นมาแจ้งเตือน "จำนวนสินค้าเต็มทุกรายการ" โดยที่เราเลือกปิดกล่องข้อความที่เครื่องหมาย X ด้านบนขวามือ
ผมได้แนบไฟล์ excel มาให้ด้วยครับ

โดยโค้ดที่เขียนไว้ดังนี้

Code: Select all

Sub ÊÕèàËÅÕèÂÁ¼×¹¼éÒ1_Click()
Dim rng As Range
    For Each rng In Sheets("sheet1").Range("a10", "a20")
        If rng.Value = 0 Then
            rng.Value = ""
        End If
    Next rng
    Sheets("sheet1").Range("a10", "a20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
รบกวนทุกท่านช่วยดูโค้ดด้วยครับ ขอบคุณครับ

Re: อยากสร้างกล่องข้อความขึ้นมาแจ้งเตือนตามเงื่อนไขที่กำหนดไว้(VBA)

Posted: Thu Sep 08, 2016 9:28 pm
by PichaiTC
Range("a10", "a20")
เปลี่ยนเป็น
Range("a10:a20")

Sheets("sheet1").Range("a10", "a20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
บรรทัดนี้ ถ้าไม่มี Blank ก็จะ error ครับ ต้องเพิ่ม error handler ครับ

Re: อยากสร้างกล่องข้อความขึ้นมาแจ้งเตือนตามเงื่อนไขที่กำหนดไว้(VBA)

Posted: Thu Sep 08, 2016 9:30 pm
by snasui
:D ตัวอย่าง Code ครับ

Code: Select all

Sub สี่เหลี่ยมผืนผ้า1_Click()
    Dim rng As Range
    Dim c As Long
    For Each rng In Sheets("sheet1").Range("a10", "a20")
        If rng.Value = 0 Then
            rng.Value = ""
            c = c + 1
        End If
    Next rng
    If c = 0 Then
        MsgBox "จำนวนสินค้าเต็มทุกรายการ"
    Else
        Sheets("sheet1").Range("a10", "a20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    End If
End Sub

Re: อยากสร้างกล่องข้อความขึ้นมาแจ้งเตือนตามเงื่อนไขที่กำหนดไว้(VBA)

Posted: Fri Sep 09, 2016 4:45 pm
by kio2002
ขอบคุณ คุณ snasui มากๆครับ โค้ดตรงตามที่การครับ