Hỏi code in thẻ thành viên nhanh ?

Liên hệ QC

thanhphuongvip

Mới học VBA, hỏi ngu anh chị đừng chửi ạ
Tham gia
16/1/10
Bài viết
136
Được thích
22
Xin chào đại gia đình GPE, Phần mềm chỉnh sửa đến bước cuối cùng, nhờ anh em giúp mình viết một code VBA in thẻ với nội dung như này:

Mình có một sheet Docgia, bao gồm rất nhiều tên thành viên theo dõi bằng Số thẻ, giờ mình muốn in thẻ phát cho mỗi thành viên.

217923

Để khi mình bấm vào nút In thẻ bạn đọc thì nó sẽ hiển thị hộp thoại Input để mình bôi đen vùng số thẻ mà mình muốn in (giả sử ở đây mình muốn in từ dòng 6 đến 23), sau đó nó sẽ hiển thị cửa sổ PrintPreview bao gồm tất cả thẻ mình đã chọn bằng form mình tạo sẵn ở sheet Inthetong, có 3 thông tin cần lấy qua form đó mà Tên độc giả, Đơn vị và Số thẻ.

217924


Trong file này có code in toàn bộ các thẻ, nhưng ít khi sử dụng lệnh này, gửi anh em tham khảo, không biết từ cái code này có thể tùy biến thành code in từng khu vực chọn được không ?!

Mã:
Sub Intoanbothe()
ActiveSheet.PageSetup.PrintArea = "$A$1:$M$37"
Dim i As Long
Dim lngRowCount As Long
lngRowCount = WorksheetFunction.CountA(Range("Sothe"))
For i = 1 To lngRowCount Step 8
Range("C7").Formula = "=INDEX(sothe," & i & ")"
Range("I7").Formula = "=INDEX(sothe," & i + 1 & ")"
Range("C16").Formula = "=INDEX(sothe," & i + 2 & ")"
Range("I16").Formula = "=INDEX(sothe," & i + 3 & ")"
Range("C25").Formula = "=INDEX(sothe," & i + 4 & ")"
Range("I25").Formula = "=INDEX(sothe," & i + 5 & ")"
Range("C34").Formula = "=INDEX(sothe," & i + 6 & ")"
Range("I34").Formula = "=INDEX(sothe," & i + 7 & ")"
ActiveWindow.SelectedSheets.PrintPreview ' , to:=1, Copies:=1, collate:=True
Next
ActiveSheet.PageSetup.PrintArea = ""
End Sub

Xin đa tạ!
 

File đính kèm

  • QUAN LY THU VIEN.xlsb
    717.3 KB · Đọc: 21
Xin chào đại gia đình GPE, Phần mềm chỉnh sửa đến bước cuối cùng, nhờ anh em giúp mình viết một code VBA in thẻ với nội dung như này:

Mình có một sheet Docgia, bao gồm rất nhiều tên thành viên theo dõi bằng Số thẻ, giờ mình muốn in thẻ phát cho mỗi thành viên.

View attachment 217923

Để khi mình bấm vào nút In thẻ bạn đọc thì nó sẽ hiển thị hộp thoại Input để mình bôi đen vùng số thẻ mà mình muốn in (giả sử ở đây mình muốn in từ dòng 6 đến 23), sau đó nó sẽ hiển thị cửa sổ PrintPreview bao gồm tất cả thẻ mình đã chọn bằng form mình tạo sẵn ở sheet Inthetong, có 3 thông tin cần lấy qua form đó mà Tên độc giả, Đơn vị và Số thẻ.

View attachment 217924


Trong file này có code in toàn bộ các thẻ, nhưng ít khi sử dụng lệnh này, gửi anh em tham khảo, không biết từ cái code này có thể tùy biến thành code in từng khu vực chọn được không ?!

