dongducnhiem
Thành viên tiêu biểu

- Tham gia
- 21/3/07
- Bài viết
- 637
- Được thích
- 378
Chào các bạn thành viên!
Tôi có tải Form nhập dữ liệu trên GPE (lâu rồi không nhớ tác giả), tôi đã chỉnh sửa code của Form để cho fù hợp với bài thực tế của tôi, sau khi chỉnh sửa vẫn còn một chỗ chưa sửa được như sau:
tại Sheet Data, từ cell H10 trở xuống, bấm Ctrl+t sẽ hiện Form. tại TextBox NhomHang, tôi nhập từ: Chi, sau đó nhấn ComboBox Tìm, để tìm nhưng nó báo "No Ma" (File gốc của tác giả sẽ cho kết quả: những dòng nào có từ chi (bất kỳ vị trí nào trong dòng) sẽ hiện lên tại MH List)
Nhờ các bạn sửa giùm code khi nhập từ nào đó tại TextBox, mà nhấn CB_Tim, nếu những dòng nào thỏa điều kiện thì sẽ hiện lên tại MH List ListBox.
Đây là code của Form
Và code module
Mong các bạn giúp đỡ hòan thiện Form này.
Cảm ơn các bạn.
-------------------
P/s: Nếu trong code có chỗ nào chưa hoàn chỉnh, các bạn vui lòng sửa giùm
Tôi có tải Form nhập dữ liệu trên GPE (lâu rồi không nhớ tác giả), tôi đã chỉnh sửa code của Form để cho fù hợp với bài thực tế của tôi, sau khi chỉnh sửa vẫn còn một chỗ chưa sửa được như sau:
tại Sheet Data, từ cell H10 trở xuống, bấm Ctrl+t sẽ hiện Form. tại TextBox NhomHang, tôi nhập từ: Chi, sau đó nhấn ComboBox Tìm, để tìm nhưng nó báo "No Ma" (File gốc của tác giả sẽ cho kết quả: những dòng nào có từ chi (bất kỳ vị trí nào trong dòng) sẽ hiện lên tại MH List)
Nhờ các bạn sửa giùm code khi nhập từ nào đó tại TextBox, mà nhấn CB_Tim, nếu những dòng nào thỏa điều kiện thì sẽ hiện lên tại MH List ListBox.
Đây là code của Form
PHP:
With Application
.ScreenUpdating = False
End With
Dim endR As Long, i As Long, s As Long, k As Long
Dim arr(), arrKQ()
Dim MaHHTim As String
With Sheets("Note1")
endR = .Cells(65000, 8).End(xlUp).Row
arr = .Range(.Cells(10, 8), .Cells(endR, 10)).Value
End With
ReDim arrKQ(1 To endR, 1 To 3)
s = 0
MaHHTim = Me.NhomHang.Value
For i = 1 To UBound(arr)
If InStr(arr(i, 1), UCase(MaHHTim)) Then
s = s + 1
For k = 1 To 3
arrKQ(s, k) = arr(i, k)
Next k
End If
Next i
If s = 0 Then
MsgBox "No Ma"
Me.NhomHang.SetFocus
With Me.MHList
.ColumnCount = 5
.List = arr
End With
End If
With Me.MHList
.Clear
.ColumnCount = 5
.List = arrKQ
End With
With Application
.ScreenUpdating = False
End With
Erase arr(), arrKQ()
End Sub
Private Sub Nhap_Click()
On Error Resume Next
Dim j&, i&, SelectItem
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
j = ActiveCell.Row
If ActiveSheet.Name = "Data" Then
ActiveSheet.Select
For i = 0 To MHList.ListCount - 1
If MHList.Selected(i) Then
Cells(j, 8) = MHList.List(i)
Cells(j, 9) = MHList.List(i, 1)
Cells(j, 10) = MHList.List(i, 2)
j = j + 1
SelectItem = 1
End If
Next
End If
If SelectItem = 0 Then
MsgBox "Ban da khong chon ten nao trong danh sach !"
End If
Unload Me
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub
Private Sub NhomHang_AfterUpdate()
CB_Tim.SetFocus
End Sub
Private Sub Thoat_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
Dim endR As Long
Dim arr()
With Sheets("Note1")
endR = .Cells(65000, 8).End(xlUp).Row
arr = .Range(.Cells(10, 8), .Cells(endR, 10)).Value
End With
With Me.MHList
.ColumnCount = 3
.List = arr
End With
'MHList.Selected(0) = True
NhomHang.SetFocus
Erase arr
End Sub
PHP:
Sub ShowDMHH()
On Error Resume Next
If ActiveSheet.Name = "Data" Then
If ActiveCell.Row > 9 Then
If ActiveCell.Row < 12000 Then
If ActiveCell.Column = 8 Then
FormDMMH.Show 1
Cancel = True
End If: End If: End If: End If
End Sub
Mong các bạn giúp đỡ hòan thiện Form này.
Cảm ơn các bạn.
-------------------
P/s: Nếu trong code có chỗ nào chưa hoàn chỉnh, các bạn vui lòng sửa giùm