Page 1 of 5

สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Mon Aug 06, 2018 5:15 pm
by Leng
ผมไม่แน่ใจว่าผมตั้งชื่อกระทู้ถูกไหม (ต้องขอโทษด้วยนะครับ)

ผมต้องการกำหนดค่าครับโดยที่ ให้ Barcode 123 สามารถ ใช้ได้ เฉพาะ Box 1-2 เท่านั้น ถึงจะขึ้น stlye และ run ข้อมูลเรื่อยๆ หากจำนวน box ไม่ตรงกับ barcode ก็ไม่สามารถทำได้

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Mon Aug 06, 2018 8:38 pm
by snasui
:D ต้องการเป็นสูตรหรือว่าเป็น Code หรือลักษณะใดกรุณาแจ้งรายละเอียดมาด้วยครับ

ในเบื้องต้นคำตอบคือ สามารถทำได้ครับ

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Tue Aug 07, 2018 8:02 am
by Leng
ผมต้องการเขียนเป็น code ครับแต่ผมไม่รู้จะเริ่มจากอะไร
ผมต้องการดึงข้อมูลจาก DataX โดยในข้อมูลผมจะมี Box กับ End Box ครับโดยผมอยากให้
10001 สามารถใช้ได้กล่อง 1-20 เท่านั้น
10002สามารถใช้ได้กล่อง 21-40 เท่านั้น :flw: :flw:

Code: Select all

Private Sub TextBox5_AfterUpdate()

With Workbooks("DataX.xlsx").Worksheets("Sheet1")
    Set rngVlp = .Range("a2", .Range("d" & .Rows.Count).End(xlUp))
End With
With ThisWorkbook.Worksheets("IN")
    emptyrow = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0).Row
End With
If Me.TextBox5.Text = "10020" Then
Worksheets("IN").Cells(emptyrow - 1, 1).EntireRow.Delete
End If
With Workbooks("DataX.xlsx").Worksheets("Sheet1")
Set rngVlp = .Range("a2", .Range("d" & .Rows.Count).End(xlUp))
If Me.TextBox5.Text = "" Then Exit Sub
If WorksheetFunction.CountIf(Workbooks("DataX.xlsx").Worksheets("Sheet1").Range("A:D"), Me.TextBox5.Value) = 0 Then
'Me.TextBox5.Value = ""
Call Sample2
MsgBox "Not found."
Exit Sub
End If
    Me.TextBox6.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 2, 0)
    Me.TextBox7.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 3, 0)
    Me.TextBox8.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 4, 0)
End With
With ThisWorkbook.Worksheets("IN")
    emptyrow = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0).Row
   End With
With Worksheets("IN")
    .Cells(emptyrow, 1).Value = TextBox1.Value
    .Cells(emptyrow, 2).Value = TextBox2.Value
    .Cells(emptyrow, 3).Value = TextBox4.Value
    .Cells(emptyrow, 4).Value = ComboBox1.Value
    .Cells(emptyrow, 5).Value = TextBox5.Value
    .Cells(emptyrow, 6).Value = TextBox6.Value
    .Cells(emptyrow, 7).Value = TextBox7.Value
    .Cells(emptyrow, 8).Value = TextBox8.Value
    .Cells(emptyrow, 9).Value = TextBox9.Value
End With
    Dim lsRow As Long
    With Sheets("IN")
        lsRow = .Range("a" & .Rows.Count).End(xlUp).Row
    End With
     ListBox1.RowSource = Sheets("IN").Range("A3:I" & lsRow).Address(external:=True)
    With ListBox1
        .ListIndex = .ListCount - 1
        .Selected(.ListCount - 1) = True
    End With
End Sub

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Tue Aug 07, 2018 7:09 pm
by snasui
Leng wrote: Tue Aug 07, 2018 8:02 am ข้อมูลผมจะมี Box กับ End Box ครับโดยผมอยากให้
:D ข้อมูล Box กับ End Box อยู่ตรงไหน
Leng wrote: Tue Aug 07, 2018 8:02 am10001 สามารถใช้ได้กล่อง 1-20 เท่านั้น
10002สามารถใช้ได้กล่อง 21-40 เท่านั้น
กล่องนี้อยู่ตรงไหนครับ

จำเป็นต้องเขียน Code มาเองก่อนเสมอ แจ้งมาด้วยว่าเขียนไว้ตรงไหน ติดขัดบรรทัดใด จะได้ตอบต่อไปจากนั้นครับ

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Wed Aug 08, 2018 6:10 pm
by Leng
ผมต้องการกำหนดให้ Stlye/Size/Colors สามารถแสดงได้ ก็ต่อเมื่อ Box กับ Barcode ตรงกันเท่านั้น
Barcode / 10001
Stlye / MG001
Size / S
Colors / white
Box / 1
Total box / 10

Code: Select all

Private Sub TextBox5_AfterUpdate()
With Workbooks("DataX.xlsx").Worksheets("Sheet1")
Set rngVlp = .Range("a2", .Range("f" & .Rows.Count).End(xlUp))
End With

With ThisWorkbook.Worksheets("IN")
emptyrow = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0).Row
End With

If Me.TextBox5.Text = "10020" Then
 If MsgBox(" Finish this carton ?", vbYesNo + vbQuestion + vbDefaultButton2, " Close and Save ") = 6 Then
     '....
     End If
    Worksheets("IN").Cells(emptyrow - 1, 1).EntireRow.Delete
End If

With Workbooks("DataX.xlsx").Worksheets("Sheet1")
Set rngVlp = .Range("a2", .Range("f" & .Rows.Count).End(xlUp))
If Me.TextBox5.Text = "" Then Exit Sub
If WorksheetFunction.CountIf(Workbooks("DataX.xlsx").Worksheets("Sheet1").Range("A:F"), Me.TextBox5.Value) = 0 Then
'Me.TextBox5.Value = ""
MsgBox "Not found."
Exit Sub
End If
    Me.TextBox6.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 2, 0)
    Me.TextBox7.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 3, 0)
    Me.TextBox8.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 4, 0)
End With
With ThisWorkbook.Worksheets("IN")
    emptyrow = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0).Row
   End With
    With Worksheets("IN")
        .Cells(emptyrow, 1).Value = TextBox1.Value
        .Cells(emptyrow, 2).Value = TextBox2.Value
        .Cells(emptyrow, 3).Value = TextBox4.Value
        .Cells(emptyrow, 4).Value = ComboBox1.Value
        .Cells(emptyrow, 5).Value = TextBox5.Value
        .Cells(emptyrow, 6).Value = TextBox6.Value
        .Cells(emptyrow, 7).Value = TextBox7.Value
        .Cells(emptyrow, 8).Value = TextBox8.Value
        .Cells(emptyrow, 9).Value = TextBox9.Value
    End With

End Sub

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Wed Aug 08, 2018 8:19 pm
by snasui
:D ค่อย ๆ ถามตอบกันไปครับ

ตรวจสอบจากอะไรว่าตรงหรือไม่ตรงครับ :?:

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Wed Aug 08, 2018 8:27 pm
by Leng
จากคำถาม #5 ครับ ผมต้องการกำหนดให้ Stlye/Size/Colors สามารถแสดงได้ ก็ต่อเมื่อ Box กับ Barcode ตรงกันเท่านั้น
เหมือนเป็นการใช้ VLOOKUP+MATCH แต่ผมอยากนำมาเขียนใน vba ครับ โดยดึงฐานขอมูลจากไฟล์ Datax ให้มาแสดงบนไฟล์ Final ครับ

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Wed Aug 08, 2018 8:53 pm
by snasui
Leng wrote: Wed Aug 08, 2018 8:27 pm ผมต้องการกำหนดให้ Stlye/Size/Colors สามารถแสดงได้ ก็ต่อเมื่อ Box กับ Barcode ตรงกันเท่านั้น
:D ถ้า Box กับ Barcode ตรงกันแล้ว ให้ tlye/Size/Colors ที่ว่านั้นแสดงได้ที่ตำแหน่งไหนครับ :?:

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Wed Aug 08, 2018 9:45 pm
by Leng
ผมทำ vlookup ไว้โดยถ้า scan ตรง barcode ข้อมูลก็จะขึ้นปกติครับแต่ผมอยากเพิ่มว่าถ้าข้อมูล box กับ barcode ไม่ตรงกันตามฐานข้อมูลข้อมูลก็จะไม่ขึ้นโดยมี msg เตือนครับ

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Thu Aug 09, 2018 6:49 am
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

