1. Tạo danh sách và mẫu in giấy khen trên Excel 2003 -
THCS
(Cập nhật 10.10.201107:43)
Thường đến cuối năm học bộ phận tin học nhà trường
sẽ lọc danh sách các học sinh xuất sắc, học sinh giỏi,
học sinh có thành tích trong các kỳ thi olympic, THTN,
phongtrào Đoàn Đội, Tin học, Thư viện, TDTT. .v.v.
để tiến hành in giấy khen cho nhà trường khen tặng
trong ngày tổng kết hay giấy chứng nhận tạm thời TN
THCS, thẻ học sinh.v.v. Trong bài này mình sẽ giới
thiệu thêm 1 phương pháp là in giấy khen trong file
excel với 2 sheet ( sheet danhsach và sheet mau_in )
cộng thêm 1 số dòng code đơn giản...
Lâu nay mình vẫn hay dùng mẫu khen thiết kế trong
Word và dùng chức năng mail merge liên kết với file
danh sách bên Excel sau đó in.Phương pháp này mình
thấy đa số các giáo viên hay dùng và cũng không có gì
trở ngại.
Và mình muốn giới thiệu thêm1 phươngpháp làin thẳng
trong mẫu excel cụ thể:
Bước 1: ta cần 2 sheet danhsach và mau_in
2. Sheet danhsach
Sheet mau_in
Bước 2 : ở sheet danhsachta tiến hành định nghĩa 2
thành phần sau:
Ta quét khối A6:G1000 ( không quét tiêu đề , đây
là khối chứa toàn bộ các thông tin của học sinh
được khen, dự kiến gần 1000 em được khen cho dư
ra thôi ;)) sau đó vào menu Insert - Name - Define
nhập vào danhsachvà bấm Add
3. Tương tự ta quét khối A6:A1000 ( chứa Số KT
tương ứng ) vào menu Insert - Name - Define
nhập vào sokt và bấm Add
Định nghĩa danhsach và sokt - trong ví dụ mình chỉ quét
26 đến 27 dòng thôi
Tiếp tục ta qua sheet mau_in Click ô E24 ( ô chứa số
khen thưởng- Số KT ) vào menu Data - Validation...
4. Ô Allow chọn List
Ô Source : nhập =sokt ( chú ý có dấu "=" , đã khai
báo bên sheet danhsach )
OK
Vẫn chọn ô E24 vào menu Format - Cells... ( Crtl +
1 ) chọn Custom ô Type nhập 000 nếu tổng số học
sinh khen ở số hàngtrăm( 00 nếu hàngchụcvà 0000
nếu hàng ngàn )
Lúc này ô E24 sẽ xuất hiện 1 Compo Box List thể hiện
lựa chọn số khen thưởng.
Bây giờ ta sẽ dùng lệnh để liên kết trường danhsach khi
ta chọn số khen thưởng trong List box.
Trên sheet mau_in chọn ô D18 ( ô họ tên học sinh ) ta
nhập lệnh sau :
=IF(ISNA(VLOOKUP(E24,DANHSACH,3,0)),"",V
LOOKUP(E24,DANHSACH,3,0))&"_"&IF(ISNA(V
5. LOOKUP(E24,DANHSACH,4,0)),"",VLOOKUP(E
24,DANHSACH,4,0))
Trong đó : E24 là ô số khen thưởng, danhsach là trường
dữ liệu đã định nghĩa bên sheet danhsach, số 3 và 4 là cột
họ và tên bên sheet danhsach kết hợp với phép & để nối
họ tên cùng 1 khoảng trắng "_"
Kết quả : khi ta chọn số khen thưởng bên List box thì họ
tên học sinh tương ứng sẽ hiện ra.
Tương tự là nhập công thức cho ô M18 ( lớp ):
=IF(ISNA(VLOOKUP(E24,DANHSACH,5,0)),"",V
LOOKUP(E24,DANHSACH,5,0))
và ô F19 ( thành tích )
=IF(ISNA(VLOOKUP(E24,DANHSACH,6,0)),"",V
LOOKUP(E24,DANHSACH,6,0))
Chú ý : trong các công thức trên danhsach viết thường
Kết quả : khi ta chọn số khen thưởng trong List box thì
trường dữ liệu tương ứng như họ và tên, lớp, thành tích
sẽ hiện ra đồng thời tương ứng với dữ liệu bên sheet
danhsach.
6. Đến đây thì bạn cứ ngồi chọn số khen thưởng trong
List box và bấm lệnh in nhé. Nhiều học sinh khen thì
ngồi click cũng phê ah ;))
Bước 3: tạo nút Print và PrintAll ( bấm là in và bấm
thì in tất cả học sinh trong danh sách)
Tại file excel có chứa 2 sheet danhsach và mau_in ta
bấm Alt + F11
Xuất hiện thêm cửa sổ Visual Basic như trên
7. Chọn dòng VBAProject ( InGiayKhen C2_2011.xls)
click phải chọn Insert - Module
Xuất hiện cửa sổ nhỏ bên phải bạn nhập dòng code này
để tạo nút Print
Sub InThe()
On Error Resume Next
ActiveWindow.SelectedSheets.PrintOutFrom:=1,
To:=1, Copies:=1, Collate_
:=True
End Sub
8. Bấm nút save trên thanh công cụ. Quay lại sheet
mau_in ta vẽ 1 nút từ Autoshapes nhập từ Print, click
phải vào nút chọn Assign Macro...
Thao tác như các mũi tên nha.
Kết quả:khi click vào nút Print thì lập tứcsẽ in tranghiện
hành và máy in mặc định ( Win XP : Start - Settings -
Printers and Faxes, chọn máy in muốn làm mặc định và
click phải chọn Set as Default Printer )
TẠO NÚT IN TẤT CẢ HỌC SINH KHEN
THƯỞNG CÓ TRONG DANH SÁCH
Quay lại của sổ Visual Basic thêm dưới đoạn code sau
Sub InTatCa()
Dim i As Integer
For i = 1 To Sheets("danhsach").Range("G1")
Sheets("mau_in").Range("E24").Value = i
Sheets("mau_in").Select
9. Call InThe
Next i
End Sub
Xong bấm save
Quay lại sheet danhsach tại ô G1 nhập =COUNT(sokt)
( hiện ra 3 tại vì danh sách có 3 học sinh ;))
Qua sheet mau_in tạo nút Print All trong Autoshapes ,
click phải chọn Assign Macro...chọn InTatCa - OK
Kết quả : khi click vào nút Print All sẽ in tất cả các học
sinh có trong danh sách.
LƯU Ý CHUNG :
BẠN PHẢI CHUẨN BỊ MÁY IN TỐT MỰC ĐẦY,
MẪU GIẤY KHEN ĐẶT SẲN, CÁC VỊ TRÍ DỮ
10. LIỆU TRONG SHEET MAU_IN PHẢI KHỚP VỚI
MẪU GIẤY IN ( TEST TRƯỚC ), CHỌN ĐÚNG
KHỔ GIẤY, NÊN IN THEO KHỐI VÀ CHO MÁY
NGHỈ CHÚT ĐỂ BỚI NÓNG VÀ IN TIẾP ( TÙY
TRONG DANH SÁCH THÔI NẾU IN ĐỒNGLOẠT
).
KHI ĐẶT IN MẪU GIẤY KHEN CHỈ GHI THÔNG
TIN BÊN TRÊN THÔI ( VÍ DỤ : PHÒNG GD&ĐT
...TRƯỜNG THCS PHÚ CƯỜNG...CỘNG HÒA XÃ
HỘI...HIỆU TRƯỞNG TRƯỜNG THCS PHÚ
CƯỜNG KHEN TẶNG......PHÍA DƯỚI MÌNH ĐỂ
TRỐNG KHÔNG NÊN CÓ CÁC ĐƯỜNG CHẤM
CHẤM ...LÀM KHÓ MÌNH THÊM CANH LÊN
XUỐNG VÀ KHI KÍCH THƯỚC GIẤY CẮT
KHÔNGĐÚNG LÀ MỆT LẮM...NÊN ĐẶT MẪU IN
A4 LUÔN KHỎI CANH NHIỀU ;))