Tạo dòng "Tổng cộng cuối trang"

Liên hệ QC

handung107

Thành viên gắn bó
Thành viên danh dự
Tham gia
30/5/06
Bài viết
1,630
Được thích
17,436
Nghề nghiệp
Bác sĩ
Tạo ra dòng 'tổng đến hết trang' và 'số mang sang' cho bảng tính nhiều trang

Vọng Phúc​

Khi in bảng tính trong Exel, làm thế nào để khi in ra các trang trong 1 sheet đều có dòng cuối trang của sheet đó ( dòng này là dòng tổng cộng do mình tạo ra không phải footer) ?

Ví dụ như trên sổ quỹ tiền mặt, cuối mỗi trang ta phải có dòng tổng, và sang đầu trang sau phải có số dư mang sang từ trang trước

Dòng tổng cộng này là rất cần thiết với thủ quỹ hay kế toán bằng tay trong việc cộng sổ hay kiểm tra sai sót. Đối với kế toán máy thì có thể bỏ qua

Muốn tạo ra dòng tổng cộng này, và cả dòng mang sang từ trang trước, ta thực hiện một macro đặt page setup và cố định độ cao dòng, mục đích là để có số dòng cố định trên 1 trang giấy in. Sau đó ta thực hiện insert dòng tổng phía dưới trang, insert dòng tiêu đề của trang sau, insert dòng mang sang từ trang trước, và đặt công thức tính toán vào các ô tương ứng

Trong trường hợp ta cần tính toán lại, hoặc thêm bớt dòng dữ liệu, nên ta cũng cần làm một cái macro ngược lại, tức là xóa đi những dòng dữ liệu đã thêm vào
 
Cộng dồn số liệu

Nhưng ý của tớ là 1 sheet có nhiều trang cơ, cứ thế dồn số liệu tổng từ trang này sang trang khác chứ ko phải là chuyển sang sheet mới đâu bạn
Giả sử ở Sheet1 ô B15 là ô trang cuối có số liệu đã cộng dồn của bạn, thì ở sheet2 với ô B1 là ô đem sang thì công thức chỉ là:

Ô B1 (của sheet2) =Sheet1!B15
 
Upvote 0
Chào mọi người mình cũng rất quan tâm đến bài viết này nhưng thật tiếc vẫn chưa có đáp án.
Mình có 1 sheet Nhật ký chung cần phải có số trang và số dòng của trang. Nhìn vào sheet in thì rõ ràng rồi nhưng vấn đề là mình không muốn đánh tay vào là trang này là trang số 1 2 hoặc 3 vì mình có tới 200 trang trên 1 sheet cơ, nên mình cũng muốn các bạn vào giúp mình ở đây nhé: http://www.giaiphapexcel.com/forum/showthread.php?92023-Giúp-mình-vba-cho-kết-quả-là-số-Page-!
******
 
Lần chỉnh sửa cuối:
Upvote 0
sao mình tải về mà không thấy có mẫu mà chỉ có thấy sổ của bác thôi bác muontennguoikhac? làm thế nào để nó ứng dụng được vào file của em?
 
Upvote 0
Cái cách này của TigerTiger quả thật rất hay.

Tôi đã cải tiến thêm một ít từ code của TigerTiger.

- Làm thêm menu.
- Cho phép lưu nhiều mẫu và cho chọn mẫu bằng 1 cái userform - hãy còn thô sơ.
- Cho phép chèn vào khi mở file khác (không cần copy vào file mẫu).
- Cho chọn cột cần cộng dồn (1,2,3 hoặc nhiều cột...)
- Có tính đến việc chèn vào sẽ làm thay đổi số trang in (tăng thêm so với không chèn các dòng tổgn cộng).
- ...
sao e tải rồi mà không biết phải làm thế nào để ứng dụng được vào file của em vậy bác, cái file của bác chỉ mỗi mẫu sổ vậy còn mẫu bảng thì sao?
 
Upvote 0
TigerTiger đã phát triển lại CODE của Đào Việt Cường (gần như đổi hoàn toàn)

Giờ cho phép cộng chuyển trang, cộng dồn, rồi tổng quát hóa các trang cho phép ký lun (định nghĩa qua name ở sheet TEMP) - trang cuối có footer khác hẳn
Tigertiger đã thử với chiều cao dòng bất kỳ
Dĩ nhiên là các công thức cộng chuyển đúng với file ví dụ -> file khác thì cần sửa lại tt cột trong code cho hợp lý

PHP:
Option Explicit

Public Sub AddFooterX()
Application.ScreenUpdating = False
Dim myPage As HPageBreak, iP As Integer, iRb As Integer, iRe As Integer, nRbt As Integer, iReE As Integer
Dim nP As Integer

SOKT.Range("A13").Select
SOKT.Cells.RemoveSubtotal

iRb = TEMP.Range("DongBatDau").Value
iReE = TEMP.Range("DongCuoiCung").Value + 1
nRbt = TEMP.Range("CONGHETTRANG").Rows.Count

nP = SOKT.HPageBreaks.Count
SOKT.Range("A" & iReE).Value = 1
SOKT.Range("A" & iReE + 1 & ":A" & (iReE + nP * nRbt)).Formula = "=R[-1]C+1"

nP = SOKT.HPageBreaks.Count
SOKT.Range("A" & iReE & ":A" & (iReE + nP * nRbt)).ClearContents

iP = 0
With SOKT

