Thêm dữ liệu từ textbox vào listbox

Nhờ mọi người trợ giúp em vấn đề sau ạ: Em tạo 1 form trong đó có 1 listbox và 1 textbox. Listbox hiện dữ liệu lọc từ sheet Data. Bình thường nếu em cho kết quả lọc đó ra sheet khác xong mới cho vào listbox thì lọc listbox theo textbox được. Nhưng bây giờ khi em đưa trực tiếp kết quả vào listbox thì không biết viết thế nào ạ. Nhờ mọi người giúp đỡ ạ. Em cảm ơn. Link File ạ:

Bạn tham khảo topic về listbox ở đây:

Bạn coi đúng k nhé.

Bạn cần đăng nhập để thấy hình ảnh


Chuẩn luôn anh ạ. Mấy cái code thêm vào còn cách em 1 khoảng quá xa ạ =]]
Cám ơn anh ạ.

Trong code mình có coment khá rõ. Tất cả trong đó đều học hỏi dưới sự giúp đỡ của các thành viên trong diễn đàn mình.

Hãy dành lời cảm ơn đó cho diễn đàn nhé bạn

Trong code mình có coment khá rõ. Tất cả trong đó đều học hỏi dưới sự giúp đỡ của các thành viên trong diễn đàn mình.

Hãy dành lời cảm ơn đó cho diễn đàn nhé bạn

Dạ vâng, em cảm ơn diễn đàn & các anh chị ạ.

Chuẩn luôn anh ạ. Mấy cái code thêm vào còn cách em 1 khoảng quá xa ạ =]]
Cám ơn anh ạ.

link die rồi mong bác có thể gửi lại file hay code không ạ. em đang muốn áp dụng vào file của em để lọc nhưng chưa biết làm. nếu có thể bác giúp em trên file của em được không ạ!

Code đây bạn nhé

Private Sub TextBox6_KeyUp[ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer] 'Khi txt6 dung phim len or xuong If KeyCode = 40 Or KeyCode = 38 Then Exit Sub 'Khi nhan phim mui ten xuong or len If KeyCode = 13 Then 'Phim tro lai/enter Me.TextBox6.SetFocus 'Setfocus cho txt6 Exit Sub End If '-----------------------------------'Loc du lieu tu listbox theo txt6 Dim lr As Integer 'Khai bao bien Dim i, a As Integer Dim dk1 As String Dim kq, dk2 Const rt As Byte = 1 'Tieu de dong 1 'Giu tieu de dong 1 dk1 = UCase[TextBox6.text] 'dua toan bo chu Hoa thanh chu thuong dk2 = UniConvert[dk1, "Telex"] 'Unicode With ListBox1 .Clear ' xoa toan bo listbox .ColumnCount = 7 ' Chia listbox thnh 7 cot '.ColumnWidths = "20;90;60;60;60;60;0" 'Chia do dong cua cac cot trong listbox '.ListStyle = fmListStyleOption .MultiSelect = False 'Chon nhieu dong trong listbox là false ReDim kq[1 To UBound[Arrkq], 1 To 7] ' Khai bao lai mang [kq] theo mang da gan vao listbox 'So cot là:7 For i = LBound[Arrkq, 1] To UBound[Arrkq, 1] Step 1 'Cho i chay tu ... den ... If InStr[1, UCase[Arrkq[i, 3]], dk2] Then 'Tim cac ky tu danh vao textbox[txt_tenhang.value] trong mang ArrKQ[] a = a + 1 'Tim theo dk2 trong cot 3 mang ArrKQ kq[a, 1] = Arrkq[i, 1] 'Gan ket qua vao mang kq kq[a, 2] = Arrkq[i, 2] kq[a, 3] = Arrkq[i, 3] kq[a, 4] = Arrkq[i, 4] kq[a, 5] = Arrkq[i, 5] kq[a, 6] = Arrkq[i, 6] kq[a, 7] = Arrkq[i, 7] End If Next i ListBox1.List = kq 'dua ket qua loc vao listbox End With End Sub

Code đây bạn nhé

