PDA

View Full Version : Đánh trang tự động trong Excel



trithietke
21-01-07, 04:55 PM
Có ai biết cách tạo một macro để chạy số trang tự động trong Excel không ? chứ cách tạo trang thủ công theo tôi rất mất thời gian quá . Mỗi lần đánh số trang thì cứ phải View xem số trang cuối cùng của trang trước đó là trang mấy ??? rồi mới gõ trang tiếp sau ....Cảm ơn diễn đàn

ruadangyeu
21-01-07, 06:14 PM
Tại sao bạn lại đánh số trang kỳ cục vậy.
Bản chất số trang là một trường trong excel({PAGE}).
Trong excel thông thường để đánh số trang bạn vào page setup/ chọn header and footer/ chọn cutom là ok thôi chứ có gì (để lấy số trang hiện thời dùng &[Pages].

Còn nếu muốn viết macro làm việc này thì bạn dùng record macro

trithietke
03-02-07, 02:25 PM
rất cảm ơn ý kiến của bạn đã cho ý kiến, về cái hàm page() thi không có vấn đề gì, nhưng khi có biến cố có nhiều sheet trong 1 Workbook thì vấn đề đánh số trang liên tục thì không thể, ý của mình là muốn viết 01 macro để khi chọn thông số nhập cho 1 trang bắt đầu thì nó chạy 1 vòng lặp từ sheet đầu tiên cho đến sheet cuối cùng theo số thứ tự trang được nhập từ bàn phím. Cảm ơn bạn rất nhiều

Chuotdong
05-03-07, 10:35 AM
Việc này tôi cũng đã nêu lên 1 lần nhưng các bạn chưa giải quyết triệt để được. Có 2 cách phải in thông qua 1 Lệnh in lập riêng hoặc phải có cách gì bắt được sự kiện excel({PAGE}) trong lúc in 1 chuỗi các trang trên các sheet khác nhau, các vùng khác nhau.
Nếu làm như vậy được thì thật tuyệt

Đào Việt Cường
05-03-07, 11:26 AM
về cái hàm page() thi không có vấn đề gì, nhưng khi có biến cố (hay trường hợp???) có nhiều sheet trong 1 Workbook thì vấn đề đánh số trang liên tục thì không thể, ý của mình là muốn viết 01 macro để khi chọn thông số nhập cho 1 trang bắt đầu thì nó chạy 1 vòng lặp từ sheet đầu tiên cho đến sheet cuối cùng theo số thứ tự trang được nhập từ bàn phím. Cảm ơn bạn rất nhiều
Dear trithietke,
--------------
Yêu cầu của bạn không phải là vấn đề chung của Excel nữa rồi!
Nếu bạn lười không muốn điền bằng tay vào First number page trong Page Setup (Alt+F+U+R) cho từng Sheet thì đành phải lập trình vậy! Bạn tìm hiểu thuộc tính HPageBreaks của Worksheet để biết Worksheet có bao nhiêu trang:


Dim lngPageCount As Long, mySheet As Worksheet
Set mySheet = ActiveSheet
Dim strPageEndRow As String
lngPageCount = mySheet.HPageBreaks.Count
Debug.Print "Sheet '" & mySheet.Name & "' có " & lngPageCount &" trang!"


Bạn tham khảo thêm hai bài viết sau:
1. Tạo ra dòng 'tổng đến hết trang' và 'số mang sang' cho bảng tính nhiều trang (http://www.giaiphapexcel.com/forum/showthread.php?t=116&highlight=HPageBreaks)
2. Tạo dòng "Tổng cộng cuối trang" (http://www.giaiphapexcel.com/forum/showthread.php?t=820&highlight=HPageBreaks)

Đắc Khang
22-04-09, 08:38 AM
Có ai biết cách tạo một macro để chạy số trang tự động trong Excel không ? chứ cách tạo trang thủ công theo tôi rất mất thời gian quá . Mỗi lần đánh số trang thì cứ phải View xem số trang cuối cùng của trang trước đó là trang mấy ??? rồi mới gõ trang tiếp sau ....Cảm ơn diễn đàn

Giải pháp cho vấn đề này như sau :
1. Trước hết, bạn vào Page setup và điều chỉnh đánh số trang tại header/footer
2. Nếu chỉ có 1 sheet thì số trang sẽ bắt đầu từ 1 (mặc định) và kết thúc tại trang cuối.
3. Nếu có nhiều sheet và bạn muốn đánh số liên tục cho tất cả các sheet thì bạn cần làm theo trình tự sau :

- Sắp xếp tất cả các sheet theo đúng thứ tự sau khi in ra.
- Giữ phím Ctrl và click chuột trái lên tất cả các sheet cần in.
- Print Preview, bạn sẽ thấy số trang sẽ hoàn toàn tăng tự động và liên tục giữa các sheet.
- Và bây giờ thì chọn lệnh in thôi !

thanhmai193
20-08-09, 03:03 PM
Chào cả nhà,
Em muốn hỏi về cách đánh số trang trong excel. Ví dụ em có 1 file excel có 3 sheet và mỗi sheet có 3 trang. Làm thế nào để đánh số trang từ trang đầu tiên của sheet 1 đến trang cuối cùng của sheet 3 theo thứ tự ?

tuananhce03
24-03-10, 09:58 AM
Chào cả nhà,
Em muốn hỏi về cách đánh số trang trong excel. Ví dụ em có 1 file excel có 3 sheet và mỗi sheet có 3 trang. Làm thế nào để đánh số trang từ trang đầu tiên của sheet 1 đến trang cuối cùng của sheet 3 theo thứ tự ?
Tôi có cách chỉ giúp bạn rất đơn giản như sau:
Ở sheet 1 bạn vào View/Header and Footer; chọn Tab Header/Footer ; bạn chọn Custom Header... hoặc Custom Footer tùy thuộc vào bạn muốn cho hiện số trang trên đầu hay ở dưới. Sau đó bạn chọn biểu tượng Insert Page.
Qua sheet 2 bạn cũng làm như vậy, nhưng sau đó bạn gõ vào tiếp theo &Page+(số trang sheet 1) thế là được. Nhớ là phải có dấu Space ở phía sau số trang.
Tương tự qua sheet 3 bạn cũng làm như thế.
Trường hợp của bạn thì bạn gõ ở sheet 2 như sau &[Page]+3
Ở sheet 3 thì bạn gõ như sau &[Page]+6
Nhớ là phải có thêm dấu Space (khoảng trắng) ở phía sau số 3 và số 6 nghen bạn.
Chúc bạn thành công!!!!

Tôi sẽ gởi cho bạn 1 file excel làm như thế.
Xin lỗi bạn, mình không biết cách tải file lên từ forum này.

duyd
03-08-10, 02:10 PM
Tôi hỏi rõ hơn chút, tôi muốn đánh số thứ tự từng trang trong excel như là 1,2,3....8,9,10...mà ko hiểu vào đâu để tự động. Chẳng nhẽ lại vào từng trang như mấy bác hưỡng dẫn ah? lâu quá nhỉ. Bác nào biết chỉ bảo với nha. Làm ơn viết từng bước rõ ràng chút. Thanks!

snowkx
05-08-10, 10:50 AM
Bạn vào Page setup -> Header/footer -> Custom footer -> Kích nút Page. Không biết như vậy có đúng ý bạn ko.

hunggtg
08-10-10, 10:21 PM
Chào bạn,

Tôi làm báo giá (báo giá có thể là 1 trang hoặc 10 trang), trong cell B10 tôi muốn ghi số trang/tổng số trang: ví dụ: trang 2/5. Vậy có hàm nào có thể làm được việc này không?

Cám ơn.

ngocbinh8x
20-10-10, 11:06 AM
Chào bạn,

Tôi làm báo giá (báo giá có thể là 1 trang hoặc 10 trang), trong cell B10 tôi muốn ghi số trang/tổng số trang: ví dụ: trang 2/5. Vậy có hàm nào có thể làm được việc này không?

Cám ơn.

Mình chỉ thường đánh trang báo theo kiểu ở footer để báo cho nhà thầu biết họ đang xem trang thứ mấy trên tổng số mấy trang.
Cách làm thì như các anh trên đã bàn.
@$@!^%
Mình thường View > Page Layout > Click chuột vào khung footer > Nhấn thẻ Design > Click Page Number và Number of page rồi thêm bớt vài chữ cần thiết khác rồi thoát ra thì sẽ được như hình sau:
http://i694.photobucket.com/albums/vv306/ngocbinh8x_photobucket/Tutorial/Office-PageNumberinExcel.jpg

Còn việc ghi số trang/tổng số trang vào 1 ô bất kì trong bảng tính thì hỏi nhờ các sư huynh khác chỉ giáo thêm.
+-+-+-+

suong80
09-09-11, 04:57 PM
cho mình hỏi mình muốn điền số trang cuối cùng vào một cêl trong excell thì phải làm cách nào. bạn nào biết thì giúp mình với. thanks nhiều.

vu_tuan_manh_linh
10-09-11, 09:31 AM
Thử đoạn code này nhé các bạn:
---------



Sub DSTrang()
Dim i As Byte, j As Byte
Dim cp As Byte
Dim trangdau As Variant
Dim Sh As Worksheet
Application.ScreenUpdating = False
lai:
trangdau = InputBox(Prompt:="Danh so trang", Title:="Nhap trang dau tien!", Default:="0")
If trangdau <= 0 Or IsNumeric(trangdau) = False Then
MsgBox "Nhap lai trang dau"
GoTo lai
End If
For Each Sh In ActiveWorkbook.Worksheets
Sh.Activate
With ActiveSheet.PageSetup
'.LeftFooter = ""
.CenterFooter = "&P"
'.RightFooter = ""
.FirstPageNumber = trangdau
'.PrintErrors = xlPrintErrorsDisplayed
End With
trangdau = trangdau + ExecuteExcel4Macro("Get.Document(50)")
Next
MsgBox "OK"
Application.ScreenUpdating = True
End Sub

-----------

black_sheep
17-10-11, 08:42 AM
Thử đoạn code này nhé các bạn:
---------
Sub DSTrang()
Dim i As Byte, j As Byte
Dim cp As Byte
Dim trangdau As Variant
Dim Sh As Worksheet
Application.ScreenUpdating = False
lai:
trangdau = InputBox(Prompt:="Danh so trang", Title:="Nhap trang dau tien!", Default:="0")
If trangdau <= 0 Or IsNumeric(trangdau) = False Then
MsgBox "Nhap lai trang dau"
GoTo lai
End If
For Each Sh In ActiveWorkbook.Worksheets
Sh.Activate
With ActiveSheet.PageSetup
'.LeftFooter = ""
.CenterFooter = "&P"
'.RightFooter = ""
.FirstPageNumber = trangdau
'.PrintErrors = xlPrintErrorsDisplayed
End With
trangdau = trangdau + ExecuteExcel4Macro("Get.Document(50)")
Next
MsgBox "OK"
Application.ScreenUpdating = True
End Sub
-----------
hihi. cảm ơn bạn nhiều. mình làm được thành công rồi. chỉ cần 1 cái click chuột là tất cả các sheet sẽ được đánh số trang 1 cách tự động theo trình tự trong 1 workbook.
THANKS, THANKS.....100 lần @$@!^%
Cảm ơn những đóng góp của các bạn

nguyenle2006
21-03-12, 09:11 AM
Tôi có cách chỉ giúp bạn rất đơn giản như sau:
Ở sheet 1 bạn vào View/Header and Footer; chọn Tab Header/Footer ; bạn chọn Custom Header... hoặc Custom Footer tùy thuộc vào bạn muốn cho hiện số trang trên đầu hay ở dưới. Sau đó bạn chọn biểu tượng Insert Page.
Qua sheet 2 bạn cũng làm như vậy, nhưng sau đó bạn gõ vào tiếp theo &Page+(số trang sheet 1) thế là được. Nhớ là phải có dấu Space ở phía sau số trang.
Tương tự qua sheet 3 bạn cũng làm như thế.
Trường hợp của bạn thì bạn gõ ở sheet 2 như sau &[Page]+3
Ở sheet 3 thì bạn gõ như sau &[Page]+6
Nhớ là phải có thêm dấu Space (khoảng trắng) ở phía sau số 3 và số 6 nghen bạn.
Chúc bạn thành công!!!!

Tôi sẽ gởi cho bạn 1 file excel làm như thế.
Xin lỗi bạn, mình không biết cách tải file lên từ forum này.

Cám ơn bạn nhiều lắm. mày mò hoài giờ đã thông. Mình cũng làm như bạn nhưng không biết đánh dấu cách nên không được. Nhưng tại sao phải đánh dấu cách mình chẳng hiểu? Nhưng biết thế là OK rồi

nguyentuan3891
20-06-12, 09:57 AM
chào các bạn! các bạn cho mình hỏi, vấn đề lập trình trong excell có khó không vậy, mình rất muốn lập trình được một thứ gì đó nhưng mình không có căn bản

vu_tuan_manh_linh
20-06-12, 10:08 AM
chào các bạn! các bạn cho mình hỏi, vấn đề lập trình trong excell có khó không vậy, mình rất muốn lập trình được một thứ gì đó nhưng mình không có căn bản
Trong diễn đàn có chuyên mục về lập trình đó bạn. Nói chung vọc mãi rồi cũng biết. Nếu muốn học bài bản thì bạn đăng ký tham gia các lớp học về VBA, trên diễn đàn cũng có đấy. Nếu muốn tự nghiên cứu thì mua sách về tự vọc thôi (gi gỉ gì gi cái gì về excel trên GPE có hết)

namphuongson
05-11-12, 10:11 AM
Mình đã xem hướng dẫn của bạn và rất muốn áp dụng nhưng không biết làm thế nào để đưa đoạn code này vào máy cả (Mình là dân gà mờ về lập trình mà) vậy mong bạn hướng dẫn cụ thể nhé. Ví dụ mở Excel, vào menu nào... từng bước 1 nhé. Tốt nhất bạn hướng dẫn áp dụng trong office 2010. Cảm ơn trước nhé!

Thử đoạn code này nhé các bạn:
---------



Sub DSTrang()
Dim i As Byte, j As Byte
Dim cp As Byte
Dim trangdau As Variant
Dim Sh As Worksheet
Application.ScreenUpdating = False
lai:
trangdau = InputBox(Prompt:="Danh so trang", Title:="Nhap trang dau tien!", Default:="0")
If trangdau <= 0 Or IsNumeric(trangdau) = False Then
MsgBox "Nhap lai trang dau"
GoTo lai
End If
For Each Sh In ActiveWorkbook.Worksheets
Sh.Activate
With ActiveSheet.PageSetup
'.LeftFooter = ""
.CenterFooter = "&P"
'.RightFooter = ""
.FirstPageNumber = trangdau
'.PrintErrors = xlPrintErrorsDisplayed
End With
trangdau = trangdau + ExecuteExcel4Macro("Get.Document(50)")
Next
MsgBox "OK"
Application.ScreenUpdating = True
End Sub

-----------

nauha09
15-01-13, 11:54 PM
Tuyệt! Mình cũng rất cần biết. Bây giờ mới hay!

vu_tuan_manh_linh
16-01-13, 09:00 AM
Làm lần lượt như thế này:
1. Excel option --> Trust Center --> Trust Center Settings --> Macro Settings --> Chọn Enable Macro
2. Bấm chuột phải vào sheet tab bất kỳ, chọn View code. Cửa sổ VBA hiện ra
3. Nếu muốn chép code trực tiếp vào file, bạn chọn VBA Project (Tên _ File), rồi vào Menu Insert --> Modul, một modul mới được tạo ra, bạn chép code vào đó --> save.
4. Chạy code: Tắt cửa sổ VBA, ra màn hình excel, bấm Alt + F8, chọn tên thủ tục DStrang rồi bấm Run. Khi input box hiện lên, bạn nhập số trang đầu tiên mà bạn muốn. Rồi bấm Ok.

THU.KBang
08-03-13, 10:28 PM
Tôi hỏi rõ hơn chút, tôi muốn đánh số thứ tự từng trang trong excel như là 1,2,3....8,9,10...mà ko hiểu vào đâu để tự động. Chẳng nhẽ lại vào từng trang như mấy bác hưỡng dẫn ah? lâu quá nhỉ. Bác nào biết chỉ bảo với nha. Làm ơn viết từng bước rõ ràng chút. Thanks!
Các bạn đã hướng dẫn vậy là quá rõ rồi việc đánh số trang trong bảng tính hoặc toàn bộ các sheet Ban xem kỷ lại ý họ nói đã làm theo sẽ được. Còn tôi cũng muốn đánh số trang tự động nhưng lại khác tí chút. Tôi làm hoài cũng chưa được, Bạn nào làm được xin chỉ dùm. Là thế này mình làm sổ kế toán trên Excel cuối trang sổ có dòng quy định "sổ này có ... trang được đánh số từ trang số 1 đến trang số:..." Thật ra không phải là mình lười nhưng vì mình muốn nó tự động đếm số trang thì hay hơn vì bảng tính của mình tự động nên số trang cũng tuỳ thuộc vào dử liệu mà nó tìm được. Mình cũng thủ dùng macro ghi lại nhưng chưa được, hiện tại mình dùng công thức để tính nhưng hầu như không chính xác. Mong các bạn tạo giúp cái Macro này với. Xin cám ơn các bạn trước!

vu_tuan_manh_linh
11-03-13, 12:25 PM
Các bạn đã hướng dẫn vậy là quá rõ rồi việc đánh số trang trong bảng tính hoặc toàn bộ các sheet Ban xem kỷ lại ý họ nói đã làm theo sẽ được. Còn tôi cũng muốn đánh số trang tự động nhưng lại khác tí chút. Tôi làm hoài cũng chưa được, Bạn nào làm được xin chỉ dùm. Là thế này mình làm sổ kế toán trên Excel cuối trang sổ có dòng quy định "sổ này có ... trang được đánh số từ trang số 1 đến trang số:..." Thật ra không phải là mình lười nhưng vì mình muốn nó tự động đếm số trang thì hay hơn vì bảng tính của mình tự động nên số trang cũng tuỳ thuộc vào dử liệu mà nó tìm được. Mình cũng thủ dùng macro ghi lại nhưng chưa được, hiện tại mình dùng công thức để tính nhưng hầu như không chính xác. Mong các bạn tạo giúp cái Macro này với. Xin cám ơn các bạn trước!
Trong Page Setup ---> Header/Footer --> Custom Footer: &[Pages] sẽ hiển thị tổng số trang, &[Page] hiển thị số thứ tự trang hiện tại!! Bạn chỉ cần đánh: sổ này có &[Pages] trang được đánh số từ trang số 1 đến trang số: &[Pages]

TrinhThiHai_Kt
10-07-13, 01:36 PM
Em có file tài liệu báo giá (Số trang thực tế nhiều hơn trong file đính kèm).
Excel đánh số từ 1 đến n nửa bên trái của tài liệu, rồi tiếp tục đánh số tăng dần từ n+1 của nửa bên phải.
Ví dụ như trong file đính kèm: Hiện tại trang đang được đánh số từ 1 đến 3 (nửa trái), 4-6 (nửa phải).
Và khi in (A4) đem ghép lại để photo thành A3 thì các trang sẽ ghép là: 1 với 4, 2 với 5, 3 với 6.
Làm thế nào để em đánh số được theo kiểu chẵn lẻ: Nửa bên trái là các trang lẻ: 1,3,5 và nửa bên phải là các trang chẵn: 2,4,6 để khi in ra ghép lại sẽ được 1 ghép với 2, 3 với 4 và 5 với 6 ạ?
Xin chân thành cảm ơn mọi người ạ!