[Hỏi] Về việc in biên bản nghiệm thu hàng loạt tự động

Liên hệ QC

Nimda

Thành viên chính thức
Tham gia
12/10/14
Bài viết
64
Được thích
3
Chào tất cả các bạn,

Mình có 1 vấn đề cần sự giúp đỡ của các bạn, mục đích của mình là rút ngắn công tác in biên bản nghiệm thu và công tác sắp xếp hồ sơ nghiệm thu công việc. Ý của mình là làm sao để khi ra 1 lệnh in ở sheet phiếu yêu cầu thì cũng có thể in cùng lúc các sheet khác. Ví dụ như công tác bê tông gồm các giai đoạn, mỗi giai đoạn tương ứng 1 sheet: Nghiệm thu ván khuôn, nghiệm thu cốt thép, kiểm tra điều kiện trước khi đổ bê tông, theo dõi đổ bê tông, lấy mẫu bê tông, pyc ngthu bê tông sau khi tháo ván khuôn, nghiệm thu bê tông sau khi tháo vk,...đại loại mỗi sheet 1 công việc tương ứng.

Vấn đề nữa là làm sao mình có thể in theo số thứ tự danh mục từ 1-n, kiểu như ngày 1, ngày 2, ngày n.

Mong nhận được sự giúp đỡ từ các bạn,
 

File đính kèm

  • hoi.-Danh-muc-CKDS-Ong-cong-D1.0m.xlsm
    305.7 KB · Đọc: 114
Chào tất cả các bạn,

Mình có 1 vấn đề cần sự giúp đỡ của các bạn, mục đích của mình là rút ngắn công tác in biên bản nghiệm thu và công tác sắp xếp hồ sơ nghiệm thu công việc. Ý của mình là làm sao để khi ra 1 lệnh in ở sheet phiếu yêu cầu thì cũng có thể in cùng lúc các sheet khác. Ví dụ như công tác bê tông gồm các giai đoạn, mỗi giai đoạn tương ứng 1 sheet: Nghiệm thu ván khuôn, nghiệm thu cốt thép, kiểm tra điều kiện trước khi đổ bê tông, theo dõi đổ bê tông, lấy mẫu bê tông, pyc ngthu bê tông sau khi tháo ván khuôn, nghiệm thu bê tông sau khi tháo vk,...đại loại mỗi sheet 1 công việc tương ứng.

Vấn đề nữa là làm sao mình có thể in theo số thứ tự danh mục từ 1-n, kiểu như ngày 1, ngày 2, ngày n.

Mong nhận được sự giúp đỡ từ các bạn,
Em đã hết giờ làm nên chưa kịp xem file của bác chị nêu vài ý kiến thôi ạ. In nhiều sheets thì bác có thể ghi 1 cái macro cho excel biết là in sheets nào rồi đến sheets nào ... và lồng nó vào 1 vòng lặp for next để có thể in theo số thứ tự danh mục từ 1-n :) Hi vọng là e đoán đúng
 
Em đã hết giờ làm nên chưa kịp xem file của bác chị nêu vài ý kiến thôi ạ. In nhiều sheets thì bác có thể ghi 1 cái macro cho excel biết là in sheets nào rồi đến sheets nào ... và lồng nó vào 1 vòng lặp for next để có thể in theo số thứ tự danh mục từ 1-n :) Hi vọng là e đoán đúng


