Viết code in dữ liệu ở các sheet

Liên hệ QC

thanhnhanubnd

Thành viên hoạt động
Tham gia
12/9/08
Bài viết
180
Được thích
29
Nghề nghiệp
Xay dung
ví dụ : Mình có 05 sheet,
- Sheet 1 có 100 dòng dữ liệu = 3 trang.
- Sheet 2 có 200 dòng dữ liệu = 6 trang.
- Sheet 3 có 150 dòng dữ liệu = 5 trang.
- Sheet 4 có 50 dòng dữ liệu =2 trang.
- Sheet 5 có 80 dòng dữ liệu = 3 trang.
Nhờ các bạn xem viết giúp code in ấn với yêu cầu : chỉ in những trang có dữ liệu.
 
Bạn thử với Code này nhé.
ở đây vd có 3 Sheet thôi
Để xác đinh Sheet có dữ liệu bạn chỉnh đoạn:
If Sheet1.Range("A1").Value <> "" Then
Cho phù hợp là được

Mã:
Sub Print1()
Chao = "Ban Da Chac Chan Chua?"
Kieu = vbYesNo
tieude = "Thong Bao"
Application.ScreenUpdating = False
Response = MsgBox(Chao, Kieu, tieude)
If Response = vbNo Then
    Exit Sub
End If
If Response = vbYes Then
    If Sheet1.Range("A1").Value <> "" Then
            Sheet1.Select
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    ElseIf Sheet2.Range("A1").Value <> "" Then
            Sheet1.Select
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    ElseIf Sheet3.Range("A1").Value <> "" Then
            Sheet1.Select
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    End If
    Response = MsgBox("Ban Da Print Xong", vbOKOnly, tieude)
End If
End Sub

Thân!
 
Upvote 0
Code của bạn rất ok. Bạn có thể viết dùm code : Set print area, tức mình chỉ set vùng in từ cột A đến cột H, còn số dòng thì không giới hạn.
 
Upvote 0
Đây là lệnh set vùng A:H không giới hạn đây!
PHP:
Range("A1:H" & [A65000].End(xlup).Row).Select
Thân.
 
Upvote 0
Có 1 vấn đề thế này :

Mình chọn vùng in A :H
Trong vùng này mình định dạng border từ row 1 đến 6500, nhưng dữ liệu của mình chỉ có 500 rows. Mình muốn khi nhấn vào lệnh in thì sẽ mặc định in từ row 1 -->500 ( không in đến row 6500).
( Ghi chú : cột A đánh số thứ tự từ 1-->500).

Các bạn xem giúp.
 
Upvote 0
PHP:
Range("A1:H" & Application.Max(A1:A1500)).Select
Selection.PrintOut ....
 
Upvote 0
Bạn có thể giúp hoàn thiện đoạn code không, mình chạy nó báo lỗi
 
Upvote 0
Bạn thử đoạn Code này xem nhé
PHP:
Sub PrintSheet()
    Dim I As Integer
    For I = 1 To ActiveWorkbook.Sheets.Count
        Sheets(I).Select
        If (ActiveCell.SpecialCells(xlLastCell).Row <> 1 And ActiveCell.SpecialCells(xlLastCell).Column <> 1) Or Cells(1, 1).Value <> "" Then
            Range("A1:H" & [A65536].End(xlUp).Row).Select
            ActiveSheet.PageSetup.PrintArea = Selection.Address
            Selection.PrintOut Copies:=1, Collate:=True
        End If
    Next
End Sub
 
Upvote 0
Sau khi tắt máy in ( mình có 10 sheet, chạy code nó in tè le), và sửa đôi chút quả thật rất cám ơn. Đây đúng là vấn đề mình cần.
Bạn có thể làm dùm thêm chức năng print preview trước khi in khồng ( xem trước khi in cho chắc ăn).
Thank.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn dùng code này để Print Preview.
PHP:
ActiveWindow.SelectedSheets.PrintPreview
Thân.
 
Upvote 0
Code tuyệt lắm, rất đúng ý mình, cám ơn 2 bạn.
 
Upvote 0
bạn cho hỏi code đơn giản hơn chỉ để print mot sheet mặc định (activesheet) như thế nào vậy bạn.
 
Upvote 0
các bác giúp mình xem code cùi bắp của mình sao print bi bao lỗi, mình dốt code lắm -+*/
ah các bác, sau khi print ra duoc roi thi lam cach nào để tự dông copy những phần chữ đỏ nền vàng sang sheet ke ben(budget) , mong mấy bác giup đõ dùm
 

File đính kèm

Upvote 0
Chào bạn mình có 5 sheet mình muốn tạo một macro để in một lần 5 sheet mà không phải dùng Ctrl + cac sheet, bạn có thể viết code cho mình với.
 
Upvote 0
To bblove:
Bạn dùng dialogsh. làm gì cho mệt. Bạn chỉ thay mỗi đoạn sub sau là thay thế cả Dialog sheet và mấy sub đó
Mã:
Sub Button2_Click()
Dim a As Integer
a = MsgBox("Are you sure to print out application ?", vbOKCancel, "PRINT INFO")
If a = 1 Then Sheet2.PrintPreview
 End Sub
