Page 1 of 1

สอบถามสูตร VBA ถ้าพบว่า Cell ว่างให้แจ้งเตือน

Posted: Mon Jul 20, 2015 5:26 pm
by jakawan
เรียนสอบถามครับ
Code

Code: Select all

If WorksheetFunction.Count (Range("C9,C10,D10")) >3 Then
    MsgBox ("กรุณากรอกข้อมูล")
    End If
สูตรนี้จะได้เฉพาะตัวเลขครับ ถ้าเป็นตัวอักษรจะไม่ได้ พอจะมีวิธีที่จะปรับสูตร VBA เป็นถ้าพบว่า Cell C9,C10,D10 ว่างให้แจ้งเตือน "กรุณากรอกข้อมูล" ต้องเปลี่ยนค่าจาก Count เป็นอะไรดีครับ ขอบคุณครับ

Re: สอบถามสูตร VBA ถ้าพบว่า Cell ว่างให้แจ้งเตือน

Posted: Mon Jul 20, 2015 8:38 pm
by snasui
:D ตัวอย่าง Code ครับ
If range("c9")="" or range("c10")="" or range("d10")="" then

Re: สอบถามสูตร VBA ถ้าพบว่า Cell ว่างให้แจ้งเตือน

Posted: Tue Jul 21, 2015 10:52 am
by jakawan
ได้แล้วครับ ขอบคุณครับ

Re: สอบถามสูตร VBA ถ้าพบว่า Cell ว่างให้แจ้งเตือน

Posted: Tue Jul 21, 2015 4:33 pm
by jakawan
เรียนถามเพิ่มเติมครับ ถ้าเราต้องการให้ ปุ่ม Botton ไม่ทำงานด้วย ในกรณีที่ใส่ข้อมูลไม่ครบ ตามด้านบน เราควรเพิ่มCODEส่วนไหนครับ :D

Code: Select all

If range("c9")="" or range("c10")="" or range("d10")="" then
MsgBox ("กรุณากรอกข้อมูล")
End If

Re: สอบถามสูตร VBA ถ้าพบว่า Cell ว่างให้แจ้งเตือน

Posted: Tue Jul 21, 2015 4:51 pm
by snasui
:D ปุ่มชื่ออะไร อยู่ที่ไฟล์ไหน ชีทไหน จำเป็นต้องทราบรายละเอียดและเขียนเพื่อกำหนดค่ามาเองก่อน Code ด้านบนไม่เกียวกับการกำหนดค่าปุ่มให้ Disable ครับ

Re: สอบถามสูตร VBA ถ้าพบว่า Cell ว่างให้แจ้งเตือน

Posted: Tue Jul 21, 2015 5:14 pm
by jakawan
ปุ่มอยู่ใน sheet Input ครับ ซึ่ง CODE ที่ได้ปรึกษามาวางแบบนี้ครับ

Code: Select all

Sub Paste()
    Dim irRange As Variant
    Dim i As Integer, rw As Long
    irRange = Array("C9", "C10", "d10", "F10", "C11", "g11", _
        "C12", "C14", "G14", "L14", "C15", "G15", _
        "L15", "C16", "G16", "L16", "D17", "J17", "C18", "E18", "G18", "I18", "K18", "C19", "G19", "C20", "F20", "J20", "L20", _
        "C21", "F21", "J21", "C22", "E22", "H22", "J22", "C24", "F24", "J24", "E25", "G25", "I25", "K25", "e26", "G26", "i26", "k26", "b29", "b30", "b31", "b32", "b33", _
        "A40", "A47", "C51", "E51", "H51", "C66", "j66", _
        "A55", "C55", "D55", "G55", "j55", _
        "A57", "C57", "D57", "G57", "j57", _
        "A59", "C59", "D59", "G59", "j59", _
        "A61", "C61", "D61", "G61", "j61", _
        "A63", "C63", "D63", "G63", "j63", _
        "A65", "C65", "D65", "G65", "j65")
    rw = Worksheets("Database").Range("a" & Rows.Count).End(xlUp).Row + 1
    For i = 0 To UBound(irRange)
        With Worksheets("Database")
            .Range("a" & rw).Offset(0, i).Value = Sheets("Input").Range(irRange(i)).Value
        End With
    Next i
    If Range("c9") = "" Or Range("c10") = "" Or Range("d10") = "" Or Range("f10") = "" Or Range("C11") = "" Or Range("G11") = "" Or Range("c12") = "" Or Range("c14") = "" Or Range("g14") = "" Or Range("l14") = "" Or Range("c15") = "" Or Range("g15") = "" Or Range("l15") = "" Or Range("g16") = "" Then
    MsgBox ("กรุณาเติมข้อมูล*ให้ครบ")
    End If
End Sub

Re: สอบถามสูตร VBA ถ้าพบว่า Cell ว่างให้แจ้งเตือน

Posted: Tue Jul 21, 2015 5:26 pm
by snasui
:D หากหมายถึงให้คลิกปุ่ม Paste ตามด้านบนไม่ได้ กรณีกรอกข้อมูลไม่ครบ จะต้องเขียน Code ขึ้นมาใหม่ เป็นการตรวจสอบก่อนคลิกปุ่ม Paste โดยลักษณะการทำงานของ Code คือหากตรวจสอบแล้วกรอกข้อมูลไม่ครบจะทำให้ปุ่ม Paste คลิกไม่ได้ เช่นนี้ครับ

ไม่ใช่นำการตรวจสอบไปใส่ไว้ในปุ่ม Paste เพราะหากใส่ไว้ ปุ่ม Paste จะต้องคลิกได้เสมอ