Thắc mắc về cửa sổ lựa chọn in ấn ?

Liên hệ QC

Ngày mai trời lại sáng

Thành viên thường trực
Tham gia
4/7/21
Bài viết
339
Được thích
139
Chào các bạn:
Mình có sử dụng câu lệnh để lựa chọn in ấn:
Application.Dialogs(xlDialogPrint).Show

Kết quả như sau:
1648043459446.png

Mong muốn của mình là như thế này, có một số lựa chọn bị ẩn và không có:
1648043309336.png

Không biết có thể sử dụng câu lệnh nào để thực thi được mong các bạn giúp đỡ.
Cảm ơn nhiều
 
Dim scn As Worksheet
Dim dongcuoi, dongcuoi1 As Long, dc As String
Dim bo As Integer
Set scn = Sheets("CN_T2")
scn.Activate

dongcuoi = scn.Cells(Rows.Count, 4).End(xlUp).Row
dongcuoi1 = scn.Cells(Rows.Count, 9).End(xlUp).Row
bo = scn.Range("J1").Value
If dongcuoi >= dongcuoi1 Then
dc = "A1:I" & dongcuoi
scn.Range(dc).Activate
Worksheets.Application.ActiveSheet.Range(dc).PrintOut Copies:=bo, Collate:=True
Else
dc = "A1:I" & dongcuoi1
scn.Range(dc).Activate
Worksheets.Application.ActiveSheet.Range(dc).PrintOut Copies:=bo, Collate:=True
End If

Mình sử dụng cái này, gửi bạn tham khảo thêm
 
Upvote 0
Dim scn As Worksheet
Dim dongcuoi, dongcuoi1 As Long, dc As String
Dim bo As Integer
Set scn = Sheets("CN_T2")
scn.Activate

dongcuoi = scn.Cells(Rows.Count, 4).End(xlUp).Row
dongcuoi1 = scn.Cells(Rows.Count, 9).End(xlUp).Row
bo = scn.Range("J1").Value
If dongcuoi >= dongcuoi1 Then
dc = "A1:I" & dongcuoi
scn.Range(dc).Activate
Worksheets.Application.ActiveSheet.Range(dc).PrintOut Copies:=bo, Collate:=True
Else
dc = "A1:I" & dongcuoi1
scn.Range(dc).Activate
Worksheets.Application.ActiveSheet.Range(dc).PrintOut Copies:=bo, Collate:=True
End If

Mình sử dụng cái này, gửi bạn tham khảo thêm
Ồ xin cảm ơn người anh em đã tìm đến và giúp đỡ tôi, nhưng vấn đề của tôi không chỉ đơn giản dừng lại ở việc lựa chọn vùng in hay số bản in.
Tôi xin mô tả cụ thể như sau, tôi in thông tin cho cán bộ công nhân viên (in hàng loạt và lặp lại) số bản in mỗi lần chỉ là 1 chỉ khác nhau mỗi bản in là thông tin của từng người (cái này tôi đã dùng vòng lặp) đến đây không có vấn đề gì khó khăn cả.
Khó khăn ở đây là ở việc lựa chọn máy in và khay in cho mỗi lần in.
Ví dụ:
1.nếu chọn tổ A trong tổ A sẽ in ra 10 nhân viên (vì tổ có 10 người) - thì cần chọn in giấy màu vàng ở khay(tray) 2 của máy in có tên XYZ
2.nếu chọn tổ B trong tổ B sẽ in ra 8 nhân viên (vì tổ có 8 người) - thì cần chọn in giấy màu xanh ở khay(tray) 2 của máy in có tên ABC
3.nếu chọn tổ Ctrong tổ C sẽ in ra 23 nhân viên (vì tổ có 23 người) - thì cần chọn in giấy màu trắng ở khay(tray)1 của máy in có tên ABC

Tôi có sử dụng câu lệnh:
Application.Dialogs(xlDialogPrinterSetup).Show

Với câu lệnh này gặp phải vấn đề như sau:
nếu tôi thực hiện mục 1 ở trên --> chọn khay 2, máy XYZ (kết quả OK) đúng ý - vì có thể do trước đó máy tính này đã in trên máy in XYZ
ngay sau đó tôi thực hiện tiếp mục 2 đổi máy ABC chọn khay 2 thì kết quả bị in ra giấy trẳng ở khay 1 máy ABC (vấn đề ở đây)
nhưng sau khi bị in ra sai tôi lại tiếp tục chọn in lại một lần nữa mục 2 này chọn khay 2 của máy ABC thì mới OK.
Có nghĩa là sau khi máy nào đó thì nó mới nhận thông tin của máy đó.

Do vậy tôi không dùng được:
Application.Dialogs(xlDialogPrinterSetup).Show

Nếu sử dụng thì mỗi lần in thì chọn trước và phải hi sinh một tờ giấy để nó nhận thông tin rồi chọn lại

Do vậy mà tôi đã chuyển sang:
Application.Dialogs(xlDialogPrint).Show(1, 1, 1) -- và để tham số là 3 số 1 như vậy (1 lần in 1 bản và 1 trang)
Câu lệnh này rất OK nhưng gặp phải vấn đề.
Nếu người dùng thay đổi các thông số trong khung thì mọi thứ sẽ sai, ví dụ số 1 in ra không phải là 1 người một bản nữa mà một người ứng với số bản mà không phải là số 1 (như là việc copy) không qua vòng lặp để thay đổi thông tin bản in sau.
Vì vậy tôi mong muốn xem có cách nào để khóa tất cả các lựa chọn trong khung màu cam không để tránh người dùng tương tác đến:
1648638612250.png

Giống như giao diện này giống như bác @befaint đã nói đó là giao diện của phần mềm khác (không phải Office-Excel) đúng là như vậy:

1648638719886.png

Nếu bạn nào biết kỹ thuật nào can thiệp được vào để xử lý được vấn đề này thì hay quá.
 
Upvote 0
Web KT

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

Back
Top Bottom