• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

ngắt trang excel bằng vba

Nơi trao đổi về VBA (Visual Basic for Application), lập trình cho ứng dụng Microsoft Office, AutoCAD...

Điều hành viên: tungblt

yennhi1906
Bài viết: 3
Ngày tham gia: T.Sáu 21/10/2016 10:15 am
Has thanked: 1 time

ngắt trang excel bằng vba

Gửi bàigửi bởi yennhi1906 » T.Sáu 21/10/2016 10:39 am

Chào các anh, chị!

Em đang gặp vấn đề trong việc ngắt trang in. Công ty e có nhiều bộ phận nhỏ ( khoảng hơn 100 bộ phận). Mỗi bộ phận có số người khác nhau. Khi in lương em muốn ngắt trang khi hết 1 bộ phân. Ví dụ bộ phận đó có 90 người... thì thường trang 1 in được 40 người, trang 2: 40 người... trang 3 : 10 người... trang 4 sẽ là bộ phận khác. Làm sao mình có thể thiết lập chế độ ngắt trang như vậy tự động được thay vì ngắt thủ công insert page break.


Mong sự giúp đỡ của anh chị nhiều lắm.



Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: ngắt trang excel bằng vba

Gửi bàigửi bởi truongphu » T.Sáu 21/10/2016 4:25 pm

Câu trả lời dựa trên giả thiết bạn biết VBA nhất định.
Duyệt trên cột có head là "Bộ phận", khi dữ liệu thay đổi, VBA phải chèn ngắt trang.
VD:
  1. Dim R As Range
  2. Set R = ActiveSheet.UsedRange
  3. If Cells(i, 20) <> Cells(i - 1, 20) then ActiveWindow.SelectedSheets.HPageBreaks.Add  Before:=R.Cells(i, 20)

Câu code trên (Excel 2007) bạn phải edit cho phù hợp dữ liệu của bạn.
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

yennhi1906
Bài viết: 3
Ngày tham gia: T.Sáu 21/10/2016 10:15 am
Has thanked: 1 time

Re: ngắt trang excel bằng vba

Gửi bàigửi bởi yennhi1906 » T.Bảy 22/10/2016 3:19 pm

hi bạn!

Cảm ơn bạn truongphu nhiều lắm ạ!

Thật sự mình chỉ mới chập chững biết Vba thôi ( thấy nó rất hay nhưng chưa có biết về nó nhiều)... mình đang tự học. Mình làm lương trên hệ thống phần mềm của công ty nên ngắt trang in theo từng bộ phận đã được chỉnh rồi.. nhưng mình muốn tìm hiểu để áp dụng cho trường hợp khác khi cần...Mình đang dùng excel 2013 và muốn gửi file kết quả ngắt trang xuẩt từ hệ thống cho mọi người dễ hiểu nhưng sao nhiều lần mình gửi đều báo lỗi" Phần mở rộng tập tin không hợp lệ"

Bạn nào biết nguyên nhân thì chỉ mình với nha.
Sửa lần cuối bởi yennhi1906 vào ngày T.Bảy 22/10/2016 3:38 pm với 2 lần sửa.

yennhi1906
Bài viết: 3
Ngày tham gia: T.Sáu 21/10/2016 10:15 am
Has thanked: 1 time

Re: ngắt trang excel bằng vba

Gửi bàigửi bởi yennhi1906 » T.Bảy 22/10/2016 3:24 pm

Hi anh, chị!

Em gửi file kết quả ngắt trang mà e cần. Mong anh chị giúp đỡ e. Cảm ơn
Tập tin đính kèm
ngắt trang.JPG
ngắt trang.JPG (67.95 KiB) Đã xem 833 lần

sachbong
Bài viết: 4
Ngày tham gia: T.Tư 23/11/2016 2:30 pm

Re: ngắt trang excel bằng vba

Gửi bàigửi bởi sachbong » T.Ba 29/11/2016 10:22 pm

Có lẽ bài của anh Truongphu sót For.

Tôi đã viết
Dim R As Range, i&
Set R = ActiveSheet.UsedRange
For i = 5 To R.Rows.Count
If Cells(i, 1) <> Cells(i - 1, 1) Then
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=R.Cells(i, 1)
End If
Next

Nhưng nếu bạn đã Subtotal thì thay if trên bằng (tôi coi cột STT là cột A tức cột 1)
If left(Cells(i,1),6)="Total " then
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=R.Cells(i-1, 1)


Quay về “Visual Basic for Application (VBA)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách