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 đỡ!
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 đỡ!
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 đỡ...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
Tạo 1 sheet mới và đặt tên cho nó là BaoCao, code trong sheet đó sẽ như sau: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 đỡ...
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
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
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
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 đỡ...
Xem lại File ở bài 3, nếu ưng ý thì anh sẽ giúp code.