To ajinomoto
Mình ví dụ cách chon sheet để in như file kèm (Nhấn Ctrl+m để in) Mình tạm thay bằng thong báo, chỉ cần xóa thông báo và lấy lại lệnh in là xong.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
View attachment a.xls

View attachment b.xls

View attachment ketqua.xlschào các anh chị trên GPE, chúc các anh chị có một ngày vui vẽ. hiện tại tôi đang là kỹ sư tính dự toán. trong một thời gian làm việc, tôi có sử dụng những phần mềm để tính nhưng khổ nổi những phần mềm này đều có một số lỗi khó hiểu vì thế tôi không thể chủ động trong việc tính toán. nghe nói ngông ngữ lập trình VBA rất mạnh trong excel, nhưng tiếc thay tôi lại không biết về VBa và do công việc nhiều nên không có thời gian để tìm hiểu nó. mong các anh chị chỉ dẫn dùm tôi dù chỉ một vài thao tác thôi. tôi xin cảm ơn.
ở đây, tôi có 2 file A và B. A là file làm việc; B là file hổ trợ.
ý của tôi như sau:
- file B có 2 công tác: vật liệu (VL), nhân công (NC), máy thi công (M).
- file A
+ đơn giá chi tiết (dgct) : copy lần lượt mã AE.23145 và AE.24145 ở file B vào cột mã hiệu, và chương trình sẽ tự động tính như file kết quả sau.
+tổng hợp vật tư (thvt): phần nào có kí hiệu VL thì nằm ở vật liệu, NC nằm ở nhân công, M nằm ở máy thi công. Cột khối lượng: với mỗi vật liệu, nhân công, máy thi công có tổng khối lượng tương ứng với mỗi vật liệu, nhân công, máy thi công. Cột đơn giá: nhập đơn giá từ ngoài vào thì ở sheet(dgct) cũng chạy đồng thời như vậy.
lưu ý các sheet đều có công thức liên kết với nhau
 
Upvote 0
View attachment 37516

View attachment 37517

View attachment 37518chào các anh chị trên GPE, chúc các anh chị có một ngày vui vẽ. hiện tại tôi đang là kỹ sư tính dự toán. trong một thời gian làm việc, tôi có sử dụng những phần mềm để tính nhưng khổ nổi những phần mềm này đều có một số lỗi khó hiểu vì thế tôi không thể chủ động trong việc tính toán. nghe nói ngông ngữ lập trình VBA rất mạnh trong excel, nhưng tiếc thay tôi lại không biết về VBa và do công việc nhiều nên không có thời gian để tìm hiểu nó. mong các anh chị chỉ dẫn dùm tôi dù chỉ một vài thao tác thôi. tôi xin cảm ơn.
ở đây, tôi có 2 file A và B. A là file làm việc; B là file hổ trợ.
ý của tôi như sau:
- file B có 2 công tác: vật liệu (VL), nhân công (NC), máy thi công (M).
- file A
+ đơn giá chi tiết (dgct) : copy lần lượt mã AE.23145 và AE.24145 ở file B vào cột mã hiệu, và chương trình sẽ tự động tính như file kết quả sau.
+tổng hợp vật tư (thvt): phần nào có kí hiệu VL thì nằm ở vật liệu, NC nằm ở nhân công, M nằm ở máy thi công. Cột khối lượng: với mỗi vật liệu, nhân công, máy thi công có tổng khối lượng tương ứng với mỗi vật liệu, nhân công, máy thi công. Cột đơn giá: nhập đơn giá từ ngoài vào thì ở sheet(dgct) cũng chạy đồng thời như vậy.
lưu ý các sheet đều có công thức liên kết với nhau

Bạn đọc và tham khảo bài trích lọc vật tư từ bảng dự toán của bác anhphuong(có trên diễn đàn, trong mục Excel và kỹ thuật) Còn muốn tìm hiểu sâu hơn, bạn liên hệ trực tiếp với bác í, bác anhphuong sẽ có cách hương dẫn cho bạn vì hình như bác í là dân chuyên về kỹ thuật thì phải(Sory bác anhphuong trước, nếu không phải)
Thân
 
Upvote 0
Các bác ơi cho em chen ngang một tí. Minh chẳng hiểu gi về cái code của các bác là thế nào cả. Viết chúng ở đâu để điều khiển máy in thế? Em cũng đang dùng chung máy in nhưng thấy bất tiện quá. Cứ phải chờ, phiền toái quá! Hộ em với nhé! Thanhks!
 
Upvote 0
Chào các đại huynh, em là dân mới vào nghề nên rất mong các bác chỉ giáo cho em.
Hiện em có 1 loạt các file excel thường xuyên phải in, em muốn mỗi lần in 1 file thì số liệu của từng file đấy tự động cập nhật vào trong 1 bảng thống kê thì phải làm ntn?
Thank so much!
 
Upvote 0
l;àm thế nào để in nét trên word nhỉ,có ai biết không chỉ giáo cái coi
 
Upvote 0
Web KT

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

Back
Top Bottom