[Help]- Sửa lại code lọc dữ liệu từ Listbox từ sheet này qua Sheet khác

Liên hệ QC

subasatran

Thành viên hoạt động
Tham gia
17/3/13
Bài viết
114
Được thích
6
Xin chào mọi người,
Mình có sửa 2 sourch code(2 sourch riêng lẻ) (của tranphong2007 vs một anh nào trên diễn đàn về lọc bằng VBA) trên diễn đàn GPE để áp dụng vào nhu cầu làm việc nhưng khi ghép lại thì code không chạy. Nhờ mọi người chỉnh sửa lại giúp.
Nhu cầu của mình khi chọn tại Combobox B6 thì sẽ lọc dữ liệu bên Sheet Data_Detail để dán vào Sheet Report_Detail.
Nếu chọn giá trị trong Combobox B6 khác thì cũng lọc và dán theo giá trị Combobox.
Mặc định khi mở file Excel là sẽ thể hiện toàn bộ giá trị chi tiết Sheet Data_Detail khi chưa chọn Combobox.
Rất mong mọi người giúp đỡ và cám ơn rất nhiều.
 

File đính kèm

  • Test_filter.xlsm
    29.7 KB · Đọc: 9
Bạn hình như định rước vạ vào thân cho khổ.
1./ Xài Validation thay ComboBox có dễ kiểm soát hơn không, với trình độ đang hiện tại về VBA của bạn.
2. Mặc định khi mở file Excel là sẽ thể hiện toàn bộ giá trị chi tiết Sheet Data_Detail khi chưa chọn Combobox.
Chắc chuyện này cần thực hiện khi thoát khỏi trang tính này.

3. Chuyện kẻ viền của bạn là sao? Hình như có dòng thì kẻ, dòng không?
Theo mình thì kẻ sẵn ngàn dòng đi;
Dòng nào không có dữ liệu thì ẩn đi; . . . .
 
Cảm ơn anh @HYen17 đã góp ý,
Thực sự mình không biết Combobox nó gây ra hậu quả thế nào nên không biết "rước hoạ" vào thân ra sao. Vì danh sách ADM rất nhiều(treen 100 nguoi) nên khi dùng Validation rất khó tìm tên nên mình định dùng Combobox cho dễ kiếm tên. Nếu được bạn cho mình biết ưu và khuyênt điểm khi dùng trong trường hợp của mình với.
Do trình độ VBA còn kém nên khi sửa source code ko hiểu được nên trong code có phần kẻ viền. Mình chỉ cần lọc dữ liệu và đưa vào Sheet Summary thôi, kẻ viền mình sẽ kẻ trước cũng được. Trong code mình sẽ bỏ phần tạo viền.
Rất mong mọi người giúp. Cám ơn mọi người
 
Lần chỉnh sửa cuối:
Nhờ mọi người kiểm gia giúp bị lỗi gì vậy nhỉ.
Rất cám ơn mọi người
 

File đính kèm

  • Test_filter1.xlsm
    230.5 KB · Đọc: 18
Nhờ mọi người kiểm gia giúp bị lỗi gì vậy nhỉ.
Rất cám ơn mọi người
Không hiểu ý bạn cho lắm chỉ đoán thôi, bạn sửa code thế này xem đúng ý mình chưa.
Mã:
Public Sub GPE()
Dim sArr(), dArr(), I As Long, J As Long, K As Long
Dim Rws As Long, ADM_Name, fRow As Long
With Sheets("Data_Detail")
    Rws = .Range("A65536").End(xlUp).Row
    sArr = .Range("A3:F" & Rws).Value
End With
ReDim dArr(1 To UBound(sArr), 1 To 6)
ADM_Name = Sheets("Report_Detail").Range("B6").Value
For I = 1 To UBound(sArr)
    If sArr(I, 1) = ADM_Name Then
        K = K + 1
        For J = 1 To 6
            dArr(K, J) = sArr(I, J)
        Next J
    End If
Next I
With Sheets("Report_Detail")
    .Range("A9:F10000").ClearContents
    .Range("A9:F10000").Borders.LineStyle = 0
    If K <> 0 Then .Range("A9").Resize(K, 6) = dArr
End With
End Sub
 
Web KT
Back
Top Bottom