For iP = 1 To nP + 1
    If iP <= nP Then
        iRe = SOKT.HPageBreaks(iP).Location.Row - nRbt + 1
        TEMP.Range("CONGHETTRANG").Copy
    Else
        iRe = nP * nRbt + TEMP.Range("DongCuoiCung").Value + 1
        TEMP.Range("CongTrangCuoi").Copy
    End If
    Rows(iRe).Insert xlShiftDown, True
    .Range("F" & iRe).Formula = "=SUBTOTAL(9,F" & iRb & ":F" & (iRe - 1) & ")"
    .Range("G" & iRe).Formula = "=SUBTOTAL(9,G" & iRb & ":G" & (iRe - 1) & ")"
    
    .Range("F" & iRe + 1).Formula = "=SUBTOTAL(9,F" & TEMP.Range("DongBatDau").Value & ":F" & (iRe - 1) & ")"
    .Range("G" & iRe + 1).Formula = "=SUBTOTAL(9,G" & TEMP.Range("DongBatDau").Value & ":G" & (iRe - 1) & ")"
    If iP <= nP Then
        .Range("F" & (iRe + nRbt - 1)).Formula = .Range("F" & (iRe + 1)).Formula
        .Range("G" & (iRe + nRbt - 1)).Formula = .Range("G" & (iRe + 1)).Formula
    Else
        .Range("F" & iRe + 2).Formula = "=F" & TEMP.Range("DongBatDau").Value - 1 & "+F" & (iRe + 1) _
                                            & "-G" & TEMP.Range("DongBatDau").Value - 1 & "-G" & (iRe + 1)
        If .Range("F" & iRe + 2).Value < 0 Then
            .Range("G" & iRe + 2).Formula = "=-F" & TEMP.Range("DongBatDau").Value - 1 & "-F" & (iRe + 1) _
                                            & "+G" & TEMP.Range("DongBatDau").Value - 1 & "+G" & (iRe + 1)
            .Range("F" & iRe + 2).ClearContents
        End If
    
    End If
    iRb = iRe + nRbt
Next iP
End With
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
mong nhận được góp ý

xem file gửi kèm - cách nhập thông số trong sheet TEMP

em thấy code này rất hay hợp với bài này của em mà em chưa giải quyết được mong bác giúp đỡ. chi tiết em ghi rõ file đính kèm
 

File đính kèm

  • xoa dong trong.xlsm
    688.8 KB · Đọc: 28
Upvote 0
Em cũng mượn file này để diễn giải: em Nhập báo cáo hàng ngày (12 tháng trên 01 file excel), nhưng cuối mỗi tháng em phải in báo cáo cho tháng đó. Trang cuối cùng phải có tổng cộng và người lập (họ tên), người duyệt (Họ tên). (Em không dùng header/footer được, Vì header/footer lại nằm cuối trang giấy). Hướng dẫn giúp em giải quyết khó khăn này. Cảm ơn Anh/Chị.
 

File đính kèm

  • EndPageSum.xls
    59 KB · Đọc: 14
  • EndPageSum.xls
    59 KB · Đọc: 14
Upvote 0
Em Nhập báo cáo hàng ngày (12 tháng trên 01 file excel), nhưng cuối mỗi tháng em phải in báo cáo cho tháng đó.
Trang cuối cùng phải có tổng cộng và người lập (họ tên), người duyệt (Họ tên). (Em không dùng header/footer được, Vì header/footer lại nằm cuối trang giấy). Hướng dẫn giúp em giải quyết khó khăn này. Cảm ơn Anh/Chị.

Bạn tham khảo file này xem có thỏa í bạn không nha.
 

File đính kèm

  • gpeTaiChanh.rar
    22.7 KB · Đọc: 123
Upvote 0
File báo cáo của em không có dòng tổng cộng cuối trang, Vì em phải nhập hàng ngày trên file này đến 12 tháng. Khi em báo cáo dùng filters lọc tháng để in thì dòng cuối cùng phải có dòng tổng cộng (để sếp em ký nháy vào tổng) và người lập, người duyệt. Hiện tại em phải copy sang sheet khác hàng tháng để in, em thấy thủ công quá, nên nhờ Anh/Chị có cách nào nhanh hơn giúp em để tiết kiệm thời gian. Do em diễn đạt chưa hết ý, cũng nhờ Anh/Chị xem lại file em mượn tạm để diễn giải. Em chân thành cảm ơn.
 

File đính kèm

  • Mau-EndPageSum.xls
    51 KB · Đọc: 24
  • Mau-EndPageSum.xls
    74.5 KB · Đọc: 18
Upvote 0
Cho em hỏi sao em tải về áp dụng trên file của em thì lại không chèn thêm dòng được mà nó cộng ngay dòng cuối cùng và đầu tiên của trang sau vậy ạ? Có cách nào chỉ giúp em không ạ
 
Upvote 0
Xin gửi các bạn File Add-Ins.
Cộng tổng cuối từng trang và các lựa chọn, không phụ thuộc vào chiều cao dòng, tự động thêm HPageBreak vào những trang bị nhỡ do cỡ dòng thay đổi.
- Cộng theo các cột cần cộng
- Chuyển kết quả cuối trang trước sang đầu trang sau hoặc cộng dồn các trang trước đặt vào đầu trang sau.
- Định dạng dòng chèn thêm vào.
- Xoá đi các dòng đã chèn vào ở các bước trước
- Lưu các thiết lập cho lần làm việc sau.
Các bạn test thử, hiện nay tôi không có File nào có nhiều dữ liệu để thử nên chưa dám chắc chắn nó làm việc hoàn hảo, có gì xin cho ý kiến.
Sao em tải về máy và dùng chức năng chèn tổng số cuối trang thì lại không chèn được dòng mới mà nó cộng ngay trên dòng cuối cùng và đầu cùng của trang sau vậy ạ. Có cách gì chỉ giúp em không ạ
 
Upvote 0
Cảm ơn tác giả đã chia sẻ !
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom