Form tìm kiếm và nhập liệu

Liên hệ QC

Cuongnv0920

Thành viên chính thức
Tham gia
24/3/18
Bài viết
62
Được thích
8
Giới tính
Nam
Xin chào tất cả mọi người. Mình có 1 Form tìm kiếm và nhập liệu nhưng mình cón 1 cái làm ko được
mình có 2 sheet là sheet "DMVT" và sheet "TEST"
khi mở Form lên thì đã search được các loại Vật tư, nhưng mình muốn khi click vào NÚT "Chọn"
Thì loại Vật tư đó được điền vào form mẫu ở sheet "TEST"
nhờ mọi người viết code giúp mình cái NÚT Chọn với ạ.
Xin cám ơn
 
Lần chỉnh sửa cuối:
Xin chào tất cả mọi người. Mình có 1 Form tìm kiếm và nhập liệu nhưng mình cón 1 cái làm ko được
mình có 2 sheet là sheet "DMVT" và sheet "TEST"
khi mở Form lên thì đã search được các loại Vật tư, nhưng mình muốn khi click vào NÚT "Chọn"
Thì loại Vật tư đó được điền vào form mẫu ở sheet "TEST"
nhờ mọi người viết code giúp mình cái NÚT Chọn với ạ.
Xin cám ơn
Code cho Module:
PHP:
Public Sub FindSelectedData()
    Dim I As Long, J As Long, lR1 As Long, lR2 As Long, K As Long, H As Long
    Dim SelectedData As String, sArr(), dArr()
    
    lR1 = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
    lR2 = Sheet2.Range("A" & Rows.Count).End(xlUp).Row + 1
    If lR2 = 2 Then lR2 = lR2 + 1
    sArr() = Sheet1.Range("A3:K" & lR1).Value
    ReDim dArr(1 To UBound(sArr, 1), 1 To UBound(sArr, 2))
    
    With FrmDMVT.LBDMVT
        For I = 1 To UBound(.List)
            If .Selected(I) Then
                SelectedData = .List(I, 0)
    
                For J = 1 To UBound(sArr, 1)
                    If SelectedData = sArr(J, 1) Then
                        K = K + 1
                        For H = 1 To UBound(sArr, 2)
                            dArr(K, H) = sArr(J, H)
                        Next H
                        Exit For
                    End If
                Next J
            End If
        Next I
    End With
        
    If K Then
        Sheet2.Range("A" & lR2).Resize(K, UBound(sArr, 2)) = dArr
    End If
End Sub
Code cho Userform:
PHP:
Private Sub Chon_Click()
    Call FindSelectedData
End Sub
 
Upvote 0
Code cho Module:
PHP:
Public Sub FindSelectedData()
    Dim I As Long, J As Long, lR1 As Long, lR2 As Long, K As Long, H As Long
    Dim SelectedData As String, sArr(), dArr()
   
    lR1 = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
    lR2 = Sheet2.Range("A" & Rows.Count).End(xlUp).Row + 1
    If lR2 = 2 Then lR2 = lR2 + 1
    sArr() = Sheet1.Range("A3:K" & lR1).Value
    ReDim dArr(1 To UBound(sArr, 1), 1 To UBound(sArr, 2))
   
    With FrmDMVT.LBDMVT
        For I = 1 To UBound(.List)
            If .Selected(I) Then
                SelectedData = .List(I, 0)
   
                For J = 1 To UBound(sArr, 1)
                    If SelectedData = sArr(J, 1) Then
                        K = K + 1
                        For H = 1 To UBound(sArr, 2)
                            dArr(K, H) = sArr(J, H)
                        Next H
                        Exit For
                    End If
                Next J
            End If
        Next I
    End With
       
    If K Then
        Sheet2.Range("A" & lR2).Resize(K, UBound(sArr, 2)) = dArr
    End If
End Sub
Code cho Userform:
PHP:
Private Sub Chon_Click()
    Call FindSelectedData
End Sub
Xin cám ơn bác @vanthinh3101 nhiều ạ
 
Upvote 0
Góp ý thêm cho bạn.
Trong Sheet DMVT không nên có dòng trống vì danh sách trong listbox cũng sẽ có dòng trống.
Giả sử nếu bạn chọn 1 dòng trống trong listbox thì khi click nút chọn, vẫn sẽ có dữ liệu được điền vào mẫu ở Sheet Test (có thể toàn bộ là ký tự trắng "")
Để khắc phục thì ở phần code cho Module bạn bổ sung thêm 1 lệnh IF nữa.
PHP:
If Len(SelectedData) Then
    ...
End If
Bạn tự tìm vị trí đặt vào nhé!
 
Upvote 0
Góp ý thêm cho bạn.
Trong Sheet DMVT không nên có dòng trống vì danh sách trong listbox cũng sẽ có dòng trống.
Giả sử nếu bạn chọn 1 dòng trống trong listbox thì khi click nút chọn, vẫn sẽ có dữ liệu được điền vào mẫu ở Sheet Test (có thể toàn bộ là ký tự trắng "")
Để khắc phục thì ở phần code cho Module bạn bổ sung thêm 1 lệnh IF nữa.
PHP:
If Len(SelectedData) Then
    ...
End If
Bạn tự tìm vị trí đặt vào nhé!
Cám ơn bác đã góm ý. mình sẽ thử :D
 
Upvote 0
Web KT

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

Back
Top Bottom