Private Sub TextBox6_KeyUp[ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer] 'Khi txt6 dung phim len or xuong If KeyCode = 40 Or KeyCode = 38 Then Exit Sub 'Khi nhan phim mui ten xuong or len If KeyCode = 13 Then 'Phim tro lai/enter Me.TextBox6.SetFocus 'Setfocus cho txt6 Exit Sub End If '-----------------------------------'Loc du lieu tu listbox theo txt6 Dim lr As Integer 'Khai bao bien Dim i, a As Integer Dim dk1 As String Dim kq, dk2 Const rt As Byte = 1 'Tieu de dong 1 'Giu tieu de dong 1 dk1 = UCase[TextBox6.text] 'dua toan bo chu Hoa thanh chu thuong dk2 = UniConvert[dk1, "Telex"] 'Unicode With ListBox1 .Clear ' xoa toan bo listbox .ColumnCount = 7 ' Chia listbox thnh 7 cot '.ColumnWidths = "20;90;60;60;60;60;0" 'Chia do dong cua cac cot trong listbox '.ListStyle = fmListStyleOption .MultiSelect = False 'Chon nhieu dong trong listbox là false ReDim kq[1 To UBound[Arrkq], 1 To 7] ' Khai bao lai mang [kq] theo mang da gan vao listbox 'So cot là:7 For i = LBound[Arrkq, 1] To UBound[Arrkq, 1] Step 1 'Cho i chay tu ... den ... If InStr[1, UCase[Arrkq[i, 3]], dk2] Then 'Tim cac ky tu danh vao textbox[txt_tenhang.value] trong mang ArrKQ[] a = a + 1 'Tim theo dk2 trong cot 3 mang ArrKQ kq[a, 1] = Arrkq[i, 1] 'Gan ket qua vao mang kq kq[a, 2] = Arrkq[i, 2] kq[a, 3] = Arrkq[i, 3] kq[a, 4] = Arrkq[i, 4] kq[a, 5] = Arrkq[i, 5] kq[a, 6] = Arrkq[i, 6] kq[a, 7] = Arrkq[i, 7] End If Next i ListBox1.List = kq 'dua ket qua loc vao listbox End With End Sub

bác có thể gửi file em tham khảo được không ạ, nà nếu em dùng mã này cho textbox và listbox không ở trên form mà được tạo trêo sheet thì sửa lại sao ạ.

Code đây bạn nhé

Private Sub TextBox6_KeyUp[ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer] 'Khi txt6 dung phim len or xuong If KeyCode = 40 Or KeyCode = 38 Then Exit Sub 'Khi nhan phim mui ten xuong or len If KeyCode = 13 Then 'Phim tro lai/enter Me.TextBox6.SetFocus 'Setfocus cho txt6 Exit Sub End If '-----------------------------------'Loc du lieu tu listbox theo txt6 Dim lr As Integer 'Khai bao bien Dim i, a As Integer Dim dk1 As String Dim kq, dk2 Const rt As Byte = 1 'Tieu de dong 1 'Giu tieu de dong 1 dk1 = UCase[TextBox6.text] 'dua toan bo chu Hoa thanh chu thuong dk2 = UniConvert[dk1, "Telex"] 'Unicode With ListBox1 .Clear ' xoa toan bo listbox .ColumnCount = 7 ' Chia listbox thnh 7 cot '.ColumnWidths = "20;90;60;60;60;60;0" 'Chia do dong cua cac cot trong listbox '.ListStyle = fmListStyleOption .MultiSelect = False 'Chon nhieu dong trong listbox là false ReDim kq[1 To UBound[Arrkq], 1 To 7] ' Khai bao lai mang [kq] theo mang da gan vao listbox 'So cot là:7 For i = LBound[Arrkq, 1] To UBound[Arrkq, 1] Step 1 'Cho i chay tu ... den ... If InStr[1, UCase[Arrkq[i, 3]], dk2] Then 'Tim cac ky tu danh vao textbox[txt_tenhang.value] trong mang ArrKQ[] a = a + 1 'Tim theo dk2 trong cot 3 mang ArrKQ kq[a, 1] = Arrkq[i, 1] 'Gan ket qua vao mang kq kq[a, 2] = Arrkq[i, 2] kq[a, 3] = Arrkq[i, 3] kq[a, 4] = Arrkq[i, 4] kq[a, 5] = Arrkq[i, 5] kq[a, 6] = Arrkq[i, 6] kq[a, 7] = Arrkq[i, 7] End If Next i ListBox1.List = kq 'dua ket qua loc vao listbox End With End Sub

Em chưa biết cách chèn code như của bác vào bài viết. Xin bác chỉ giúp em được không ạ? em cảm ơn nhiều !

Code đây bạn nhé

Private Sub TextBox6_KeyUp[ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer] 'Khi txt6 dung phim len or xuong If KeyCode = 40 Or KeyCode = 38 Then Exit Sub 'Khi nhan phim mui ten xuong or len If KeyCode = 13 Then 'Phim tro lai/enter Me.TextBox6.SetFocus 'Setfocus cho txt6 Exit Sub End If '-----------------------------------'Loc du lieu tu listbox theo txt6 Dim lr As Integer 'Khai bao bien Dim i, a As Integer Dim dk1 As String Dim kq, dk2 Const rt As Byte = 1 'Tieu de dong 1 'Giu tieu de dong 1 dk1 = UCase[TextBox6.text] 'dua toan bo chu Hoa thanh chu thuong dk2 = UniConvert[dk1, "Telex"] 'Unicode With ListBox1 .Clear ' xoa toan bo listbox .ColumnCount = 7 ' Chia listbox thnh 7 cot '.ColumnWidths = "20;90;60;60;60;60;0" 'Chia do dong cua cac cot trong listbox '.ListStyle = fmListStyleOption .MultiSelect = False 'Chon nhieu dong trong listbox là false ReDim kq[1 To UBound[Arrkq], 1 To 7] ' Khai bao lai mang [kq] theo mang da gan vao listbox 'So cot là:7 For i = LBound[Arrkq, 1] To UBound[Arrkq, 1] Step 1 'Cho i chay tu ... den ... If InStr[1, UCase[Arrkq[i, 3]], dk2] Then 'Tim cac ky tu danh vao textbox[txt_tenhang.value] trong mang ArrKQ[] a = a + 1 'Tim theo dk2 trong cot 3 mang ArrKQ kq[a, 1] = Arrkq[i, 1] 'Gan ket qua vao mang kq kq[a, 2] = Arrkq[i, 2] kq[a, 3] = Arrkq[i, 3] kq[a, 4] = Arrkq[i, 4] kq[a, 5] = Arrkq[i, 5] kq[a, 6] = Arrkq[i, 6] kq[a, 7] = Arrkq[i, 7] End If Next i ListBox1.List = kq 'dua ket qua loc vao listbox End With End Sub

Private Sub txt_tim_kiem_KeyUp[ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer] If KeyCode = 40 Or KeyCode = 38 Then Exit Sub 'Khi nhan phim mui ten xuong or len If KeyCode = 13 Then 'Phim tro lai/enter Me.txt_tim_kiem.SetFocus 'Setfocus cho txt6 Exit Sub End If '-----------------------------------'Loc du lieu tu listbox theo txt6 Dim lr As Integer 'Khai bao bien Dim i, a As Integer Dim dk1 As String Dim kq, dk2 Const rt As Byte = 1 'Tieu de dong 1 'Giu tieu de dong 1 dk1 = UCase[txt_tim_kiem.Text] 'dua toan bo chu Hoa thanh chu thuong dk2 = UniConvert[dk1, "Telex"] 'Unicode With lst_ket_qua_tim_kiem .Clear ' xoa toan bo listbox .ColumnCount = 11 ' Chia listbox thnh 11 cot '.ColumnWidths = "20;90;60;60;60;60;0" 'Chia do dong cua cac cot trong listbox .ListStyle = fmListStyleOption .MultiSelect = False 'Chon nhieu dong trong listbox là false ReDim kq[1 To UBound[Arrkq], 1 To 11] ' Khai bao lai mang [kq] theo mang da gan vao listbox 'So cot là:7 For i = LBound[Arrkq, 1] To UBound[Arrkq, 1] Step 1 'Cho i chay tu ... den ... If InStr[1, UCase[Arrkq[i, 3]], dk2] Then 'Tim cac ky tu danh vao textbox[txt_tenhang.value] trong mang ArrKQ[] a = a + 1 'Tim theo dk2 trong cot 3 mang ArrKQ kq[a, 1] = Arrkq[i, 1] 'Gan ket qua vao mang kq kq[a, 2] = Arrkq[i, 2] kq[a, 3] = Arrkq[i, 3] kq[a, 4] = Arrkq[i, 4] kq[a, 5] = Arrkq[i, 5] kq[a, 6] = Arrkq[i, 6] kq[a, 7] = Arrkq[i, 7] kq[a, 8] = Arrkq[i, 8] kq[a, 9] = Arrkq[i, 9] kq[a, 10] = Arrkq[i, 10] kq[a, 11] = Arrkq[i, 11] End If Next i lst_ket_qua_tim_kiem.List = kq 'dua ket qua loc vao listbox End With End Sub

Mình chèn code của bạn vào form của mình nhưng báo lỗi Type mismatch bạn ơi! Xử lý dùm mình được ko bạn? Cám ơn bạn rất nhiều!

Video liên quan

Chủ Đề