Cảm ơn bác đã quan tâm, em thú thật em ngu về code hay các loại macro lắm bác ạ, hy vọng bác khai sáng cho em với. :(
 
@Nimda:
Thiết lập ở sheet "PYC1" như hình (I6/I7 nhập số thứ tự cần in):

page.jpg

Module:
PHP:
Sub InPhieu()
Dim i&, p&, p1, p2
p1 = Sheet3.Range("I6").Value
p2 = Sheet3.Range("I7").Value
If IsNumeric(p1) = False Or IsNumeric(p2) = False Then Exit Sub
If p1 > p2 Then Exit Sub
For p = p1 To p2
    Sheet3.Range("G9").Value = p
    For i = 3 To 11
        'Sheets(i).PrintPreview
        Sheets(i).PrintOut From:=1, To:=1
    Next i
Next p
End Sub
 
@Nimda:
Thiết lập ở sheet "PYC1" như hình (I6/I7 nhập số thứ tự cần in):

View attachment 166133

Module:
PHP:
Sub InPhieu()
Dim i&, p&, p1, p2
p1 = Sheet3.Range("I6").Value
p2 = Sheet3.Range("I7").Value
If IsNumeric(p1) = False Or IsNumeric(p2) = False Then Exit Sub
If p1 > p2 Then Exit Sub
For p = p1 To p2
    Sheet3.Range("G9").Value = p
    For i = 3 To 11
        'Sheets(i).PrintPreview
        Sheets(i).PrintOut From:=1, To:=1
    Next i
Next p
End Sub

Cảm ơn bạn, nhưng code này có thể in tự động nhiều sheet cùng lúc theo sheet PYC được không? Ví dụ như ngày 1/9/2016 công tác bê tông bao gồm: PYC nghiệm thu vk, cthep, BB ngthu vk, cthep, BBNT ktđk trc khi đổ, phiếu lấy mẫu...thì khi nhấn in code 1 to 1 thì nó in được tất cả các sheet không bạn?
 
Lần chỉnh sửa cuối:
@Nimda:
Thiết lập ở sheet "PYC1" như hình (I6/I7 nhập số thứ tự cần in):

View attachment 166133

Module:
PHP:
Sub InPhieu()
Dim i&, p&, p1, p2
p1 = Sheet3.Range("I6").Value
p2 = Sheet3.Range("I7").Value
If IsNumeric(p1) = False Or IsNumeric(p2) = False Then Exit Sub
If p1 > p2 Then Exit Sub
For p = p1 To p2
    Sheet3.Range("G9").Value = p
    For i = 3 To 11
        'Sheets(i).PrintPreview
        Sheets(i).PrintOut From:=1, To:=1
    Next i
Next p
End Sub

Cảm ơn bạn, nhưng code này có thể in tự động nhiều sheet cùng lúc theo sheet PYC được không? Ví dụ như ngày 1/9/2016 công tác bê tông bao gồm: PYC nghiệm thu vk, cthep, BB ngthu vk, cthep, BBNT ktđk trc khi đổ, phiếu lấy mẫu...thì khi nhấn in code 1 to 1 thì nó in được tất cả các sheet không bạn?
 
Chào tất cả các bạn,

Mình có 1 vấn đề cần sự giúp đỡ của các bạn, mục đích của mình là rút ngắn công tác in biên bản nghiệm thu và công tác sắp xếp hồ sơ nghiệm thu công việc. Ý của mình là làm sao để khi ra 1 lệnh in ở sheet phiếu yêu cầu thì cũng có thể in cùng lúc các sheet khác. Ví dụ như công tác bê tông gồm các giai đoạn, mỗi giai đoạn tương ứng 1 sheet: Nghiệm thu ván khuôn, nghiệm thu cốt thép, kiểm tra điều kiện trước khi đổ bê tông, theo dõi đổ bê tông, lấy mẫu bê tông, pyc ngthu bê tông sau khi tháo ván khuôn, nghiệm thu bê tông sau khi tháo vk,...đại loại mỗi sheet 1 công việc tương ứng.

Vấn đề nữa là làm sao mình có thể in theo số thứ tự danh mục từ 1-n, kiểu như ngày 1, ngày 2, ngày n.
Mong nhận được sự giúp đỡ từ các bạn,
Bạn xem và test thử nhé
 

File đính kèm

  • Danh muc CKD.xlsm
    336.6 KB · Đọc: 130
Cảm ơn bạn, nhưng code này có thể in tự động nhiều sheet cùng lúc theo sheet PYC được không? Ví dụ như ngày 1/9/2016 công tác bê tông bao gồm: PYC nghiệm thu vk, cthep, BB ngthu vk, cthep, BBNT ktđk trc khi đổ, phiếu lấy mẫu...thì khi nhấn in code 1 to 1 thì nó in được tất cả các sheet không bạn?
đc ạ. Nếu muốn biết chắc bác có thể thử :) muốn cho nhanh gọn bác có thể gán macro đó vào 1 button nữa là ngon lành
 
Tạ ơn bác ạ, bác cho em cái file demo trên file em được k ạ, em ngu dốt về excel và macro lắm ah.
Nói vậy là biết chưa biết vba/ chèn code két gì cả... (lần sau ghi rõ là làm luôn trên file và gửi file lại).
@lehuong1409
Bạn hướng dẫn chủ topic chèn code và gửi file cho bạn ấy nhé. Mình sắp hết dung lượng cho phép đính kèm rồi --=0--=0
Chúc tối online vui vẻ!
 
Tạ ơn bác ạ, bác cho em cái file demo trên file em được k ạ, em ngu dốt về excel và macro lắm ah.
E cũng chả hơn đâu bác ạ.E mon men học mót của mấy ACE trên diễn đàn thôi. E chèn thêm cái thông báo nếu nhỡ bác có nhỡ tay click nhầm cái button ấy. Bác thử nhé!

Nếu muốn xem trước nó ra sao bác bỏ dấu nháy đơn trước sheets(i).print preview đi nhé. cho dấu nháy đơn vào dòng dưới ý.
'Sheets(i).PrintPreview
Sheets(i).PrintOut From:=1, To:=1
 

File đính kèm

  • hoi.-Danh-muc-CKDS-Ong-cong-D1.0m.xlsm
    308.5 KB · Đọc: 55
Nói vậy là biết chưa biết vba/ chèn code két gì cả... (lần sau ghi rõ là làm luôn trên file và gửi file lại).
@lehuong1409
Bạn hướng dẫn chủ topic chèn code và gửi file cho bạn ấy nhé. Mình sắp hết dung lượng cho phép đính kèm rồi --=0--=0
Chúc tối online vui vẻ!

