Cách in cùng lúc nhiều trang trong 1 sheet cùng 1 vùng in (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

mayxanh0301

Thành viên mới
Tham gia
20/9/11
Bài viết
11
Được thích
0
Hiện tại em có 1file cần in nhiều lần trên 1 sheet.
Mỗi lần in em nhập số thứ tự vào ô AA2 các số này lần lượt tương ứng tại dòng "AE"
Vùng in của em là A1 đến P40
Nhờ các a/c viết cho đoạn code để in dữ liệu trùng với số đã được đánh ở cột "AE" và mình có thể tự chọn in từ số cần in đến số kết thúc.(In hàng loạt ko chon lại số tại ô AA2).
Thanks cả nhà GPE!
 

File đính kèm

Hiện tại em có 1file cần in nhiều lần trên 1 sheet.
Mỗi lần in em nhập số thứ tự vào ô AA2 các số này lần lượt tương ứng tại dòng "AE"
Vùng in của em là A1 đến P40
Nhờ các a/c viết cho đoạn code để in dữ liệu trùng với số đã được đánh ở cột "AE" và mình có thể tự chọn in từ số cần in đến số kết thúc.(In hàng loạt ko chon lại số tại ô AA2).
Thanks cả nhà GPE!
bạn tải file đính kèm về xem sao nhé !
'---------------
1. In từng STT: nút Cộng hoặc Trừ 1 ---> tự động điều chỉnh số thứ tự ---> click Print
2. In liên tục (mình chỉ cài code chứ chưa thử bao giờ)
- mình chỉ dùng lệnh MsgBox ("stop: ") & i để thử và đang off dòng Call Print_activesheet
- khi in đúng 10, 20, 30 ... trang thì sẽ hỏi bạn có muốn in tiếp hay ko?
- còn phụ thuộc vào tốc độ của máy in nữa
3. Có 1 Listbox ---> để lưu lại các STT mà bạn đã in.

in lien tuc.jpg
 

File đính kèm

Upvote 0
Em cảm ơn anh phucbugis đã giúp đỡ. Để em kiểm tra lại file rồi cần gíup đỡ em sẽ nhờ anh lần nữa vậy.
 
Upvote 0
Nhờ các anh chị trên GPE viết giùm em 1 code để in nhiều sheet cùng 1 lúc

Lúc trước file này anh phucbugis đã viết cho em 1code in nhiều trang trên 1 sheet.
Em nhờ anh giúp viết 1 code sau khi đã lọc dữ liệu như trên thì có thể in cùng lúc nhiều sheet
Cảm ơn các anh!
 

File đính kèm

Upvote 0
Em cũng đang cần cái như thế này mà không ai giúp cả
 
Upvote 0
Em cũng muốn in như chủ thớt, nhưng thay vì chỉ in trong 1 sheet, em muốn in cùng lúc cả ba sheet (em làm biên bản nghiệm thu).
 

File đính kèm

Upvote 0
Em cũng muốn in như chủ thớt, nhưng thay vì chỉ in trong 1 sheet, em muốn in cùng lúc cả ba sheet (em làm biên bản nghiệm thu).

- bạn thử với đoạn code bên dưới,
- do mình chưa có máy in nên ko biết "Sub Print_ActiveSheet có bị gì ko? --=0"
- nếu bạn có máy in thì off dòng MsgBox ArrSheet(i) và on dòng Call Print_ActiveSheet(ArrSheet(i))

[GPECODE=vb]
Sub InNhieuSheet()
Dim ArrSheet As Variant, i As Integer

ArrSheet = Array("NTNB", "PYC", "NTCV")
For i = 0 To 2
Sheets(ArrSheet(i)).Select
MsgBox ArrSheet(i)
'Call Print_ActiveSheet(ArrSheet(i))
Next i
End Sub
'-------------
Sub Print_ActiveSheet(tensheet As String) 'record Macro
ActiveWindow.Sheets(tensheet).PrintOut From:=1, _
To:=1, _
Copies:=1, _
Collate:=True, IgnorePrintAreas:=False
End Sub

[/GPECODE]
 
Upvote 0
Cảm ơn anh phucbugis đã viết code, nhưng vùng in của em muốn in nó cũng chạy từ A5:A16 trong sheet1. Mỗi lần em thay đổi ô K4 ở sheet NTCV là sẽ in một lần gồm 3 biên bản. Nhờ anh xem lại giúp em
 

File đính kèm

Upvote 0
Cảm ơn anh phucbugis đã viết code, nhưng vùng in của em muốn in nó cũng chạy từ A5:A16 trong sheet1. Mỗi lần em thay đổi ô K4 ở sheet NTCV là sẽ in một lần gồm 3 biên bản. Nhờ anh xem lại giúp em
chỉ cần thêm sự kiện WS_change tại sheet NTCV ngay vị trí ở ô K4 là được,
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Answer, mSg

    If Target.Address = "$K$4" Then
    If Target <> "" Then
        mSg = "ban co muon in STT: " & Target.Value
        Answer = MsgBox(mSg, vbYesNo + vbQuestion)
        If Answer = vbNo Then Exit Sub
        'If Answer = vbYes Then
        Call InNhieuSheet
    End If
    End If
End Sub
nếu Sub InNhieuSheet chạy OK, bạn thử off dòng Sheets(ArrSheet(i)).Select ----> xem lệnh In có thực hiện được ko? hay là nó đòi phải Select sheet luôn nhé ! (nếu được thì off nó, còn ko thì thôi)

'---------
để in STT tiếp theo bạn thêm dòng: Target = Target.Value + 1 ngay bên dưới Call InNhieuSheet của sự kiện trên.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Có lỗi xây ra sau khi em off dòng MsgBox "Print: " & ArrSheet(i) và on dòng Call Print_ActiveSheet(ArrSheet(i))
123.jpg
Mã:
 Với lại em muốn nó tự động in từ mấy đến mấy như anh viết code cho [B]mayxanh0301

[/B]
 
Upvote 0
Có lỗi xây ra sau khi em off dòng MsgBox "Print: " & ArrSheet(i) và on dòng Call Print_ActiveSheet(ArrSheet(i))
View attachment 123602
Mã:
 Với lại em muốn nó tự động in từ mấy đến mấy như anh viết code cho [B]mayxanh0301

[/B][/QUOTE]
Muốn người ta giúp gì thì phải nói rõ ra. Ai biết ý của bạn giống ai mà đoán!
 
Upvote 0
Em gửi lại file các A/C xem giúp em. File này là file Biên bản nghiệm thu, gồm 4 sheet; 1 sheet dữ liệu; 3 sheet cần in. Em muốn in cùng lúc cả 3 sheet. Có thể chọn in từ số mấy đến số mấy (số đó lựa chọn trong ô K4 sheet NTCV).
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Có lỗi xây ra sau khi em off dòng MsgBox "Print: " & ArrSheet(i) và on dòng Call Print_ActiveSheet(ArrSheet(i))
Mã:
 Với lại em muốn nó tự động in từ mấy đến mấy như anh viết code cho [B]mayxanh0301
[/B][/QUOTE]

- bạn thử thay Sub bị lỗi đó thành
[CODE]Sub Print_activesheet() 'dua vao Set print area
    ExecuteExcel4Macro "PRINT(2,1,1,1,,,,,,,,2,,,TRUE,,FALSE)"
End Sub
code trên mình Record Macro mà có được ---> tùy thuộc cách bạn cài đặt trong khi in

- vấn đề in liên tục,
tại sheet NTCV có sự kiện WS_change ở #11

19-6-2014 8-17-07 PM.png

bạn thêm điều kiện If bên dưới dòng Call InNhieuSheet
Mã:
        If Target.Value < Range("L4").Value Then
            Target = Target.Value + 1 'in so' tiep theo
        End If
 
Lần chỉnh sửa cuối:
Upvote 0
Anh Phúc chỉ giúp em: Bên dưới chữ in liên tục anh có 1 listbox thể hiện số thứ tự đã in. Cho em hỏi cách tạo nó như thế nào và add đoạn code vào đó. Thanks anh! chúc anh sức khỏe....
 
Upvote 0

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

Back
Top Bottom