Liệt kê danh sách (5 người xem)

Liên hệ QC

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

Cá ngừ F1

( ͡° ͜ʖ ͡°)
Thành viên BQT
Moderator
Tham gia
1/1/08
Bài viết
2,579
Được thích
3,723
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Quan hệ.. và quan hệ..
E có 1 bảng dữ liệu khách hàng (chi tiết e mô tả như file đính kèm). E muốn liệt kê danh sách khách đáo hạn.
Câu hỏi và mô tả e nêu ra trong file.
Mong các anh/chị giúp đỡ!
 

File đính kèm

E có 1 bảng dữ liệu khách hàng (chi tiết e mô tả như file đính kèm). E muốn liệt kê danh sách khách đáo hạn.
Câu hỏi và mô tả e nêu ra trong file.
Mong các anh/chị giúp đỡ!

ko được hoàn hảo như yêu cầu của bạn.................bạn xem cái nào xài được thì xài...........
yêu cầu khó vậy chắc nhờ thầy viết vba chứ cthức chắc ko kham nổi
 

File đính kèm

Lần chỉnh sửa cuối:
E có 1 bảng dữ liệu khách hàng (chi tiết e mô tả như file đính kèm). E muốn liệt kê danh sách khách đáo hạn.
Câu hỏi và mô tả e nêu ra trong file.
Mong các anh/chị giúp đỡ!


Thử dùng PivotTable xem sao, Click C1 chọn ngày và nhấn OK.
 

File đính kèm

ko được hoàn hảo như yêu cầu của bạn.................bạn xem cái nào xài được thì xài...........
yêu cầu khó vậy chắc nhờ thầy viết vba chứ cthức chắc ko kham nổi
Dạ. Cấu trúc dữ liệu cũng chuối..nên phải theo vậy ạh. Anh/chị có giải pháp bằng code mong giúp đỡ...
 
Dạ. Cấu trúc dữ liệu cũng chuối..nên phải theo vậy ạh. Anh/chị có giải pháp bằng code mong giúp đỡ...
Tạo 1 sheet mới và đặt tên cho nó là BaoCao, code trong sheet đó sẽ như sau:

Khai báo và mở kết nối

Mã:
Dim cnn As Object, lrs As Object
Const lsSQL = "SELECT F1,F2,F3, 'Yes' AS F6 FROM [data$A2:E11] " & _
        "UNION ALL " & _
        "SELECT F1,F4,F5,'No' AS F6 FROM [data$A2:E11]"
Sub MoKetNoi()
Set cnn = CreateObject("ADODB.Connection")
Set lrs = CreateObject("ADODB.Recordset")
With cnn
    .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                        "Data Source=" & ThisWorkbook.FullName & _
                        ";Extended Properties=""Excel 8.0;HDR=No;IMEX=1;"";"
    .Open
End With

End Sub

Lấy ngày duy nhất mỗi khi chọn sheet BaoCao

Mã:
Private Sub Worksheet_Activate()
Set cnn = CreateObject("ADODB.Connection")
Set lrs = CreateObject("ADODB.Recordset")
MoKetNoi
With lrs
    .ActiveConnection = cnn
    .Open "SELECT DISTINCT F3 FROM (" & lsSQL & ") WHERE F3 IS NOT NULL ORDER BY F3"
End With
With Sheets("BaoCao")
   .[I1:I100].ClearContents
   .[I1].CopyFromRecordset lrs
   .Range("I1:I" & .[I65500].End(xlUp).Row).Name = "List"
 End With
lrs.Close: Set lrs = Nothing
cnn.Close: Set cnn = Nothing
End Sub

Lọc dữ liệu dựa vào cell B2

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$2" Then
    Set cnn = CreateObject("ADODB.Connection")
    Set lrs = CreateObject("ADODB.Recordset")
    MoKetNoi
    With lrs
        .ActiveConnection = cnn
        .Open "SELECT F2,F6 FROM (" & lsSQL & ") WHERE F3=#" & Format(Target.Value, "dd-MMM-yyyy") & "# ORDER BY F1,F6 desc"
    End With
    With Sheets("BaoCao")
       .[A5:D100].ClearContents
       .[B5].CopyFromRecordset lrs
       .Range("A5:A" & .[B65500].End(xlUp).Row).FormulaR1C1 = "=ROW()-4"
    End With
    lrs.Close: Set lrs = Nothing
    cnn.Close: Set cnn = Nothing
End If
End Sub
 

File đính kèm

Cho em hỏi, nếu ko dùng ngày mà dùng Ký hiệu bằng chữ thì dòng .Open "SELECT F2,F6 FROM (" & lsSQL & ") WHERE F3=#" & Format(Target.Value, "dd-MMM-yyyy") & "# ORDER BY F1,F6 desc" sẽ được thay bằng gì để có thể hoạt động (đây đang định dạng dd-MMM-yyyy). Cám ơn anh./.
 
Web KT

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

Back
Top Bottom