Mã:
Sub Intoanbothe()
ActiveSheet.PageSetup.PrintArea = "$A$1:$M$37"
Dim i As Long
Dim lngRowCount As Long
lngRowCount = WorksheetFunction.CountA(Range("Sothe"))
For i = 1 To lngRowCount Step 8
Range("C7").Formula = "=INDEX(sothe," & i & ")"
Range("I7").Formula = "=INDEX(sothe," & i + 1 & ")"
Range("C16").Formula = "=INDEX(sothe," & i + 2 & ")"
Range("I16").Formula = "=INDEX(sothe," & i + 3 & ")"
Range("C25").Formula = "=INDEX(sothe," & i + 4 & ")"
Range("I25").Formula = "=INDEX(sothe," & i + 5 & ")"
Range("C34").Formula = "=INDEX(sothe," & i + 6 & ")"
Range("I34").Formula = "=INDEX(sothe," & i + 7 & ")"
ActiveWindow.SelectedSheets.PrintPreview ' , to:=1, Copies:=1, collate:=True
Next
ActiveSheet.PageSetup.PrintArea = ""
End Sub

Xin đa tạ!
Theo mình nên đánh dấu x vào cột ghi chú cho những dòng cần in. và có thể đặt công thức để hiện ra dữ liệu thẻ theo các dòng có dấu x
 
Upvote 0
Xin chào đại gia đình GPE, Phần mềm chỉnh sửa đến bước cuối cùng, nhờ anh em giúp mình viết một code VBA in thẻ với nội dung như này:

Mình có một sheet Docgia, bao gồm rất nhiều tên thành viên theo dõi bằng Số thẻ, giờ mình muốn in thẻ phát cho mỗi thành viên.

View attachment 217923

Để khi mình bấm vào nút In thẻ bạn đọc thì nó sẽ hiển thị hộp thoại Input để mình bôi đen vùng số thẻ mà mình muốn in (giả sử ở đây mình muốn in từ dòng 6 đến 23), sau đó nó sẽ hiển thị cửa sổ PrintPreview bao gồm tất cả thẻ mình đã chọn bằng form mình tạo sẵn ở sheet Inthetong, có 3 thông tin cần lấy qua form đó mà Tên độc giả, Đơn vị và Số thẻ.

View attachment 217924


Trong file này có code in toàn bộ các thẻ, nhưng ít khi sử dụng lệnh này, gửi anh em tham khảo, không biết từ cái code này có thể tùy biến thành code in từng khu vực chọn được không ?!

Mã:
Sub Intoanbothe()
ActiveSheet.PageSetup.PrintArea = "$A$1:$M$37"
Dim i As Long
Dim lngRowCount As Long
lngRowCount = WorksheetFunction.CountA(Range("Sothe"))
For i = 1 To lngRowCount Step 8
Range("C7").Formula = "=INDEX(sothe," & i & ")"
Range("I7").Formula = "=INDEX(sothe," & i + 1 & ")"
Range("C16").Formula = "=INDEX(sothe," & i + 2 & ")"
Range("I16").Formula = "=INDEX(sothe," & i + 3 & ")"
Range("C25").Formula = "=INDEX(sothe," & i + 4 & ")"
Range("I25").Formula = "=INDEX(sothe," & i + 5 & ")"
Range("C34").Formula = "=INDEX(sothe," & i + 6 & ")"
Range("I34").Formula = "=INDEX(sothe," & i + 7 & ")"
ActiveWindow.SelectedSheets.PrintPreview ' , to:=1, Copies:=1, collate:=True
Next
ActiveSheet.PageSetup.PrintArea = ""
End Sub

Xin đa tạ!
File thiếtkế rườm rà và tùy tiện quá.
1/ Hinh thẻ lúc nào cũng trên cùng bên góc trái.
2/ Sách mượn, quá hạn và trả làm chung 1 sheet.
 
Upvote 0
Theo mình nên đánh dấu x vào cột ghi chú cho những dòng cần in. và có thể đặt công thức để hiện ra dữ liệu thẻ theo các dòng có dấu x
Có nhiều cách ko cần dùng VBA, nhưng mình muốn làm như một phần mềm, với lại cũng đang học VBA nên muốn học hỏi thêm.
Bài đã được tự động gộp:

File thiếtkế rườm rà và tùy tiện quá.
1/ Hinh thẻ lúc nào cũng trên cùng bên góc trái.
2/ Sách mượn, quá hạn và trả làm chung 1 sheet.
Hihi, tại mình mới học VBA nên ko đc hay lắm, có gì xin bạn chỉ giáo vài chiêu, rất cảm ơn ạ!
 
Upvote 0
Web KT
Back
Top Bottom