Đánh trang tự động trong Excel

Liên hệ QC
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.
 
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!
 
Lần chỉnh sửa cuối:
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]
 
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 ạ!
 

File đính kèm

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.


sau cái bước Alt +F8 .tìm ở đâu để thấy tên thủ tuch DStrang dậy bạn , sao mình làm thử mà hok thấy đâu hêt..giúp mình nha
thanks bạn nhiều
 
sau cái bước Alt +F8 .tìm ở đâu để thấy tên thủ tuch DStrang dậy bạn , sao mình làm thử mà hok thấy đâu hêt..giúp mình nha
thanks bạn nhiều
Bạn đọc kỹ và đã hiểu chưa mà đã la làng hỏi lại!
Code ở bài #14 bạn chưa copy code vào Modul thì lấy đâu ra DStrang mà chạy!!
 
Thử đoạn code này nhé các bạn:
---------

PHP:
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
-----------

Em chạy thử với 1 số file và gặp lỗi số trang của 1 sheet nào đó chỉ = số cuối trang trước (mà ko +1)
Em sửa lại như này và ok:
trangdau = trangdau + ActiveSheet.PageSetup.Pages.Count
Hoặc có thể thay = (ActiveSheet.HpageBreaks.Count+1)* (ActiveSheet.VpageBreaks.Count+1) như ý tưởng của anh Đào Việt Cường ở #5.
Mọi người cùng tham khảo!
 
Rồi trường hợp mình có 1 sheet mà mình mún số thứ tự trang bắt đầu bằng số 2 thì làm sao hả bạn?
 
Các bác lằng nhằng ghê. Vào footer rồi viết cú pháp
 
Lần chỉnh sửa cuối:
Các bác lằng nhằng ghê. Vào footer rồi viết cú pháp &[Page]/[Pages]
[Page] là trang hiện thời
[Pages] là trang cuối
Bạn trả lời cho bài nào?
Nếu trả lời cho bài #1 thì cách của bạn sai bét. Người ta cần marco cơ.
 
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.

(số trang sheet 1) có lấy tự động được không hả bạn
 
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.
thế nếu muốn đánh từ sheet thứ 2 trở đi thì phải làm thế nào bạn =="
 
Lỗi đánh số trang - Nhờ giúp đỡ

File của em không đánh được số vào chân trang.
Khi đánh số trang tự động theo thứ tự: Custom footer => &[Pages]
thì lại hiện ra dấu ? thay vì các số trang như thông thường.
Nhờ các bác xem giúp em cách khắc phục để có thể đánh số trang tự động, chứ đánh thủ công hàng loạt thì chết.
Cảm ơn các bác
 

File đính kèm

Không hiểu bạn à, Mình tải về và xem thấy bình bình thường mà. Vẫn xem được và đánh số trang bình thường mà
 
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]
Xin hỏi có cách nào đánh: sổ này có ... trang được đánh số từ trang số 1 đến trang số:... ở một ô bất kỳ được không? (Không nằm trong footer)
Xin cảm ơn.
 
Có lẽ là được nếu dùng hàm VBA. Để tôi ngâm cứu!!

Tạm thời nghĩ ra được 1 hàm như thế này:
PHP:
Function Sotrang() As Long
Dim i As Long
Application.ScreenUpdating = False
ActiveSheet.PageSetup.PrintArea = "$A$1:" & ActiveCell.Address
i = ActiveSheet.HPageBreaks.Count
Sotrang = i + 1
ActiveSheet.PageSetup.PrintArea = ""
Application.ScreenUpdating = True
End Function
 
Lần chỉnh sửa cuối:
Có lẽ là được nếu dùng hàm VBA. Để tôi ngâm cứu!!

Tạm thời nghĩ ra được 1 hàm như thế này:
PHP:
Function Sotrang() As Long
Dim i As Long
Application.ScreenUpdating = False
ActiveSheet.PageSetup.PrintArea = "$A$1:" & ActiveCell.Address
i = ActiveSheet.HPageBreaks.Count
Sotrang = i + 1
ActiveSheet.PageSetup.PrintArea = ""
Application.ScreenUpdating = True
End Function
Cảm ơn bạn.Nhưng mà không chạy được bạn à, khi chạy lỗi #NAME?
 
Lần chỉnh sửa cuối:
Thử đoạn code này nhé các bạn:
---------

PHP:
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
-----------
Anh cho em hỏi một chút a!
file excel của e gồm nhiều sheet, mỗi sheet gồm nhiều trang, giờ em muốn đánh số trang bắt đầu từ trang số 1 trong mỗi sheet thì làm thế nào ạ! em cám ơn Anh!
 
Anh cho em hỏi một chút a!
file excel của e gồm nhiều sheet, mỗi sheet gồm nhiều trang, giờ em muốn đánh số trang bắt đầu từ trang số 1 trong mỗi sheet thì làm thế nào ạ! em cám ơn Anh!
Code thế này bạn! Bỏ cái trangdau đi là được!
PHP:
Sub DSTrang()
Dim i As Byte, j As Byte
Dim cp As Byte
Dim Sh As Worksheet
Application.ScreenUpdating = False
For Each Sh In ActiveWorkbook.Worksheets
        Sh.Activate
        With ActiveSheet.PageSetup
                '.LeftFooter = ""
                .CenterFooter = "&P"
                '.RightFooter = ""
                .FirstPageNumber = 1
                '.PrintErrors = xlPrintErrorsDisplayed
        End With
Next
MsgBox "OK"
Application.ScreenUpdating = True
End Sub
 
Lỗi đánh số trang - Nhờ giúp đỡ

File của em không đánh được số vào chân trang.
Khi đánh số trang tự động theo thứ tự: Custom footer => &[Pages]
thì lại hiện ra dấu ? thay vì các số trang như thông thường.
Nhờ các bác xem giúp em cách khắc phục để có thể đánh số trang tự động, chứ đánh thủ công hàng loạt thì chết.
Cảm ơn các bác
A dùng Office bản tiếng việt hay tiếng A ạ! trước e dùng bản tiếng việt cũng bị vây, chuyển sang bản tiếng Anh thì k bị A nhé!
 
Web KT

Bài viết mới nhất

Back
Top Bottom