'Other code
If Me.TextBox5.Text = "" Then Exit Sub
    If WorksheetFunction.CountIfs(Workbooks("DataX.xlsx").Worksheets("Sheet1").Range("A:A"), Me.TextBox5.Value, _
        Workbooks("DataX.xlsx").Worksheets("Sheet1").Range("f:f"), Me.TextBox2.Value) = 0 Then
    'Me.TextBox5.Value = ""
    MsgBox "Not found."
    Exit Sub
End If
'Other code

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Thu Aug 09, 2018 8:32 am
by Leng
ได้แล้วครับ แต่ผมอยากให้ msg แจ้งเตือนแยกกัน
-ใส่จำนวนกล่องแล้ว แต่บาร์โค๊ดผิด ให้ขึ้น Msg = "Please check barcode"
-ไม่ได้ใส่จำนวนกล่อง แต่บาร์โค๊ดถูก ให้ขึ้น MSg = "Please check number box"

Code: Select all

If Me.TextBox5.Text = "" Then Exit Sub
If WorksheetFunction.CountIfs(Workbooks("DataX.xlsx").Worksheets("Sheet1").Range("A:A"), Me.TextBox5.Value, _
Workbooks("DataX.xlsx").Worksheets("Sheet1").Range("E:E"), Me.TextBox2.Value) = 0 Then
'Me.TextBox5.Value = ""
MsgBox "Please check number box"
Else
If WorksheetFunction.CountIf(Workbooks("DataX.xlsx").Worksheets("Sheet1").Range("A:F"), Me.TextBox5.Value) = 0 Then
'Me.TextBox5.Value = ""
MsgBox "Please check barcode"
End If
    Exit Sub
    

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Thu Aug 09, 2018 10:26 pm
by snasui
:D แนบไฟล์ล่าสุดมาด้วยครับ

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Fri Aug 10, 2018 8:24 am
by Leng
รบกวนอาจารย์ด้วยครับ

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Sat Aug 11, 2018 7:06 am
by snasui
:D ไม่พบว่ามีการปรับปรุงมาเองแล้วตามคำถามล่าสุดในไฟล์แนบครับ กรุณาพยายามปรับปรุงมาเองก่อนเสมอ นำเฉพาะส่วนที่ติดปัญหามาถามกันครับ

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Sat Aug 18, 2018 11:18 am
by Leng
อาจารย์ครับผมปรับข้อมูลของบาร์โค๊ดให้ยาวขึ้นครับแต่ พอสแกนแล้วขึ้น error ครับทั้งๆที่พอใช้ข้อมูลของโค๊ดที่มีความสั้นกว่านี้ก็ใช้ได้ปกติครับ

Code: Select all

   Me.TextBox6.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 2, 0)

Code: Select all

Private Sub TextBox5_AfterUpdate()
With Workbooks("DataX.xlsx").Worksheets("Sheet1")
Set rngVlp = .Range("a2", .Range("f" & .Rows.Count).End(xlUp))
End With

With ThisWorkbook.Worksheets("IN")
emptyrow = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0).Row
End With

If Me.TextBox5.Text = "10020" Then
 If MsgBox(" Finish this carton ?", vbYesNo + vbQuestion + vbDefaultButton2, " Close and Save ") = 6 Then
     '....
     End If
    Worksheets("IN").Cells(emptyrow - 1, 1).EntireRow.Delete
End If

If Me.TextBox5.Text = "" Then Exit Sub
    If WorksheetFunction.CountIfs(Workbooks("DataX.xlsx").Worksheets("Sheet1").Range("A:A"), Me.TextBox5.Value, _
        Workbooks("DataX.xlsx").Worksheets("Sheet1").Range("E:E"), Me.TextBox2.Value) = 0 Then
    'Me.TextBox5.Value = ""
    MsgBox "Please check the information."
    Exit Sub
    
End If
    Me.TextBox6.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 2, 0)
    Me.TextBox7.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 3, 0)
    Me.TextBox8.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 4, 0)
