Cho hỏi cách phân thành nhiều trang trên 1 sheet

Liên hệ QC

anhson2005

Thành viên mới
Tham gia
7/7/08
Bài viết
13
Được thích
0
Hiện tại mình đang xử lý 1 file excel với số liệu khoảng 10 sheet. Mỗi sheet là 1 tỉnh, thành phố khác nhau. Các cột trên mỗi sheet đều giống nhau.
Bây giờ giả sử trên sheet Đà Nẵng, mình có 2000 dòng, mình cần phân thành 500 trang và mỗi trang chỉ cần khoảng 4 dòng thôi với mỗi trang gồm các tiêu đề giống nhau thì phải làm như thế nào.
Ví dụ như : Cộng hòa xã hội chủ nghĩa Việt Nam

sau đó mới đến tiêu đề trên các cột
Mọi người chỉ giúp mình với.
Cảm ơn rất nhiều
 
Nói về Page Setup.

Bây giờ giả sử trên sheet Đà Nẵng, mình có 2000 dòng, mình (1) cần phân thành 500 trang và mỗi trang chỉ cần khoảng 4 dòng thôi với (2) mỗi trang gồm các tiêu đề giống nhau thì phải làm như thế nào.
Ví dụ như : Cộng hòa xã hội chủ nghĩa Việt Nam
(3) sau đó mới đến tiêu đề trên các cột
2- Vào menu File/ Page setup/ Header-Footer/ Custom Header, chọn vị trí (trái/ giữa/ hay bên phải trang), nhập nội dung tiêu đề dầu trang, format nó nếu muốn rồi OK. Táy máy thì cũng cứ chọn tiếp Custom footer nhập dòng chữ chân trang.

3- cũng trong page setup, chọn tiếp Sheet, chọn Row to repeat at top = địa chỉ tiêu đề cột trong worksheet.
Nhớ quay lại Page setup/ Margin đặt các lề trên/ dưới, vị trí dòng đầu trang/ dòng chân trang tính từ mép giấy.

bây giờ quay lại vđề 1:
Cách 1:chuyển cursor đến vị trí muốn ngắt trang, Menu Insert/ Page break. Cách này thủ công, nhưng chỉ định chính xác vị trí mình muốn. Nhớ làm ... 500 lần như thế nhé. (Chúc bạn mạnh khoẻ) !$@!!
Cách 2:
Nhớ quay lại Page setup/ Margin đặt các lề trên/ dưới, vị trí dòng đầu trang/ dòng chân trang tính từ mép giấy.
... vậy thì ráng căn sao cho Bottom margin chỉ đủ để in (tiêu đề cột +) 4 dòng thôi. Cách này chẳng cần insert gì ráo, có vẻ ... tự động hơn, (nhưng cầu trời cho 2000 dòng kia cao bằng nhau).

Xong! Chọn Print preview trước để xem cho chắc ăn.
hì, chúc ngủ ngon! :bye1:
 
Chắc bạn muốn phân trang ra để in? Có nhiều cách để làm. Bạn hãy đưa file dữ liệu thử của bạn nên, đảm bảo có nhiều người giúp bạn.
 
Bạn có thể vào Page Setup - vào tab sheet và vào phần row to repeat at top và bạn đặt các dòng cần lặp lại ở các trang là okay
 
lặp lại tiêu đề và ngắt trang.

Để lặp lại tiêu đề vào file\ page setup. trong sheet chọn : row to repeat at top là được.
Còn muốn ngắt trang thì để chế độ: View\page beak preview. Sau đó muốn ngắt ở đâu thì Insert\page beak là được, muốn mấy dòng một trang cũng được mà.( ngắt trang kiểu này hơi thủ công tí)
 
Rất cảm ơn mọi người nhưng mình vẫn chưa thử được.
 
File của mình đây, các bạn làm ơn chỉnh cho mình với
 

File đính kèm

  • phan trang tren 1 sheet.xls
    28.5 KB · Đọc: 107
