Page 1 of 1
ต้องการให้ textbox ขึ้นกับ combobox ที่เลือก
Posted: Fri Jun 08, 2018 5:07 pm
by liveday
เรียนอาจารย์ทุกท่านครับ
ที่ Sheet ทำรายการ ต้องการให้ textbox ขึ้นกับ combobox ที่เลือกครับ
ต้องใช้สูตรอย่างไรดีครับ
ขอบคุณครับ
Re: ต้องการให้ textbox ขึ้นกับ combobox ที่เลือก
Posted: Fri Jun 08, 2018 7:35 pm
by snasui

ไม่เข้าใจครับ
ช่วยอธิบายมาอย่างละเอียดว่าต้องการให้ TextBox ใดขึ้นกับ ComboBox ใด ยกตัวอย่างมาด้วยครับ
Re: ต้องการให้ textbox ขึ้นกับ combobox ที่เลือก
Posted: Sun Jun 10, 2018 4:22 pm
by liveday
เมื่อเลือก ID ที่ชีททำรายการ ใน Combobox แล้ว ให้รายการที่มีทั้งหมดใน ชีททำรายการ มาแสดงค่าใน Textbox ครับอาจารย์
Re: ต้องการให้ textbox ขึ้นกับ combobox ที่เลือก
Posted: Sun Jun 10, 2018 5:05 pm
by snasui

ID อยู่ที่เซลล์ไหนครับ
กรุณาอ่านโพสต์ #2 ใหม่อีกครั้งว่าผมแจ้งไว้อย่างไร ควรจะอธิบายให้ลงรายละเอียดให้ลงถึงตำแหน่งของเซลล์, Control นั้น ๆ ครับ
Re: ต้องการให้ textbox ขึ้นกับ combobox ที่เลือก
Posted: Mon Jun 11, 2018 9:01 am
by liveday
ขอโทษทีครับอาจารย์ที่อธิบายผิดและไม่ละเอียดครับ
UserForm ที่ Sheet 3 (ทำรายการ) เมื่อเลือกรหัสสินค้าที่ cbProductCode(Combobox)
ซึ่งจะเป็นข้อมูลรหัสสินค้าที่ Sheet1(รายการสินค้า) Colum B
แล้วให้รายการทั้งหมดที่มีใน Sheet1(รายการสินค้า)ตั้งแต่ Colum C:J
มาเเสดงข้อมูลที่ UserForm ที่ Sheet 3 (ทำรายการ) Textbox (txtProductName),(txtPaticular),(txtColor),(txtSpec) ครับ
ขอบคุณครับ
Re: ต้องการให้ textbox ขึ้นกับ combobox ที่เลือก
Posted: Tue Jun 12, 2018 6:31 am
by snasui

ตัวอย่าง Code ครับ
Code: Select all
Private Sub cbProductCode_Change()
Dim i As Integer
With Sheets("ทำรายการ")
If Application.CountIf(.Range("c3:c1000"), Me.cbProductCode) Then
i = Application.Match(Me.cbProductCode.Text, .Range("c3:c1000"), 0)
Me.txtProductName.Text = .Range("c2").Offset(i, 1).Value
Me.txtPaticular.Text = .Range("c2").Offset(i, 2).Value
Me.txtColor.Text = .Range("c2").Offset(i, 3).Value
Me.txtSpec.Text = .Range("c2").Offset(0, 4).Value
End If
End With
End Sub
Re: ต้องการให้ textbox ขึ้นกับ combobox ที่เลือก
Posted: Mon Jun 18, 2018 10:54 am
by liveday
พอดีผมเอาโค้ดที่อาจารย์มาแล้วไม่ทำงานครับ ผมจึงใส่โค้ดตามที่ผมส่งให้ดูเข้าไปใหม่ครับ แต่เมื่อเลือกรหัสสินค้าแล้วที่ UserForm ที่ Sheet 3 (ทำรายการ) Textbox (txtProductName),(txtPaticular),(txtColor),(txtSpec) ไม่ยอมแสดงค่าที่ต้องการครับ ถ้าถ้าเป็น TEXT เช่น AAA ข้อมูล (รายการสินค้า)ตั้งแต่ Colum C:J ก็จะมาแสดง แต่ถ้าเป็นตัวเลข จะไม่แสดงข้อมูลเลยครับ
ต้องปรับสูตรอย่างไรครับ ขอบคุณครับ
Code: Select all
Private Sub cbProductCode_Enter()
Dim i As Integer
Dim final As Integer
Dim work As String
cbProductCode.BackColor = &H80000005
For i = 1 To cbProductCode.ListCount
'Remove an item from the ListBox.
cbProductCode.RemoveItem 0
Next i
For i = 2 To 1000
If Sheet1.Cells(i, 2) = "" Then
final = i - 1
Exit For
End If
Next
'If ComboBox1.ListCount < 1 Then
'ComboBox1.AddItem "-"
For i = 2 To final
work = Sheet1.Cells(i, 2)
cbProductCode.AddItem (work)
Next
'End If
End Sub
Private Sub cbProductCode_Click()
Dim i As Integer
Dim final As Integer
For i = 2 To 1000
If Sheet1.Cells(i, 2) = "" Then
final = i - 1
Exit For
End If
Next
For i = 2 To final
If cbProductCode = Sheet1.Cells(i, 2) Then
txtProductName = Sheet1.Cells(i, 3)
txtPaticular = Sheet1.Cells(i, 4)
txtColor = Sheet1.Cells(i, 5)
txtSpec = Sheet1.Cells(i, 6)
Exit For
End If
Next
End Sub
Re: ต้องการให้ textbox ขึ้นกับ combobox ที่เลือก
Posted: Mon Jun 18, 2018 7:04 pm
by snasui
liveday wrote: Mon Jun 18, 2018 10:54 am
พอดีผมเอาโค้ดที่อาจารย์มาแล้วไม่ทำงานครับ

แนบไฟล์นั้นมาด้วย ชี้ให้เห็นว่าผิดพลาดตรงไหน อย่างไร จะได้ตอบต่อไปจากนั้น ผมยังไม่เห็นความจำเป็นใดที่จะต้องเปลี่ยน Code เป็นอย่างอื่นครับ
Re: ต้องการให้ textbox ขึ้นกับ combobox ที่เลือก
Posted: Wed Jun 20, 2018 4:55 pm
by liveday
อาจารย์ครับ ใน Sheet รายการสินค้า หากใส่ รหัสสินค้าเป็นตัวเลขทำให้เกิด Error ครับ
ช่วง
Code: Select all
i = Application.Match(Me.cbProductCode.text, .Range("B3:B1000"), 0)
ต้องแก้สูตรอย่างไรครับ
ขอบคุณครับ
Re: ต้องการให้ textbox ขึ้นกับ combobox ที่เลือก
Posted: Wed Jun 20, 2018 7:58 pm
by snasui

ตัวอย่าง Code ครับ
Code: Select all
'Other code
Dim i As Integer, c As Variant
With Sheets("รายการสินค้า")
If IsNumeric(Me.cbProductCode) Then
c = CDbl(Me.cbProductCode)
Else
c = Me.cbProductCode
End If
If Application.CountIf(.Range("B3:B1000"), c) Then
i = Application.Match(c, .Range("B3:B1000"), 0)
Me.txtProductName.Text = .Range("c2").Offset(i, 0).Value
'Other code
รหัสสินค้าควรเป็นมาตรฐาน ไม่ใช่เป็น Text หรือ Number ก็ได้ ระบบงานส่วนใหญจะกำหนดให้เป็น Text ซึ่งควรกำหนดคอลัมน์ที่เป็นรหัสสินค้าให้เป็น Text ไม่ใช่กำหนดเป็น General ครับ
Code ด้านบนผมทำมาให้เป็นตัวอย่างการแปลงข้อมูลเท่านั้น
Re: ต้องการให้ textbox ขึ้นกับ combobox ที่เลือก
Posted: Thu Jun 21, 2018 9:34 am
by liveday
ได้ตามต้องการครับ ขอบคุณอาจารย์ที่ช่วยแนะนำข้อมูลให้ครับ