With ThisWorkbook.Worksheets("IN")
    emptyrow = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0).Row
   End With
    With Worksheets("IN")
        .Cells(emptyrow, 1).Value = TextBox1.Value
        .Cells(emptyrow, 2).Value = TextBox2.Value
        .Cells(emptyrow, 3).Value = TextBox4.Value
        .Cells(emptyrow, 4).Value = ComboBox1.Value
        .Cells(emptyrow, 5).Value = TextBox5.Value
        .Cells(emptyrow, 6).Value = TextBox6.Value
        .Cells(emptyrow, 7).Value = TextBox7.Value
        .Cells(emptyrow, 8).Value = TextBox8.Value
        .Cells(emptyrow, 9).Value = TextBox9.Value
    End With
    Dim total As Long
    total = WorksheetFunction.Sum(Range("I3:I1048576"))
    Range("A1").Value = total

End Sub

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Sat Aug 18, 2018 11:33 am
by snasui
Leng wrote: Sat Aug 18, 2018 11:18 am Me.TextBox6.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 2, 0)
:D เปลี่ยนจาก CLng เป็น CDbl และเปลี่ยนให้ครบทุกตัวครับ

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Sat Aug 18, 2018 11:38 am
by Leng
ผมลองแก้แล้วครับแต่ก็ยังไม่ได้ครับ

Code: Select all

Private Sub TextBox5_AfterUpdate()
With Workbooks("DataX.xlsx").Worksheets("Sheet1")
Set rngVlp = .Range("a2", .Range("f" & .Rows.Count).End(xlUp))
End With

With ThisWorkbook.Worksheets("IN")
emptyrow = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0).Row
End With

If Me.TextBox5.Text = "10020" Then
 If MsgBox(" Finish this carton ?", vbYesNo + vbQuestion + vbDefaultButton2, " Close and Save ") = 6 Then
     '....
     End If
    Worksheets("IN").Cells(emptyrow - 1, 1).EntireRow.Delete
End If

If Me.TextBox5.Text = "" Then Exit Sub
    If WorksheetFunction.CountIfs(Workbooks("DataX.xlsx").Worksheets("Sheet1").Range("A:A"), Me.TextBox5.Value, _
        Workbooks("DataX.xlsx").Worksheets("Sheet1").Range("E:E"), Me.TextBox2.Value) = 0 Then
    'Me.TextBox5.Value = ""
    MsgBox "Please check the information."
    Exit Sub
    
End If
    Me.TextBox6.Text = Application.VLookup(CDbl(Me.TextBox5.Text), rngVlp, 2, 0)
    Me.TextBox7.Text = Application.VLookup(CDbl(Me.TextBox5.Text), rngVlp, 3, 0)
    Me.TextBox8.Text = Application.VLookup(CDbl(Me.TextBox5.Text), rngVlp, 4, 0)
With ThisWorkbook.Worksheets("IN")
    emptyrow = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0).Row
   End With
    With Worksheets("IN")
        .Cells(emptyrow, 1).Value = TextBox1.Value
        .Cells(emptyrow, 2).Value = TextBox2.Value
        .Cells(emptyrow, 3).Value = TextBox4.Value
        .Cells(emptyrow, 4).Value = ComboBox1.Value
        .Cells(emptyrow, 5).Value = TextBox5.Value
        .Cells(emptyrow, 6).Value = TextBox6.Value
        .Cells(emptyrow, 7).Value = TextBox7.Value
        .Cells(emptyrow, 8).Value = TextBox8.Value
        .Cells(emptyrow, 9).Value = TextBox9.Value
    End With
    Dim total As Long
    total = WorksheetFunction.Sum(Range("I3:I1048576"))
    Range("A1").Value = total

End Sub

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Sat Aug 18, 2018 11:42 am
by snasui
:D แนบไฟล์ล่าสุดมาด้วยจะได้ตอบต่อไปจากนั้นครับ

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Sat Aug 18, 2018 11:45 am
by Leng
รบกวนอาจารย์ด้วยนะครับ

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

Posted: Sat Aug 18, 2018 11:57 am
by snasui
:D ผมทดสอบแล้วทำงานได้ ไม่ทราบว่าติดปัญหาใดช่วยแจ้งรายละเอียดมาด้วยครับ