Lần chỉnh sửa cuối:
Ngắt vài trang thủ công thì được, nhưng nhiều trang không khả thi vì chỉ cần sai 1 dấu ngắt thì các dấu ngắt bên dưới sai theo !
Nếu muốn tự động hóa ngắt trang phải dùng VBA. Muốn thế, dữ liệu phải có 1 trường sắp xếp theo thứ tự và có dấu hiệu nhận biết hết trang.
Ví dụ dưới đây là danh sách 1 hội đồng thi cần in danh sách phòng thi, 1 trang in sẽ in danh sách thí sinh trong cùng 1 phòng. Như vậy dấu hiệu để ngắt trang là số phòng thi chuyển từ số này sang số kế (1 > 2, 2 >3, ...)
Cột Phòng thi là A, dữ liệu bắt đầu từ dòng 2. Tùy thực tế mà các bạn thay đổi các đối số dòng, cột

Mã:
Sub NgatTrang()
Dim rc As Long, stt As Integer
' Macro recorded 08/07/2008 by Pham Duy Long
Sheets("DanhSach").Select   
ActiveSheet.ResetAllPageBreaks  [COLOR=blue] 'Xóa các dấu ngắt trang đã có[/COLOR]
rc = Cells(Cells.Rows.Count, 1).End(xlUp).Row  [COLOR=#0000ff] 'Tìm ô cuối cùng của cột A[/COLOR]
stt = Cells(2, 1)[COLOR=#0000ff]   'Gán số phòng đầu tiên vào biến stt[/COLOR]
For r = 2 To rc   [COLOR=#0000ff] 'Duyệt cột A từ ô đầu đến ô cuối[/COLOR]
  If Cells(r, 1) <> stt Then [COLOR=#0000ff] 'Nếu ô đang duyệt <> stt thì ngắt trang[/COLOR]
    ActiveSheet.HPageBreaks.Add Before:=Cells(r, 1)
    stt = Cells(r, 1)
  End If
Next
End Sub
 

File đính kèm

  • NgatTrang.xls
    90.5 KB · Đọc: 129
Mình còn có thêm một yêu cầu nhỏ nữa thôi. Rất mong các bạn chỉ giáo. Mình học excel lâu quá và cũng ít dùng nên kiến thức còn rât hạn chế mong các bạn giúp đỡ.
 

File đính kèm

  • phan trang tren 1 sheet.xls
    32 KB · Đọc: 63
Xem file đính kèm. Tôi không làm gì khác ngoài cách đã hướng dẫn ờ bài 2.Thiết nghĩ cũng đã viết khá rõ, dễ và đầy đủ!!! Mở file đính kèm và xem lại lần lượt các bước trong bài 2, cách 2.
 

File đính kèm

  • phan trang tren 1 sheet.xls
    43.5 KB · Đọc: 46
Mình còn có thêm một yêu cầu nhỏ nữa thôi. Rất mong các bạn chỉ giáo. Mình học excel lâu quá và cũng ít dùng nên kiến thức còn rât hạn chế mong các bạn giúp đỡ.
Mình giúp bạn in tự động bằng VBA, nhớ enable macro nhé, Thân !
 

File đính kèm

  • In phan trang (dosnet).xls
    54 KB · Đọc: 56
Đây là sub TrangIn tạo bản in cho phèp người dùng thay đổi mẫu in. Căn cứ vào vị trí ô STT, TrangIn sẽ tự dò tìm và xác định số dòng 1 trang in. Muốn in 1 trang bao nhiêu dòng tùy ý. Bạn tạo bảng dữ liệu và 1 mẫu in theo yêu cầu và theo nguyên tắc sau để VBA xác định vị trí:
1. Sheet Danh Sach:
- Phải có cột số thứ tự và tên cột là STT
- Dòng dưới của STT cuối cùng là dòng trống để VBA biết dòng kết thúc

2. Sheet Mau In:
- Phải có cột số thứ tự và tên cột là STT
- Dòng dưới của STT cuối cùng là dòng trống để VBA biết dòng kết thúc
- Các cột trong danh sách in thứ tự như sheet Danh Sach
- Nếu cần in bao nhiêu record thì cột STT đánh số từ 1 đến số đó
Ví dụ cần in 1 trang 10 record thì STT từ 1 đến 10

Mã:
Sub TrangIn()
Dim rDs As Integer, cDs As Integer, cIn As Integer, rInD As Integer, rInC As Integer
Dim stt As Integer
Dim ds As Object
ThisWorkbook.Activate
Set ds = Sheets("DanhSach")
[COLOR=blue]'Xac dinh o du lieu dau tien cua sheet DanhSach
[/COLOR]ds.Select
Cells.Find(What:="stt", After:=Cells(1, 1)).Select
rDs = ActiveCell.Row + 1
cDs = ActiveCell.Column + 1
[COLOR=blue]'Xac dinh o du lieu dau tien cua sheet MauIn[/COLOR]
Sheets("MauIn").Select
Cells.Find(What:="stt", After:=Cells(1, 1)).Select
rInD = ActiveCell.Row + 1
cIn = ActiveCell.Column + 1
[COLOR=blue]'Xac dinh dong so thu tu cuoi cung cua sheet MauIn[/COLOR]
r = rInD
Do
  If Cells(r, cIn - 1) = "" Then
    rInC = r - 1
    Exit Do
  End If
  r = r + 1
Loop
[COLOR=blue]'Lap danh sach In
[/COLOR]Do
  Range(Cells(rInD, cIn), Cells(rInC, 256)).ClearContents
  For r = rInD To rInC
    cin1 = cIn
    cds1 = cDs
    Do
      Cells(r, cin1) = ds.Cells(rDs, cds1)
      cin1 = cin1 + 1: cds1 = cds1 + 1
    Loop While ds.Cells(rDs, cds1) <> ""
    rIn1 = rIn1 + 1
    rDs = rDs + 1
  Next
  ActiveWindow.SelectedSheets.PrintOut
Loop While ds.Cells(rDs, 1) <> ""
End Sub
 

File đính kèm

  • phan trang tren 1 sheet.xls
    50 KB · Đọc: 41
Bạn thử cách đơn giản này xem, dùng công thức thôi.
 

File đính kèm

  • phantrang_chibi.xls
    33 KB · Đọc: 50
Mình còn có thêm một yêu cầu nhỏ nữa thôi. Rất mong các bạn chỉ giáo. Mình học excel lâu quá và cũng ít dùng nên kiến thức còn rât hạn chế mong các bạn giúp đỡ.

Mình có 01 cách này, bạn xem thử. Thủ công 1 chút ở chổ phải nhập số stt cần in, nhưng tiện ích là bạn có thể mở rộng thành in 10 stt hay 20 stt trên 1 trang cũng được.
 

File đính kèm

  • In phan trang.xls
    37.5 KB · Đọc: 26
Tại mình nói chưa rõ nên mọi người hiểu nhầm. Ý mình là số TT ở các trang luôn là số đếm từ 1 đến 5
 
Bạn chibi ơi, mình rất cảm ơn bạn nhưng mình muốn bạn giúp mình làm cụ thể luôn được không. Ví dụ danh scáh trong sheet mình là 50 thì bạn phân luôn thành 10 trang trong cùng 1 sheet được ko?
Làm ơn giúp mình với!
 
Bạn thử cách đơn giản này xem, dùng công thức thôi.
Mình đã hiểu cách của bạn nhưng mình muốn thể hiện rõ 10 trang trên 1 sheet luôn. Vì mình sẽ in hết 10 trang đó luôn 1 lúc. Bạn biết không, số liệu của mình hiện tại là 8000 dòng chia thành 10 sheet, mỗi sheet là 1 tỉnh thành nên rất nhiều. Có sheet nhiều nhất lên đến 2000 khách hàng luôn tương ứng với là khoảng 400 trang đấy bạn à. Mình rất mong bạn giúp mình vì đây là công đoạn mệt nhất mà mình đang đau hết cả đầu đây.
 
Web KT
Back
Top Bottom