Form tìm và cập nhật dữ liệu (1 người xem)

  • Thread starter Thread starter lmtuyen
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

lmtuyen

Thành viên chính thức
Tham gia
14/3/09
Bài viết
71
Được thích
12
Chào Anh/Chị
mình có form dùng để cập nhật dữ liệu, đang bị "bế tắc" mong Anh/Chị giúp đỡ:

1./ 1 textbox "search PO", khi đánh số PO vào texbox này thì sẽ sort dữ liệu trong listbox theo PO.

và hiển thị ở các textbox bên dưới," textbox1~textbox5"

2. Nút Update Data, sẽ cập nhật dữ liệu vào lại excell khi mình có sự thay đổi ở các textbox1~textbox5.

Mình viết dựa vào code của Anh Ndu nhưng báo lổi, hic,
Thanks,
 

File đính kèm

Phần 1:
ListBox Change:
[gpecode=vb]
Private Sub lst1_Change()
TextBox1 = lst1.Column(0, lst1.ListIndex)
TextBox2 = lst1.Column(1, lst1.ListIndex)
TextBox3 = lst1.Column(2, lst1.ListIndex)
TextBox4 = lst1.Column(5, lst1.ListIndex)
TextBox5 = lst1.Column(11, lst1.ListIndex)
End Sub
[/gpecode]
Code TextBox Change:
[gpecode=vb]
Private Sub TxtFind_Change()
Dim iR As Long, jC As Byte, kR As Long, Tmp As Long, myArr(), lbArr()
On Error Resume Next
myArr = Sheet1.Range("C6:N" & Sheet1.[C65535].End(3).Row).Value
ReDim lbArr(1 To UBound(myArr), 1 To UBound(myArr, 2))
For iR = 1 To UBound(myArr)
Tmp = myArr(iR, 1)
If Tmp Like TxtFind & "*" Then
kR = kR + 1
For jC = 1 To UBound(myArr, 2)
lbArr(kR, jC) = myArr(iR, jC)
Next jC
End If
Next iR
If kR Then
lst1.List = lbArr
lst1.ColumnCount = UBound(myArr, 2)
'lit1.ColumnHeads = True
ElseIf TxtFind = Empty Then
lst1.List() = myArr
Else
lst1.Clear
End If
End Sub
[/gpecode]
Phần 2: Sẽ làm sau nếu chưa có ai giúp bạn.
 

File đính kèm

Upvote 0
Chào bạn Leo
mình tải file bạn thì mất source không tự động load vào form được, và không lọc được dữ liệu, bạn xem lại giúp nhé.

Mục 2: mình đã là được rồi, đưa ra từ excell ra listbox, hoặc textbox được thì đưa lại được, ccode không chính qui lắm.

Các Pro xem giúp yêu cầu mục 1, Chân thành cảm ơn
 
Upvote 0
Chào bạn Leo
mình tải file bạn thì mất source không tự động load vào form được, và không lọc được dữ liệu, bạn xem lại giúp nhé.

Mục 2: mình đã là được rồi, đưa ra từ excell ra listbox, hoặc textbox được thì đưa lại được, ccode không chính qui lắm.

Các Pro xem giúp yêu cầu mục 1, Chân thành cảm ơn
Bạn nói không lọc được thì hơi lạ, tôi lọc bình thường. Không dùng Name vungnhaplieu nữa mà dùng mảng đưa vào ListBox. Mở Form thì ListBox rỗng, nhập dữ liệu vào mới nạp List và ListBox, bạn gõ số 7 vào thử xem nó lọc không?
Còn nếu muốn nạp List vào ListBox trước luôn thì chèn thêm đoạn code này vào:
[gpecode=vb]
Private Sub UserForm_Initialize()
Dim myArr()
myArr = Sheet1.Range("C6:N" & Sheet1.[C65535].End(3).Row).Value
Me.lst1.List = myArr
End Sub
[/gpecode]
 
Upvote 0
Thanks Bạn Leo, nguyên nhân là mình nạp dữ liệu bằng thuộc tính rowsouce cho list box nên không dùng được chức năng lọc, mình nạp bằng thuộc tính List của Bác Ndu thì ok thì dùng ok. mục đích dùng rowsource là để trong listbox có tiêu đề, còn nạp bằng thuộc tính khác thì không có tiêu đề, hic.

Private Sub UserForm_Initialize()
Dim sarray
lst1.Clear
sarray = Sheet1.Range("c6.n1000").Address
With Me.lst1
.ColumnCount = 12
.RowSource = sarray
.ColumnHeads = True
End With
End Sub
2./ Bác xem giúp mình code update dữ liệu như bên dưới ổn không, góp ý giúp nhé, chạy thì củng đúng yêu cầu, nhưng thấy nó kỳ kỳ sao ý:
Private Sub CommandButton1_Click()
Dim i As Long, Sua(0 To 11)
i = lst1.ListIndex
Sua(0) = TextBox1.Text: Sua(1) = TextBox2.Text
Sua(2) = TextBox3.Text: Sua(4) = TextBox4.Text
Sua(11) = TextBox5.Text
If i > -1 Then
Sheet1.Range("vungnhaplieu").Offset(i).Resize(1).Value = Sua
MsgBox "SUA DU LIEU XONG", vbExclamation, "Nhap lieu"
End If
End Sub
 
Upvote 0
Thanks Bạn Leo, nguyên nhân là mình nạp dữ liệu bằng thuộc tính rowsouce cho list box nên không dùng được chức năng lọc, mình nạp bằng thuộc tính List của Bác Ndu thì ok thì dùng ok. mục đích dùng rowsource là để trong listbox có tiêu đề, còn nạp bằng thuộc tính khác thì không có tiêu đề, hic.
Nếu bạn muốn có tiêu đề và tìm kiếm thì hơi khó, có thể phải dùng vùng tạm, lọc (advancefilter cũng được) để đưa vào RowSource.
Bạn tìm bài viết của anh Hoàng Trọng Nghĩa về ListView thử xem.
 
Upvote 0
Chào Bác Leo
Bác Xem giúp mình Phần 2 nhé :2. Nút Update Data, sẽ cập nhật dữ liệu vào lại excell khi mình có sự thay đổi ở các textbox1~textbox12

Mình đang gặp sự cố khi tìm code và update lại dữ liệu, ví dụ như file đính kém.
- mình đánh PO : 7249479(excell là dòng 13) vào texbox "Search PO", listbox tìm ok, nhưng khi mình updata dữ liệu ở textbox " Missing", thì nó chép chồng lên PO: 7224138 ( excell là dòng 6), dẫn đến trung PO và sai dữ liệu.

Bác Xem giúp nhé.
Thanks,
 

File đính kèm

Upvote 0

Bài viết mới nhất

Back
Top Bottom