Nhờ mọi người làm giúp phần tìm kiếm trong excel (1 người xem)

  • Thread starter Thread starter matna1
  • Ngày gửi Ngày gửi

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

matna1

Thành viên mới
Tham gia
8/1/11
Bài viết
8
Được thích
0
Mình mới học excel còn nhiều thứ chưa biết mọi người tải file đính kèm về rồi giúp mình nhé
Thank!
 

File đính kèm

Muốn dùng ADO thì dùng code sau:

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)

Dim cnn As New ADODB.Connection, lrs As New ADODB.Recordset
    If Target.Address = "$C$3" Then
        cnn.Open "Provider= Microsoft.Jet.OLEDB.4.0; data source=" & ThisWorkbook.FullName & ";Extended Properties=Excel 8.0;"
        lrs.Open "select [loai vt], [so luong], [don gia], [thanh tien] From [TH$] WHERE ucase([TEN#CTY]) Like '" & UCase(Target) & "' ", cnn, 1, 3
              [B5:E6000].ClearContents
              [B5].CopyFromRecordset lrs
        lrs.Close: Set lrs = Nothing: cnn.Close: Set cnn = Nothing
    End If
    
End Sub
 

File đính kèm

Muốn dùng ADO thì dùng code sau:

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)

Dim cnn As New ADODB.Connection, lrs As New ADODB.Recordset
    If Target.Address = "$C$3" Then
        cnn.Open "Provider= Microsoft.Jet.OLEDB.4.0; data source=" & ThisWorkbook.FullName & ";Extended Properties=Excel 8.0;"
        lrs.Open "select [loai vt], [so luong], [don gia], [thanh tien] From [TH$] WHERE ucase([TEN#CTY]) Like '" & UCase(Target) & "' ", cnn, 1, 3
              [B5:E6000].ClearContents
              [B5].CopyFromRecordset lrs
        lrs.Close: Set lrs = Nothing: cnn.Close: Set cnn = Nothing
    End If
    
End Sub
Bài này dùng Advanced Filter sẽ ngắn gọn dễ hiểu hơn:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$A$2" Then
    With Target.Parent
      Sheets("TH").[A2:E10000].AdvancedFilter 2, .[A1:A2], .[A4:D4]
    End With
  End If
End Sub
 

File đính kèm

Bài này dùng Advanced Filter sẽ ngắn gọn dễ hiểu hơn:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$A$2" Then
    With Target.Parent
      Sheets("TH").[A2:E10000].AdvancedFilter 2, .[A1:A2], .[A4:D4]
    End With
  End If
End Sub

Chiêu này đúng là tuyệt chiêu. Chiêu này có thể đảo cột khi copy, tuy nhiên người dùng phải lưu ý dòng tiêu đề phải khớp với nhau
 
Muốn dùng ADO thì dùng code sau:

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)

Dim cnn As New ADODB.Connection, lrs As New ADODB.Recordset
    If Target.Address = "$C$3" Then
        cnn.Open "Provider= Microsoft.Jet.OLEDB.4.0; data source=" & ThisWorkbook.FullName & ";Extended Properties=Excel 8.0;"
        lrs.Open "select [loai vt], [so luong], [don gia], [thanh tien] From [TH$] WHERE ucase([TEN#CTY]) Like '" & UCase(Target) & "' ", cnn, 1, 3
              [B5:E6000].ClearContents
              [B5].CopyFromRecordset lrs
        lrs.Close: Set lrs = Nothing: cnn.Close: Set cnn = Nothing
    End If
    
End Sub

Cách của bạn rất hợp với ý mình
Bạn có cách nào thay đổi cai ô listbox kia thành ô nhập liệu được không tại số lượng công ty của mình rất lớn nếu dùng listbox không tiện mình cà rốt cai này lắm thank!
 
Cách của bạn rất hợp với ý mình
Bạn có cách nào thay đổi cai ô listbox kia thành ô nhập liệu được không tại số lượng công ty của mình rất lớn nếu dùng listbox không tiện mình cà rốt cai này lắm thank!
Lấy râu ông nọ cắm cằm bà kia?
Cách của Hai Lúa Miền Tây đâu có list, cách của ndu mới có list, muốn bỏ bạn vào Data\Validation\Settings --> Clear all --> OK

---------------------------------------
To Ndu: Sao dùng AdvancedFilter mà bỏ được cột đầu tiên hay vậy?, mình làm nó toàn ra đủ 5 cột.
 
Lần chỉnh sửa cuối:
To Ndu: Sao dùng AdvancedFilter mà bỏ được cột đầu tiên hay vậy?, mình làm nó toàn ra đủ 5 cột.
Vấn đề ở chỗ tiêu đề của vùng kết quả đã nhập sẵn trước đó rồi. Anh còn nhớ bài này chứ?! Gán tiêu đề trước (trật tự thế nào tùy ý), sau đó AdvancedFilter sẽ giúp ta phần còn lại.
 
Vấn đề ở chỗ tiêu đề của vùng kết quả đã nhập sẵn trước đó rồi. Anh còn nhớ bài này chứ?! Gán tiêu đề trước (trật tự thế nào tùy ý), sau đó AdvancedFilter sẽ giúp ta phần còn lại.

Nhớ rồi, Cảm ơn Phúc đúng là tuyệt chiêu! nhưng mới học một lần chưa thuộc bài. Ẹc, ẹc...
 
cho mình hỏi chút khi mình lọc thì những ô có chứa dữ liệu vừa chữ vừa số thì dữ liệu trong ô đó sau khi lọc sẽ bị mất đi VD như ô số lượng mình để là 10a thi không lọc được
 

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

Back
Top Bottom