nhatthuyen
Thành viên mới

- Tham gia
- 25/3/12
- Bài viết
- 16
- Được thích
- 1
...............................................Xin chào các anh chị,
Em có ý tưởng và đoạn code cùi chạy không được nên nhờ anh chị giúp đỡ.
Hình 1
![]()
Hình 2
![]()
Ai làm kế toán ngân hàng chắc đều phải xem file sao kê giao dịch của ngân hàng để biết Khách hàng nào chuyển tiền cho mình để nhập vào hệ thống. Cty em thì số lượng giao dịch trên một ngày rất nhiều. Em cần phải biết từng đó số giao dịch là của khách nào, sumif khách đó tổng cộng được bao nhiêu, kế toán ngân hàng đã nhập đúng và đủ hay không. Vậy nên em viết macro ý tưởng là: Trong ghi chú chuyển tiền của file sao kê sẽ có cụm từ (tên cty khách hàng, tên cá nhân đặc trưng) (Hình 1). Nên em lập thêm sheet bảng dò (Hình 2). Lần lượt từng cell ghi chú sẽ dò kiểu hàm search (InStr) có trong bảng dò thì trả về kết quả theo bảng dò luôn.
Ngu kiến của em là vậy, nhờ anh chị giúp đỡ. Thêm nữa đây là code theo kiểu dài dòng nhưng chay ok, từ đó em mới nghĩ làm bảng dò (hình 2) để dễ dàng sửa và thêm thông tin khách hàng.
Mã:Sub Macro1()Dim i As Integer For i = 1 To 100 If InStr(1, Workbooks("TEST01.xlsm").Worksheets("Sheet1").Range("A" & i), "AA") + InStr(1, Workbooks("TEST01.xlsm").Worksheets("Sheet1").Range("A" & i), "A A") > 0 Then Workbooks("TEST01.xlsm").Worksheets("Sheet1").Range("B" & i) = "Cong ty AA" Else If InStr(1, Workbooks("TEST01.xlsm").Worksheets("Sheet1").Range("A" & i), "BB") > 0 Then Workbooks("TEST01.xlsm").Worksheets("Sheet1").Range("B" & i) = "Cong ty BB" Else If InStr(1, Workbooks("TEST01.xlsm").Worksheets("Sheet1").Range("A" & i), "CC") + InStr(1, Workbooks("TEST01.xlsm").Worksheets("Sheet1").Range("A" & i), "C C") > 0 Then Workbooks("TEST01.xlsm").Worksheets("Sheet1").Range("B" & i) = "Cong ty CC" End If End If End If Next i End Sub
=> Code với với ý tưởng theo hinh 2:
Mã:[FONT=&]Sub Macro_trans() Dim i, j As IntegerFor i = 2 To 100 For j = 4 To 100 If InStr(1, Worksheets("sheet_ngan_hang").Range("A" & i), Worksheets("Sheet_bang_do_tim").Range("A" & j)) > 0 Then Worksheets("sheet_ngan_hang").Range("C" & i) = Worksheets("Sheet_bang_do_tim").Range("B" & j) Else Next j If j = 100 Then End If Next i End If End Sub[/FONT]
Anh chị giúp em với.
Cảm ơn anh chị.
Lần chỉnh sửa cuối: