Advanced Filter và Macro trong Kế toán excel

  • Thread starter tranngocthao
  • Ngày gửi
T

tranngocthao

Sơ cấp
26/9/07
3
0
1
36
đồng nai
Mình muốn học cách sử dụng kết hợp Advanced Filter và macro để tạo Sổ cái từ Nhật ký dữ liệu như trong file đính kèm. (Mình không rành về đọc code nên mở cái người ta làm sẵn ra không hiểu được) Các bạn ai biết hướng dẫn giúp mình nha :).

P/S: nếu ai có thể dùng Teamviewer giúp mình thì mình rất cảm ơn !!!!!
YM: ngocthao12a2
 

Đính kèm

  • A2.xls
    158 KB · Lượt xem: 486
Khóa học Quản trị dòng tiền
QDuc

QDuc

Cao cấp
3/6/06
254
18
18
Biển khơi
Ðề: /(/hững mong là không fải đưa file lên!

(*) Sửa Validation tại ô [i8] thuộc trang tính ‘So Cai’:
Vô menu Insert -> Name -> Define . . .
Trong hộp Names in Workbook ta chọn dòng ‘TKSC’
Trong hộp Refers to ta sửa lại thành =’Sheet1’!$A$1:$A$103
Sau đó nhấn vô nút {OK}
(Kiểm tra kết quả tại [I8] có theo iêu cầu chúng ta hay chưa?

(*) Fải chuột vô tên ‘SO CAI’ trên thanh SheetName & chọn dòng cuối trên menu vừa xuất hiện;
Ta sẽ được đưa đến CS (cửa sổ) VBE của trang tính này;
Tại đầy đang có macro nội dung như sau
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address = [i8].Address Then loc
End Sub
Ta sẽ fải sửa lại nội dung câu lệnh này, sau khi tạo cho mình 1 macro lọc AdvancedFilter bằng các bước sau:

(1) Dùng chuột chọn toàn bộ vùng’M6:N8’ của trang ‘SO CAI’ & thực hiện fương thức Cut
(2) Sang trang tính ‘NKDL’ ta dán vô vùng [AB1:AC3] & tiếp theo ta thu nhỏ các cột [N:Z] tối đa;
(3) Tiếp nữa, tại trang này ta copy vùng ‘A6:M6’ đến vùng bắt đầu từ [AA6]
(4) Tiến hành ghi macro:
Vô menu Tool -> Macro & chọn dòng Record New Macro. . .
Ta bấm vô nút {OK} (như vậy là ta chấp nhận tên macro do VBE áp đặt;
(Từ đây trở đi, hành động của ta sẽ được ghi lại thành những dòng lệnh trong macro)

Ta vô menu Data, chọn dòng Filter; Tiếp theo chọn dòng Advanced Filter. . . ;
Trong CS con vừa xuất hiện, tại ngăn Action ta chọn dòng ‘Copy to Another location
Trong ngăn List range ta nhập địa chỉ A6:M591;
Trong ngăn Criteria ta nhập ‘AB1:Ac3’
Trong ngăn Copy to ta nhập địa chỉ AA6:AL6 & bấm vô nút {OK}
Ta kết thúc công chuyện ghi macro bằng 1 trong 2 cách sau:
(a) Bấm vô nút ‘Stop Recording’ nếu may mắn bạn nhìn thấy nó đâu đó trên trang tính;
(b) Vô menu Tool -> Macro -> Stop Recording
(5) Xem & chỉnh sửa macro:
Bạn tìm xem trong module nào đó có macro na ná vầy
Mã:
 Sub Macro1()
    Range("A6:M591").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
        "AB1:AC3"), CopyToRange:=Range("AA6:AL6"), Unique:=False
End Sub

Thì tô chọn toàn bộ macro & áp dụng fương thức Cut để đem đến CS VBE của trang ‘SO CAI’ & dán vô đó.

(6) Sửa & thêm các dòng lệnh để ta có 2 macro sau:
Mã:
 Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address = [i8].Address Then Macro1
End Sub
Mã:
Sub Macro1()
 Dim Sh As Worksheet, Rng As Range
 Dim Rws As Long
 
 Set Sh = ThisWorkbook.Worksheets("NKDL")
 Set Rng = Sh.[C6].CurrentRegion
 Rws = Rng.Rows.Count
 Set Rng = Sh.[B6].Resize(Rws, 12)
 Rng.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sh.Range( _
    "AB1:AC3"), CopyToRange:=Sh.Range("AA6:AL6"), Unique:=False
 'Xóa Du Lieu Cu:'
 Rws = [B18].CurrentRegion.Rows.Count
 [A18].Resize(Rws, 12).ClearContents
 'Copy Du Lieu Loc Sang:'
 Sh.[AB7].CurrentRegion.Offset(1).Copy Destination:=[A18]
    
End Sub
 

Xem nhiều

Webketoan Zalo OA