Page 1 of 1

ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

Posted: Sat Oct 27, 2018 1:52 pm
by titus
สอบถามเพื่อนสมาชิกครับ (กดปุ่ม เบิกลูกใหญ่)
ต้องการให้ Text box(จำนวน) แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox (Bat เหล็ก)
คล้ายๆ สูตร Vlook up

Code: Select all

Private Sub txtq_Change()
On Error Resume Next
With Application.WorksheetFunction
        txtq.Value = .VLookup(Val(cbbat.Text), Sheets("J01").Range("DATAJ01"), 2, False)
        'txtprice.Value = .VLookup(Val(txtcode.Text), Sheets("DATA").Range("teble2"), 3, False)
    End With
End Sub
ลองดูแล้วครับมันไม่แสดงผล
ขอบคุณครับ

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

Posted: Sat Oct 27, 2018 2:14 pm
by snasui
:D ปุ่ม "เบิกลูกใหญ่" อยู่ที่ชีตไหน ตำแหน่งเซลล์ไหนครับ กดแล้วเปิด Form ใด ค่าทดสอบคือค่าใดบ้าง ผลลัพธ์หากถูกต้อง Object ใดจะต้องได้ค่าใดบ้างช่วยอธิบายมาอีกรอบครับ

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

Posted: Sat Oct 27, 2018 2:25 pm
by titus
snasui wrote: Sat Oct 27, 2018 2:14 pm :D ปุ่ม "เบิกลูกใหญ่" อยู่ที่ชีตไหน ตำแหน่งเซลล์ไหนครับ กดแล้วเปิด Form ใด ค่าทดสอบคือค่าใดบ้าง ผลลัพธ์หากถูกต้อง Object ใดจะต้องได้ค่าใดบ้างช่วยอธิบายมาอีกรอบครับ
โทษที่ครับอาจาร์ย ลืมบอกเลยครับ
อยู่ Sheets J01 ครับ
พอกดแล้วเปิดฟอร์ม Ton2 ครับ
พอกดฟอร์มเเล้ว เราจะใช้ค่า ในช่อง ฺBat เหล็ก เป็นเงื่อนไขในการหาข้อมูลจาก i3:i62
ถ้าเหมือน กันใน cell ไหน ให้แสดงค่า cell ด้านขวามือ ในช่องจำนวน ครับ

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

Posted: Sat Oct 27, 2018 2:31 pm
by titus
ประมาณนี้ครับ

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

Posted: Sat Oct 27, 2018 2:43 pm
by snasui
:D ตัวอย่าง Code ครับ

Code: Select all

Private Sub cbbat_Change()
    With Application.WorksheetFunction
        txtq.Value = .VLookup(cbbat.Text, Sheets("J01").Range("DATAJ01"), 2, False)
    End With
End Sub

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

Posted: Sat Oct 27, 2018 2:49 pm
by titus
ขอบคุณครับ ผมไปตรวสอบอยู่ที่ ช่องที่จะแสดงนี้เองถึงไม่ขึ้น T T

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

Posted: Sat Oct 27, 2018 3:15 pm
by titus
snasui wrote: Sat Oct 27, 2018 2:43 pm :D ตัวอย่าง Code ครับ

Code: Select all

Private Sub cbbat_Change()
    With Application.WorksheetFunction
        txtq.Value = .VLookup(cbbat.Text, Sheets("J01").Range("DATAJ01"), 2, False)
    End With
End Sub
ขอบคุณครับ อาจาร์ย
สอบถามอีกหน่อยครับ ตอนนี้ Sheet ผมมีแค่ J01-J02 ถ้ามีการ เพิ่มชีท ถึง48 ชีท
ผมจะเอา ชื่อของ Sheet มาใช้ใน สูตร ได้แบบไหนบางครับ ส่วน Range จะเหมือนกันหมดทุกชีท

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

Posted: Sat Oct 27, 2018 7:13 pm
by puriwutpokin
titus wrote: Sat Oct 27, 2018 3:15 pm
snasui wrote: Sat Oct 27, 2018 2:43 pm :D ตัวอย่าง Code ครับ

Code: Select all

Private Sub cbbat_Change()
    With Application.WorksheetFunction
        txtq.Value = .VLookup(cbbat.Text, Sheets("J01").Range("DATAJ01"), 2, False)
    End With
End Sub
ขอบคุณครับ อาจาร์ย
สอบถามอีกหน่อยครับ ตอนนี้ Sheet ผมมีแค่ J01-J02 ถ้ามีการ เพิ่มชีท ถึง48 ชีท
ผมจะเอา ชื่อของ Sheet มาใช้ใน สูตร ได้แบบไหนบางครับ ส่วน Range จะเหมือนกันหมดทุกชีท
ลองปรับเป็นตามนี้ครับ

Code: Select all

Private Sub cbbat_Change()
    With Application.WorksheetFunction
        txtq.Value = .VLookup(cbbat.Text, ActiveSheet.Range("I3:J63"), 2, False)
    End With
