Xin giúp đỡ lọc dữ liệu bằng VBA theo năm

Liên hệ QC

andyminh

Thành viên chính thức
Tham gia
3/8/12
Bài viết
65
Được thích
4
HI AC GPE

Mình đang làm file theo dõi hợp đồng, thanh toán hợp đồng. Có sheet tổng hợp thông tin của hợp đồng theo năm.
cụ thể: tại Sheet TH, nếu điền năm vào ô L1 (ví dụ là năm 2020), thì tại bảng dưới sẽ lấy thông tin số hợp đồng, nội dung, ngày ký, tên khách hàng, mã khách hàng, giá trị hợp đồng của các hợp đồng đã ký trong năm 2020 TỪ SHEET HD, và lấy giá trị thanh toán của hợp đồng tương ứng từ SHEET TT.

mong AC GPE có thể giúp mình vấn đề này.
Thanks nhiều.
 

File đính kèm

  • filemau.xlsm
    22.1 KB · Đọc: 23
Nó thế này mà:
LoạiSố hợp đồng
Số 01-2020/HD/ABC-EP
ĐĐHSố 09/ĐĐH-KHHĐ-2020
Số 02-2020/HĐ/XYZ-EP
ĐĐHSố 08/ĐĐH-KHHĐ-2020

Làm gì có chuyện có 2 danh sách trong Validation?
 
Upvote 0
Nó thế này mà:
LoạiSố hợp đồng
Số 01-2020/HD/ABC-EP
ĐĐHSố 09/ĐĐH-KHHĐ-2020
Số 02-2020/HĐ/XYZ-EP
ĐĐHSố 08/ĐĐH-KHHĐ-2020

Làm gì có chuyện có 2 danh sách trong Validation?
ko ý của mình là nếu C13 mình chọn là HĐ, thì D13 nó liệt kê tất cả số hợp đồng của Cột E, Sheet HĐ để mình chọn số hợp đồng cho nhanh.
Nếu C14 mình chọn là DDH thì D14 sẽ liệt kê tất cả các số đơn đặt hàng của cột C, sheet DDH để mình chọn số đơn đặt hàng cho nhanh ấy.
Tức là mình chọn loại nào thì nó chỉ liệt kê loại đó thôi ấy. Như hình 2,3 mình gửi á (Hình đó mình dùng = hàm, nên file số lượng hợp đồng với đơn đặt hàng nhiều, file chạy chậm quá)
 
Upvote 0
Thì mình thực hiện thử 4 dòng đều đạt í nguyện của bạn mà:
Bạn chú í thấy số HĐ & ĐĐH trong hình đấy thay.
 
Upvote 0
Thì mình thực hiện thử 4 dòng đều đạt í nguyện của bạn mà:
Bạn chú í thấy số HĐ & ĐĐH trong hình đấy thay.
Mình thử thay số HĐ thì trong list nó vẫn hiện cả số đơn đặt hàng lẫn số hợp đồng nè bạn.
 

File đính kèm

  • 4.png
    4.png
    14.6 KB · Đọc: 8
Upvote 0
Mình thử thay số HĐ thì trong list nó vẫn hiện cả số đơn đặt hàng lẫn số hợp đồng nè bạn.
Thôi đúng là mình chưa lường hết mọi trường hợp;
Bạn chịu khó thay 2 dòng lệnh trong macro này:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Sh As Worksheet
 If Not Intersect(Target, [C4:C999]) Is Nothing Then
    Set Sh = ThisWorkbook.Worksheets("GPE")
    If Left(Target.Value, 1) = "H" Then
        Sh.[C2:C999].Copy Destination:=Sh.[A2]  '   **  '
    ElseIf Right(Target.Value, 1) = "H" Then
        Sh.[e2:E999].Copy Destination:=Sh.[A2]  '   **  '
    End If
    TaoValidation Target.Offset(, 1)
 End If
End Sub
& rất xin lỗi bạn do sơ suất!
 
Upvote 0
Thôi đúng là mình chưa lường hết mọi trường hợp;
Bạn chịu khó thay 2 dòng lệnh trong macro này:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sh As Worksheet
If Not Intersect(Target, [C4:C999]) Is Nothing Then
    Set Sh = ThisWorkbook.Worksheets("GPE")
    If Left(Target.Value, 1) = "H" Then
        Sh.[C2:C999].Copy Destination:=Sh.[A2]  '   **  '
    ElseIf Right(Target.Value, 1) = "H" Then
        Sh.[e2:E999].Copy Destination:=Sh.[A2]  '   **  '
    End If
    TaoValidation Target.Offset(, 1)
End If
End Sub
& rất xin lỗi bạn do sơ suất!
cảm ơn bạn rất nhiều, code hiện tại đã chạy ổn. Trong code mình có thể ẩn các dòng trống trong list danh sách sổ xuống không bạn
 

File đính kèm

  • Screenshot_4.png
    Screenshot_4.png
    24.3 KB · Đọc: 7
Upvote 0
Web KT

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

Back
Top Bottom