Chuyển CV cuối kỳ lên đầu kỳ như thế nào?

Thảo luận trong 'Ứng dụng Excel' bắt đầu bởi heroic, 11 Tháng bảy 2005.

2,625 lượt xem

  1. heroic

    heroic Thành viên hoạt động

    Bài viết:
    56
    Đã được thích:
    0
    Nơi ở:
    vn
    Nghiệp vụ này chúng ta rất hay phải làm trong công tác kế toán. Nên mình muốn hỏi. Chẳng hạn ta có cột số liệu CKy có 15 dòng, Nếu mình dùng Macro ghi lại các thao tác Chọn cột cuối kỳ rồi copy lên cột đầu kỳ thì tháng sau nếu chỉ có 15 dòng thì chạy lại Macro là OK. Nhưng nếu >15 dòng hoặc nhỏ hơn Macro đó chạy không đúng nữa. Các EFC làm như thế nào chỉ giáo cho mình với!
     
    #1
  2. Bình_OverAC

    Bình_OverAC Over Abnormal / Crazy

    Bài viết:
    845
    Đã được thích:
    7
    Nơi ở:
    Nha Trang
    Có nhiều cách:
    Sau đây là cách dở nhất: Dùng vòng lặp để đếm
    Điều kiện cần có: Có một cột có giá trị liên tục để có thể đếm theo cột này cho đến hết (ví dụ là cột B, cột thường dùng để nêu tên). (câu này hơi khó hiểu nhỉ: giải thích thêm: có nghĩa tất cả các dòng trong cột này đề có một cái gì đó chứ không có ô nào bị bỏ trống)
    Giả sử: dòng tiêu đề là dòng 5
    Đoạn code để đếm:

    i = 4
    Do
    i = i + 1
    Loop until range("B" & i)<>""
    i = i-1

    Sau đó:
    Sau đoạn code này thì giá trị của i chính là số dòng của ô cuối cùng của cột dử liệu:
    Dùng giá trị của chữ i để thao tác với các ô:
    Ví dụ:
    - ô cuối cùng của chuổi dử liệu trong cột B là ô: range("B" & i)
    - nếu bạn muốn chọn cột H để di chuyển thì dùng: Range("H5:H" & i).select

    Có những cách hay hơn nhưng nhờ bạn khám phá. Nếu rảnh tui sẽ trình bày thêm một cách nữa.
    OverAC
     
    #2
  3. Tuanktcdcn

    Tuanktcdcn Lão già ham vui

    Bài viết:
    548
    Đã được thích:
    50
    Nơi ở:
    Hà Nội
    Bạn không cần Macro mà chỉ cần một hàm Vlookup.
    Khi thiết kế bạn tạo trên Report một cột là "Mã" VD ở cột E (đều làm cho các kỳ)
    Bạn mở cả 2 Report, sau đó mở Report của kỳ trước đặt tên vùng bắt đầu từ cột "Mã"->"Cuối kỳ" là "Dulieu" (có thể tên khác), mở Report của kỳ này tại cột "Kỳ trước" bạn dùng công thức =VLOOKUP(E4,Dulieu,3,0) (số 3 chính là cột chứa số liệu cuối kỳ trong vùng "Dulieu") Copy cho tất cả các ô.
    Với cách làm trên thì số liệu của chỉ tiêu nào sẽ vào chỉ tiêu đó bạn không sợ nhầm, nếu chỉ tiêu nào không có số liệu thì chúng tỏ chỉ tiêu này không có trong kỳ trước.
    Chúc bạn thành công!
     
    #3
  4. adam_tran

    adam_tran Steel Partner

    Bài viết:
    1,373
    Đã được thích:
    32
    Nơi ở:
    Goooogle
    Mã lệnh này cũng làm được như trên, nhưng cũng dở .. thứ nhì để viết macro dùng chuyển số dư:

    Range("B4").Select
    Selection.End(xlDown).Select
    Lệnh end có các tham số xlDown, xlUp, xlLeft, xlRight thì phải.
    Lệnh này cũng dùng để di chuyển ô sáng tới cuối cột/hàng có giá trị (hoặc không giá trị) liên tục. Giống như ta giữ Ctrl + phím di chuyển.

    Tốt nhất là tạo một sheet hoặc vùng tổng hợp, rồi dùng vlookup mà chuyển như bạn tuấn nói.
     
    #4
  5. NgânGiang

    NgânGiang Cố lên! Cố lên...

    Bài viết:
    202
    Đã được thích:
    0
    Nơi ở:
    Trong Mây mù
    Ý kiến của adamktt cũng hay

    Theo mình cấu trúc bảng của bạn phải chuẩn.
    Bạn có thể dựa vào điều kiện chuẩn để tìm ô đầu kỳ hay cuối kỳ ví dụ: Tìm chữ "số dư đầu kỳ" rồi di chuyển sang phải 3 ô sẽ là vị trí đặt số dư đầu kỳ.
    Đấy là hướng làm của mình với trường hợp này.
    Còn mình sẽ không làm như yêu cầu của bạn đâu, mà mình hoặc ban hành công thức số dư đầu tháng sau = số dư cuối tháng trước, hoặc copy rối dán giá trị.
    Vì mình chỉ làm macro cho những công việc lặp đi lặp lại, với những trường hợp ít khi lặp lại mình sẽ làm tay thôi (cả tháng mới làm 1 lần như ví dụ này)
     
    #5
  6. heroic

    heroic Thành viên hoạt động

    Bài viết:
    56
    Đã được thích:
    0
    Nơi ở:
    vn
    Qua các ý kiến mình vẫn chưa làm được, vì cuối kỳ kết quả là công thức. khi ta chuyển lên đầu kỳ thì phải dán Value. Chắc nhiều người trong chúng ta vẫn làm thủ công là chọn rồi copy dán value sang cột đầu kỳ. Vậy nếu làm được macro hay cách nào đó thì có phải nhanh không? Rồi còn phải xoá phát sinh tháng trước điền mới p/s tháng này.....
     
    #6
  7. NgânGiang

    NgânGiang Cố lên! Cố lên...

    Bài viết:
    202
    Đã được thích:
    0
    Nơi ở:
    Trong Mây mù
    Trời ạ!
    Thì copy rồi dán giá trị (Nhớ ghi macro quá trình này)
    Sau đó sửa lại macro vừa ghi bằng cách thêm đoạn Macro tìm giá trị :"Số đầu kỳ" rồi dịch sang phải 2, 3, 4.. ô tùy theo cấu trúc bảng.
    .... thế là được chứ gì.
    Ngứa tay quá gõ vài chữ vậy thôi. Mình vẫn bảo lưu ý kiến cũ:
     
    #7
  8. adam_tran

    adam_tran Steel Partner

    Bài viết:
    1,373
    Đã được thích:
    32
    Nơi ở:
    Goooogle
    Lại chuyển số dư -chuyển số trang !!!

    Có rất nhiều cách để chuyển số dư! Tớ đưa ra gợi ý sau:
    - Giả sử số liệu cả năm 2005 của bạn nhập vào 1 sheet. Thì đầu năm bạn chuyển số dư 2004 qua bằng các NV PS không tài khoản đối ứng. Cột ngày ghi ngày 31-12-2004. Thí dụ số dư nợ TK 111 là 100tr, bạn chỉ cần nhập Nợ 111 - 100tr!
    Cách 1: Dùng công thức mảng
    Ô A3 chứa giá trị tháng cần in sổ, ô A4 chứa số hiệu TK
    {=SUM(IF(Ngay<A3, IF(Taikhoan=A4, Tien, 0), 0))}
    Cách 2: Dùng Vlookup
    Tạo 1 sheet riêng chỉ để tính số dư đầu kỳ, cuối kỳ, số PS, số PS lũy kế... rồi look up sang.
    Những cách trên chỉ áp dụng để in sổ ... 1 năm một lần thì tốt! :lol:
     
    #8

Chia sẻ trang này