End Sub

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

Posted: Mon Oct 29, 2018 8:35 am
by titus
ขอบคุณครับ

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

Posted: Mon Oct 29, 2018 11:50 am
by titus
สอบถามเพิ่มเติมครับ หลังจากที่แสดงค่าในช่อง text box เเล้ว กดปุ่ม "เบิก"
ให้นำค่าแต่ละ text box ไป เก็บที่ sheet isue
1.ให้กลับไปที่ sheet เดิม และตำแหน่งของ เดิมของ ข้อมูล Combo box
2ลบข้อมูลที่ส่งไป เก็บที่ sheet isue
3ยกข้อมูลด้านล่างขึ้นมาทั้งหมด โดยไม่ลบ Row ต้องเขียนสูตรยังไง ดีครับ
:D :D

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

Posted: Tue Oct 30, 2018 11:43 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Public line As Long

Private Sub cmdok1_Click()
    Sheets("isue").Select
    Range("B10000").Select
    Selection.End(xlUp).Select
    ActiveCell.Offset(1, 0).Value = cbbat.Text
    ActiveCell.Offset(1, 1).Value = txtq.Text
    ActiveCell.Offset(1, 2).Value = txtc.Text
    ActiveCell.Offset(1, 3).Value = txtd.Text
    ActiveCell.Offset(1, 4).Value = txtlot.Text
    ActiveCell.Offset(1, 5).Value = txtsize.Text
    ActiveCell.Offset(1, 6).Value = txttype.Text
    ActiveCell.Offset(1, 7).Value = txtsize2.Text
    ActiveCell.Offset(1, 8).Value = txtcom.Text
    Sheets("j01").Select
    Range(ActiveSheet.Range("c" & line + 1), _
        ActiveSheet.Range("c64").End(xlUp)).Resize(, 7).Copy
    ActiveSheet.Range("c" & line).PasteSpecial xlPasteValues
    ActiveSheet.Range("c64").End(xlUp).Resize(1, 7).ClearContents
    Range("a1").Select
End Sub

Private Sub cbbat_Change()
    With Application.WorksheetFunction
        line = .Match(cbbat.Text, ActiveSheet.Range("c:c"), 0)
        txtq.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 2, False)
        txtlot.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 3, False)
        txtsize.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 4, False)
        txttype.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 5, False)
        txtsize2.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 6, False)
        txtcom.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 7, False)
        txtc.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 8, False)
    End With
End Sub

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

Posted: Wed Oct 31, 2018 8:27 am
by titus
snasui wrote: Tue Oct 30, 2018 11:43 pm :D ตัวอย่างการปรับ Code ครับ

Code: Select all

Public line As Long

Private Sub cmdok1_Click()
    Sheets("isue").Select
    Range("B10000").Select
    Selection.End(xlUp).Select
    ActiveCell.Offset(1, 0).Value = cbbat.Text
    ActiveCell.Offset(1, 1).Value = txtq.Text
    ActiveCell.Offset(1, 2).Value = txtc.Text
    ActiveCell.Offset(1, 3).Value = txtd.Text
    ActiveCell.Offset(1, 4).Value = txtlot.Text
    ActiveCell.Offset(1, 5).Value = txtsize.Text
    ActiveCell.Offset(1, 6).Value = txttype.Text
    ActiveCell.Offset(1, 7).Value = txtsize2.Text
    ActiveCell.Offset(1, 8).Value = txtcom.Text
    Sheets("j01").Select
    Range(ActiveSheet.Range("c" & line + 1), _
        ActiveSheet.Range("c64").End(xlUp)).Resize(, 7).Copy
    ActiveSheet.Range("c" & line).PasteSpecial xlPasteValues
    ActiveSheet.Range("c64").End(xlUp).Resize(1, 7).ClearContents
    Range("a1").Select
End Sub

Private Sub cbbat_Change()
    With Application.WorksheetFunction
        line = .Match(cbbat.Text, ActiveSheet.Range("c:c"), 0)
        txtq.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 2, False)
        txtlot.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 3, False)
        txtsize.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 4, False)
        txttype.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 5, False)
        txtsize2.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 6, False)
        txtcom.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 7, False)
        txtc.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 8, False)
    End With
End Sub
ได้คำสั่งใหม่อีกเเล้ว ขอบคุณครับ อาจารย์
แต่อยากให้อาจารย์อธิบาย คำสั่งหน่อย ครับ
Sheets("j01").Select กลับมาที่ ชีท j01
Range(ActiveSheet.Range("c" & line + 1), _ line +1 หมายความว่ายังไง ครับ อยู่ตำแหน่งไหน
ActiveSheet.Range("c64").End(xlUp)).Resize(, 7).Copy ---resize ทำหน้าที่อะไรครับ
ActiveSheet.Range("c" & line).PasteSpecial xlPasteValues
ActiveSheet.Range("c64").End(xlUp).Resize(1, 7).ClearContents

เพราะตอนนี้ code มัน error ตำแหน่ง นี้ครับ ActiveSheet.Range("c" & line).PasteSpecial xlPasteValues

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

Posted: Wed Oct 31, 2018 9:19 am
by puriwutpokin
titus wrote: Wed Oct 31, 2018 8:27 am
snasui wrote: Tue Oct 30, 2018 11:43 pm :D ตัวอย่างการปรับ Code ครับ

Code: Select all

Public line As Long

Private Sub cmdok1_Click()
    Sheets("isue").Select
    Range("B10000").Select
    Selection.End(xlUp).Select
    ActiveCell.Offset(1, 0).Value = cbbat.Text
    ActiveCell.Offset(1, 1).Value = txtq.Text
    ActiveCell.Offset(1, 2).Value = txtc.Text
    ActiveCell.Offset(1, 3).Value = txtd.Text
    ActiveCell.Offset(1, 4).Value = txtlot.Text
    ActiveCell.Offset(1, 5).Value = txtsize.Text
    ActiveCell.Offset(1, 6).Value = txttype.Text
    ActiveCell.Offset(1, 7).Value = txtsize2.Text
    ActiveCell.Offset(1, 8).Value = txtcom.Text
    Sheets("j01").Select
    Range(ActiveSheet.Range("c" & line + 1), _
        ActiveSheet.Range("c64").End(xlUp)).Resize(, 7).Copy
    ActiveSheet.Range("c" & line).PasteSpecial xlPasteValues
    ActiveSheet.Range("c64").End(xlUp).Resize(1, 7).ClearContents
    Range("a1").Select
End Sub

Private Sub cbbat_Change()
    With Application.WorksheetFunction
        line = .Match(cbbat.Text, ActiveSheet.Range("c:c"), 0)
        txtq.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 2, False)
        txtlot.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 3, False)
        txtsize.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 4, False)
        txttype.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 5, False)
        txtsize2.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 6, False)
        txtcom.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 7, False)
        txtc.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 8, False)
    End With
End Sub
ได้คำสั่งใหม่อีกเเล้ว ขอบคุณครับ อาจารย์
แต่อยากให้อาจารย์อธิบาย คำสั่งหน่อย ครับ
Sheets("j01").Select กลับมาที่ ชีท j01
Range(ActiveSheet.Range("c" & line + 1), _ line +1 หมายความว่ายังไง ครับ อยู่ตำแหน่งไหน
ActiveSheet.Range("c64").End(xlUp)).Resize(, 7).Copy ---resize ทำหน้าที่อะไรครับ
ActiveSheet.Range("c" & line).PasteSpecial xlPasteValues
ActiveSheet.Range("c64").End(xlUp).Resize(1, 7).ClearContents

เพราะตอนนี้ code มัน error ตำแหน่ง นี้ครับ ActiveSheet.Range("c" & line).PasteSpecial xlPasteValues
ลองปรับทั้งหมดของ Module Ton3 ตามนี้ครับ

Code: Select all

Public line As Long
Private Sub txtdate_Change()
Sheets("report").Select
rang("U2").valule = txtdate.txt
End Sub
Private Sub cmdclose1_Click()
Unload Me
End Sub
Private Sub cmdok1_Click()
 With Application.WorksheetFunction
line = .Match(cbbat.Text, ActiveSheet.Range("c:c"), 0)
    End With
    Sheets("isue").Select
    Range("B10000").Select
    Selection.End(xlUp).Select
    ActiveCell.Offset(1, 0).Value = cbbat.Text
    ActiveCell.Offset(1, 1).Value = txtq.Text
    ActiveCell.Offset(1, 2).Value = txtc.Text
    ActiveCell.Offset(1, 3).Value = txtd.Text
    ActiveCell.Offset(1, 4).Value = txtlot.Text
    ActiveCell.Offset(1, 5).Value = txtsize.Text
    ActiveCell.Offset(1, 6).Value = txttype.Text
    ActiveCell.Offset(1, 7).Value = txtsize2.Text
    ActiveCell.Offset(1, 8).Value = txtcom.Text
    Sheets("j01").Select
    Range(ActiveSheet.Range("c" & line + 1), _
        ActiveSheet.Range("c64").End(xlUp)).Resize(, 7).Copy
    ActiveSheet.Range("c" & line).PasteSpecial xlPasteValues
    ActiveSheet.Range("c64").End(xlUp).Resize(1, 7).ClearContents
    Range("a1").Select
End Sub
Private Sub cbbat_Change()
    With Application.WorksheetFunction
        line = .Match(cbbat.Text, ActiveSheet.Range("c:c"), 0)
        txtq.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 2, False)
        txtlot.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 3, False)
        txtsize.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 4, False)
        txttype.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 5, False)
        txtsize2.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 6, False)
        txtcom.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 7, False)
        txtc.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 8, False)
    End With
End Sub

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

Posted: Thu Nov 01, 2018 11:25 am
by titus
ได้เเล้ว ครับ ขอบคุณครับ