Page 1 of 1

พบ Cell ว่างที่กำหนดให้แจ้งเตือน

Posted: Fri Jul 13, 2018 4:26 pm
by liveday
เรียนอาจารย์ทุกท่าน
ผมต้องการให้ข้อมูลใส่ให้ครบช่องในแถวนั้นๆครับ ถ้าไม่ครบให้แจ้งเตือน ข้อมูลที่ต้องใส่
หลังจากเราใส่ ID Code ที่ FromIn Cell C17 แล้วข้อมูลจะขึ้นมา และที่ Sheet FromIn Cell H17 ต้องใส่จำนวน แต่ถ้าไม่ใส่หรือเป็นค่าว่างให้แจ้งเตือนครับ และข้อมูลที่ต้องใส่เพิ่ม C18-C31 ก็ต้องทำเหมือนกันครับ ผมได้ใส่สูตรนี้ไป

Code: Select all

  If Worksheets("FormIn").Range("H17") = "" Then 
    MsgBox "กรุณาใส่ข้อมูลให้ครบ"
    Exit Sub
End If
ผลลัพท์ได้แค่ C17 ช่องเดียว ในส่วน Cell ที่เหลือจะต้องปรับ Code อย่างไรครับ เพื่อให้ถูกต้องครับ โดยการให้ Code เช็คข้อมูลว่า A17-G17 ใส่ข้อมูลมาแล้วก็ให้บังคับให้ใส่จำนวนตามเข้าไป ถ้าไม่ใส่ก็ให้แสดงเตือนครับ

ขอบคุณครับ

Re: พบ Cell ว่างที่กำหนดให้แจ้งเตือน

Posted: Fri Jul 13, 2018 5:14 pm
by Serverchita
จริงแล้วใช้ Conditional Formatting ก็ได้ครับจะได้ไม่ยุ้งยาก

ตามตัวอย่างนะครับ

=AND($C17<>"",$H17="")

Re: พบ Cell ว่างที่กำหนดให้แจ้งเตือน

Posted: Fri Jul 13, 2018 7:02 pm
by snasui
:D กรุณาแจ้ง Procedure ที่ติดปัญหา ลำดับการทดสอบ ค่าที่ใช้ในการทดสอบ จะได้เข้าถึงปัญหาได้โดยเร็วครับ

Re: พบ Cell ว่างที่กำหนดให้แจ้งเตือน

Posted: Fri Jul 13, 2018 8:52 pm
by liveday
ขั้นตอนเมื่อผมใส่ข้อมูล รหัสสินค้าที่ FormIn Cell C17 ข้อมูลที่ Vlookup จะขึ้นมา แต่ว่าในช่องจำนวนที่ Cell H17 ซึ่งจะต้องใส่ข้อมูลเองครับ ที่นี้ผมต้องการดักไว้จะได้แจ้งเตือนเวลาใส่ข้อมูล เพื่อไม่ให้ลืมใส่จำนวนครับ ลำดับที่ใส่ที่ FormIn Command(บันทึกข้อมูล)

Code: Select all

Sub record()
Dim rs As Range, rt As Range
Dim i As Integer
Dim rc As Range
Worksheets("FormIn").Range("H9") _
     = Application.Max(Worksheets("Import") _
        .Range("B:B")) + 1
With Worksheets("Template")
    i = Application.CountIf( _
            .Range("L2:L15"), ">0")
    Set rs = .Range("A2:M" & 1 + i)
    If Worksheets("FormIn").Range("H17") = "" Then 
    MsgBox "กรุณาใส่ข้อมูลให้ครบถ้วน"
    Exit Sub
End If
End With
    Set rt = Worksheets("Import") _
        .Range("A65536").End(xlUp).Offset(1, 0)
    rs.Copy
    rt.PasteSpecial xlPasteValues
    Application.CutCopyMode = False
MsgBox "Finish"

End Sub 
Code นี้ทำงานเฉพาะที่ Cell H17 ซึ่งเป็นการบังคับให้ใส่ข้อมูลเฉยๆครับ ถ้าผมต้องการให้ Cell H17 เช็คข้อมูลด้วยว่าข้อมูลมี่ A17-G17 ใส่ครบถ้วนแล้ว และถ้า Cell H17 ถ้ายังไม่ใส่ก็ให้แจ้งเตือนครับ

Code: Select all

    If Worksheets("FormIn").Range("H17") = "" Then 
    MsgBox "กรุณาใส่ข้อมูลให้ครบถ้วน"
    Exit Sub

Re: พบ Cell ว่างที่กำหนดให้แจ้งเตือน

Posted: Sat Jul 14, 2018 5:12 am
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub record()
    Dim rs As Range, rt As Range
    Dim i As Integer, r As Range
    Dim rc As Range
    Worksheets("FormIn").Range("H9") _
         = Application.Max(Worksheets("Import") _
            .Range("B:B")) + 1
    With Worksheets("Template")
        i = Application.CountIf( _
                .Range("L2:L15"), ">0")
        Set rs = .Range("A2:M" & 1 + i)
    With Worksheets("FormIn")
        If .Range("c17").Value = "" Then Exit Sub
        For Each r In .Range("c17", .Range("c32").End(xlUp))
            If r.Value <> "" And r.Offset(0, 5).Value = "" Then
                MsgBox "â»Ã´ÃкػÃÔÁÒ³ã¹à«ÅÅì " & r.Offset(0, 5).Address(0, 0)
                Exit Sub
            End If
        Next r
    End With
    End With
    Set rt = Worksheets("Import") _
            .Range("A65536").End(xlUp).Offset(1, 0)
    rs.Copy
    rt.PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    MsgBox "Finish"
    
End Sub