bao giờ e mới hết dung lượng nhể :(. Chúc anh buổi tối thật vui nhé Befaint
 
E cũng chả hơn đâu bác ạ.E mon men học mót của mấy ACE trên diễn đàn thôi. E chèn thêm cái thông báo nếu nhỡ bác có nhỡ tay click nhầm cái button ấy. Bác thử nhé!

Nếu muốn xem trước nó ra sao bác bỏ dấu nháy đơn trước sheets(i).print preview đi nhé. cho dấu nháy đơn vào dòng dưới ý.

Cám ơn bác nhiều ạ, nhưng em lại có 1 vấn đề như này, đoạn code này nó thể hiện theo thứ tự các số sheet1 sheet2, sheet3, nhưng em có 1 file không tuân theo thứ tự từng số sheet, kiểu như là sheet1, sheet3, sheet7 thì phải làm thế nào để in được tất cả theo thứ tự từng sheet vậy bác?

Sub InPhieu()

Dim i&, p&, p1, p2
Dim Tb As VbMsgBoxResult
Tb = MsgBox("Ban co chac muon in tat ca cac phieu tu " & Range("I6") & " toi " & Range("I7") & " khong?", vbYesNo, "Chu y!!!!!!!!!!!!!!!!")
If Tb = vbYes Then
p1 = Sheet3.Range("I6").Value
p2 = Sheet3.Range("I7").Value
If IsNumeric(p1) = False Or IsNumeric(p2) = False Then Exit Sub
If p1 > p2 Then Exit Sub
For p = p1 To p2
Sheet3.Range("G9").Value = p
For i = 3 To 11
Sheets(i).PrintPreview
'Sheets(i).PrintOut From:=1, To:=1
Next i
Next p
End If
End Sub

Với cả bác có thể giải thích cho em là cái macro này có tác dụng gì ạ?
Mã:
Sub Macro1()
'
' Button2_Click Macro
'

'
    With Selection.Characters(Start:=1, Length:=8).Font
        .Name = "Calibri"
        .FontStyle = "Regular"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 1
    End With

End Sub

Sub Macro2()
'
' Macro2 Macro
'
' Keyboard Shortcut: Ctrl+t
'
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
End Sub
 
Em rename tên sheet theo ý mình trên cửa sổ VBA được rồi ạ. :)
 
Sub Macro1()'
' Button2_Click Macro
'

'
With Selection.Characters(Start:=1, Length:=8).Font
.Name = "Calibri"
.FontStyle = "Regular"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 1
End With
End Sub
Sub này để định dạng chữ từ ký tự thứ nhất đến ký tự thứ 8 (lenght = 8 là độ dài ký tự cần định dạng =8) nhưng sub này còn thiếu vì chưa biết selection là ô nào?
Sub Macro2()'
' Macro2 Macro
'
' Keyboard Shortcut: Ctrl+t
'
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False End Sub
Code này đơn giản là để in thôi
 
Chào tất cả các bạn,

Mình có 1 vấn đề cần sự giúp đỡ của các bạn, mục đích của mình là rút ngắn công tác in biên bản nghiệm thu và công tác sắp xếp hồ sơ nghiệm thu công việc. Ý của mình là làm sao để khi ra 1 lệnh in ở sheet phiếu yêu cầu thì cũng có thể in cùng lúc các sheet khác. Ví dụ như công tác bê tông gồm các giai đoạn, mỗi giai đoạn tương ứng 1 sheet: Nghiệm thu ván khuôn, nghiệm thu cốt thép, kiểm tra điều kiện trước khi đổ bê tông, theo dõi đổ bê tông, lấy mẫu bê tông, pyc ngthu bê tông sau khi tháo ván khuôn, nghiệm thu bê tông sau khi tháo vk,...đại loại mỗi sheet 1 công việc tương ứng.

Vấn đề nữa là làm sao mình có thể in theo số thứ tự danh mục từ 1-n, kiểu như ngày 1, ngày 2, ngày n.

Mong nhận được sự giúp đỡ từ các bạn,
bạn xem file đúng ý không nha, vì không biết tương ứng với hạng mục bạn cần in cái gì nên mình làm thêm mấy cột từ AC đến AK của sheets data để điền tên sheet bạn cần in nhá ( cần in sheet nào thì "x" vào nó)
nhấn vào "IN" rồi nhập
vd: muốn in từ STT 1 đến 3, rồi nhảy sang 4, rồi 6 tới 7, rồi 9 thì nhập như thế này
1-3;4;6-7;9
tức là các STT ngăn cách nhau bởi dấu ";", còn muốn liên tiếp thì ngăn nhau bằng dấu "-" giống như trong Ctrl+ P ấy
rồi nó in thôi.
bạn xem code rồi có gì chỉnh sửa lại, mình có chú thích sẵn đọc hiểu ngay ý mà, còn nếu muốn in đủ trò thì mình có 1 AddIns mình viết cho công việc. cần thì mình gửi.
 

File đính kèm

  • hoi.-Danh-muc-CKDS-Ong-cong-D1.0m.xlsb
    186.1 KB · Đọc: 78
Web KT
Back
Top Bottom