Lọc danh sách từng lớp từ sheet DSHocSinh để In học bạ hàng loạt

Liên hệ QC

hacmacphong22

Thành viên mới
Tham gia
21/8/18
Bài viết
22
Được thích
5
Giới tính
Nam
Mình có bản dữ liệu học sinh như sau.
Ở sheet 1
muốn lấy dữ liệu từ sheet1 qua sheet 2
Ở SHEET 2
mình có ô lớp. Lick chọn vào lớp nào, thì danh sách lớp đó hiện ở ô họ và tên.
ô họ tên mình chọn học sinh thì nó tự điền thông tin vào các mục mình bôi màu ở sheet2 .
gấp quá em tìm cách làm 2 ngày rồi mà chưa ra. ai giúp em . hoặc xem file gợi ý cho em với. thank anh chị em a
 

File đính kèm

  • InThuHocBa2.xlsx
    74.3 KB · Đọc: 13
Lần chỉnh sửa cuối:
Hỏi bài mà cũng không chịu khó đọc lại xem gõ cẩu thả có sai chỗ nào. Câu cú không biết viết hoa mở đầu.
Vào diễn đàn mà cũng không buồn đọc luật.
Thế này thì làm việc với trường học mà chi. Ao việc với vũng việc.
 
Mình có bản dữ liệu học sinh sau. ở sheet 1 và muốn lấy dữ liệu qua sheet 2
Ở SHEET 2
mình có ô lớp. muốn chọn vào lớp nào thì danh sách lớp đó hiện ở ô họ và tên.
chọn họ và tên thì nó tự điền thông tin vào các mục mình bôi màu ở sheet2 .
gấp quá em tìm cách làm 2 ngày rồi mà chưa ra. ai giúp em . hoặc xem file gợi ý cho em với.
không thì out việc như chơi. thank anh chị em a
thôi thì cũng có tý cố gắng sửa đổi rồi,
bạn xem file nhé
 

File đính kèm

  • InThuHocBa.xlsx
    91.6 KB · Đọc: 22
Mình có bản dữ liệu học sinh sau. ở sheet 1 và muốn lấy dữ liệu qua sheet 2
Ở SHEET 2
mình có ô lớp. muốn chọn vào lớp nào thì danh sách lớp đó hiện ở ô họ và tên.
chọn họ và tên thì nó tự điền thông tin vào các mục mình bôi màu ở sheet2 .
gấp quá em tìm cách làm 2 ngày rồi mà chưa ra. ai giúp em . hoặc xem file gợi ý cho em với.
không thì out việc như chơi. thank anh chị em a
Gấp gì thì gấp, nhưng cũng phải sửa tiêu đề cho phù hợp với nội dung, có thể sửa tiêu đề là "Lọc danh sách từng lớp từ sheet DSHocSinh để In học bạ hàng loạt".

Cách sửa lại tiêu đề bài viết:
Khi đăng nhập xong, vào Công cụ chủ đề (trên cùng bên phải bài viết), chọn Edit Title , nó hiện ra hộp thoại để sửa tiêu đề, khi sửa xong nhấn nút Lưu thay đổi.
 
Hỏi bài mà cũng không chịu khó đọc lại xem gõ cẩu thả có sai chỗ nào. Câu cú không biết viết hoa mở đầu.
Vào diễn đàn mà cũng không buồn đọc luật.
Thế này thì làm việc với trường học mà chi. Ao việc với vũng việc.
cảm ơn bạn đã góp ý.
Bài đã được tự động gộp:

Gấp gì thì gấp, nhưng cũng phải sửa tiêu đề cho phù hợp với nội dung, có thể sửa tiêu đề là "Lọc danh sách từng lớp từ sheet DSHocSinh để In học bạ hàng loạt".

Cách sửa lại tiêu đề bài viết:
Khi đăng nhập xong, vào Công cụ chủ đề (trên cùng bên phải bài viết), chọn Edit Title , nó hiện ra hộp thoại để sửa tiêu đề, khi sửa xong nhấn nút Lưu thay đổi.
Vâng , nhiều vấn đề . em mới tham gia diễn đàn nên chưa rõ nội qui cảm ơn góp ý ạ
Bài đã được tự động gộp:

thôi thì cũng có tý cố gắng sửa đổi rồi,
bạn xem file nhé
cảm ơn bạn. bạn có thể gợi ý cho mình cách làm. các bước thực hiện, và dùng những công cụ gì ko.
 
cảm ơn bạn đã góp ý.
................
Vâng , nhiều vấn đề . em mới tham gia diễn đàn nên chưa rõ nội qui cảm ơn góp ý ạ
...............
cảm ơn bạn. bạn có thể gợi ý cho mình cách làm. các bước thực hiện, và dùng những công cụ gì ko.
Tôi thấy bạn mới tham gia diễn đàn (tham gia ngày hôm qua), nên mới hướng dẫn sửa tiêu đề. Nếu là thành viên cũ thì chỉ cần nhắc để họ tự hiểu.

Để in theo lớp thì cần thêm 1 sheet lọc lớp, dựa vào danh sách vừa lọc để in học bạ hàng loạt theo lớp.
Vấn đề in hàng loạt thì phải dùng đến VBA.
 
Tôi thấy bạn mới tham gia diễn đàn (tham gia ngày hôm qua), nên mới hướng dẫn sửa tiêu đề. Nếu là thành viên cũ thì chỉ cần nhắc để họ tự hiểu.

Để in theo lớp thì cần thêm 1 sheet lọc lớp, dựa vào danh sách vừa lọc để in học bạ hàng loạt theo lớp.
Vấn đề in hàng loạt thì phải dùng đến VBA.
hiện tại mình chỉ có 1 giải pháp cho vụ in hàng loạt là:
1. tạo cột phụ để list ra toàn bộ danh sách học sinh theo lớp. Cột "Q"
2. VBA sẽ in toàn bộ học sinh có trong list của cột "Q"

tuy nhiên mình thấy cách này hơi rối, bạn xem giúp mình có cách nào chỉ cần dùng VBA không phải tạo cột phụ được không?

Mã:
Sub in_hang_loat()
Dim cell_in As Range
For Each cell_in In Range([Q3], [Q100]).SpecialCells(xlCellTypeFormulas, 3)
   [O4] = cell_in.Value
   [A1:K91].PrintOut
Next
End Sub
 

File đính kèm

  • InThuHocBa.xlsm
    101.4 KB · Đọc: 18
hiện tại mình chỉ có 1 giải pháp cho vụ in hàng loạt là:
1. tạo cột phụ để list ra toàn bộ danh sách học sinh theo lớp. Cột "Q"
2. VBA sẽ in toàn bộ học sinh có trong list của cột "Q"

tuy nhiên mình thấy cách này hơi rối, bạn xem giúp mình có cách nào chỉ cần dùng VBA không phải tạo cột phụ được không?

Mã:
Sub in_hang_loat()
Dim cell_in As Range
For Each cell_in In Range([Q3], [Q100]).SpecialCells(xlCellTypeFormulas, 3)
   [O4] = cell_in.Value
   [A1:K91].PrintOut
Next
End Sub
cảm ơn bạn. thật ra thì mình cũng không cần phải in hàng loạt đâu. in học bạ cần tỉ lệ chính xát, canh chỉnh giấy in nên phải in từng em. nhưng mình thấy giải pháp của bạn rất hay , mình sẽ nghiên cứu thêm. cảm ơn nguyenthuy13388
rất nhiều.
 
cảm ơn bạn. thật ra thì mình cũng không cần phải in hàng loạt đâu. in học bạ cần tỉ lệ chính xát, canh chỉnh giấy in nên phải in từng em. nhưng mình thấy giải pháp của bạn rất hay , mình sẽ nghiên cứu thêm. cảm ơn nguyenthuy13388
rất nhiều.
Cái này mình hỏi cho mình, để mình hiểu và áp dụng cho các trường hợp khác nữa.
 
hiện tại mình chỉ có 1 giải pháp cho vụ in hàng loạt là:
1. tạo cột phụ để list ra toàn bộ danh sách học sinh theo lớp. Cột "Q"
2. VBA sẽ in toàn bộ học sinh có trong list của cột "Q"

tuy nhiên mình thấy cách này hơi rối, bạn xem giúp mình có cách nào chỉ cần dùng VBA không phải tạo cột phụ được không?

Mã:
Sub in_hang_loat()
Dim cell_in As Range
For Each cell_in In Range([Q3], [Q100]).SpecialCells(xlCellTypeFormulas, 3)
   [O4] = cell_in.Value
   [A1:K91].PrintOut
Next
End Sub
xin lỗi vì mình mới vào diễn đàn không biêt cách post bài như thế nào? bạn nào có thể chỉ cho mình cách post bài lên không với lại mình có file excel yêu cầu ở bên trong mà làm hoài không ra, rất mong nhận được sự giúp đỡ của mọi người.
 

File đính kèm

  • Sap xep du lieu.xlsx
    12.3 KB · Đọc: 3
hiện tại mình chỉ có 1 giải pháp cho vụ in hàng loạt là:
1. tạo cột phụ để list ra toàn bộ danh sách học sinh theo lớp. Cột "Q"
2. VBA sẽ in toàn bộ học sinh có trong list của cột "Q"

tuy nhiên mình thấy cách này hơi rối, bạn xem giúp mình có cách nào chỉ cần dùng VBA không phải tạo cột phụ được không?

Mã:
Sub in_hang_loat()
Dim cell_in As Range
For Each cell_in In Range([Q3], [Q100]).SpecialCells(xlCellTypeFormulas, 3)
   [O4] = cell_in.Value
   [A1:K91].PrintOut
Next
End Sub
ai giúp mình vấn đề này với
 
Mình có bản dữ liệu học sinh như sau.
Ở sheet 1
muốn lấy dữ liệu từ sheet1 qua sheet 2
Ở SHEET 2
mình có ô lớp. Lick chọn vào lớp nào, thì danh sách lớp đó hiện ở ô họ và tên.
ô họ tên mình chọn học sinh thì nó tự điền thông tin vào các mục mình bôi màu ở sheet2 .
gấp quá em tìm cách làm 2 ngày rồi mà chưa ra. ai giúp em . hoặc xem file gợi ý cho em với. thank anh chị em a
Theo tôi thì dựa vào tên để dò các thông tin khác thì chưa hợp lý, vậy dùng mã để làm gì, trong khi nếu có 2 học sinh trùng cả tên và họ thì sao? Chính vì vậy khi chọn lớp xong thì chọn mã học sinh để dò thì chính xác hơn.
hiện tại mình chỉ có 1 giải pháp cho vụ in hàng loạt là:
1. tạo cột phụ để list ra toàn bộ danh sách học sinh theo lớp. Cột "Q"
2. VBA sẽ in toàn bộ học sinh có trong list của cột "Q"

tuy nhiên mình thấy cách này hơi rối, bạn xem giúp mình có cách nào chỉ cần dùng VBA không phải tạo cột phụ được không?

Mã:
Sub in_hang_loat()
Dim cell_in As Range
For Each cell_in In Range([Q3], [Q100]).SpecialCells(xlCellTypeFormulas, 3)
   [O4] = cell_in.Value
   [A1:K91].PrintOut
Next
End Sub
Nếu đã dùng code thì dùng luôn chứ sau lại nửa vời vậy, chút code chút công thức nó mới ghê à?
Bài này nếu tôi làm thì tôi thiết kế cái Form cho phép chọn nhiều học sinh (Vì có thể trong một lớp có khi một vài học sinh không có nhu cầu in) và ra lệnh in 1 lần là xong.
 
Theo tôi thì dựa vào tên để dò các thông tin khác thì chưa hợp lý, vậy dùng mã để làm gì, trong khi nếu có 2 học sinh trùng cả tên và họ thì sao? Chính vì vậy khi chọn lớp xong thì chọn mã học sinh để dò thì chính xác hơn.

Nếu đã dùng code thì dùng luôn chứ sau lại nửa vời vậy, chút code chút công thức nó mới ghê à?
Bài này nếu tôi làm thì tôi thiết kế cái Form cho phép chọn nhiều học sinh (Vì có thể trong một lớp có khi một vài học sinh không có nhu cầu in) và ra lệnh in 1 lần là xong.
chỉ là chưa đủ trình giải quyết cả bằng code nên mới dùng cả 2 thôi, bạn giúp dc thì giúp không thì thôi. đâu cần phải mỉa mai nhau thế
 
hiện tại mình chỉ có 1 giải pháp cho vụ in hàng loạt là:
1. tạo cột phụ để list ra toàn bộ danh sách học sinh theo lớp. Cột "Q"
2. VBA sẽ in toàn bộ học sinh có trong list của cột "Q"

tuy nhiên mình thấy cách này hơi rối, bạn xem giúp mình có cách nào chỉ cần dùng VBA không phải tạo cột phụ được không?

Mã:
Sub in_hang_loat()
Dim cell_in As Range
For Each cell_in In Range([Q3], [Q100]).SpecialCells(xlCellTypeFormulas, 3)
   [O4] = cell_in.Value
   [A1:K91].PrintOut
Next
End Sub
chỉ là chưa đủ trình giải quyết cả bằng code nên mới dùng cả 2 thôi, bạn giúp dc thì giúp không thì thôi. đâu cần phải mỉa mai nhau thế
Đang rảnh thiết kế xong luôn up cho chủ topic tham khảo.
Gửi @hacmacphong22 cột mã tại sao các dòng lại giống nhau vậy? tôi sửa lại cho phù hợp, thứ hai là trong danh sách không có cột họ và tên người giám hộ nên tôi bỏ trống.
 

File đính kèm

  • InThuHocBa2.xlsm
    109.2 KB · Đọc: 12
(1) Chuyện in học bạ cho trường thì không cần in theo lớp; Ta có thể in theo tên; Chuyện xếp vô lớp nào là chuyện sau khi in
Ta không nên làm 2 việc song song, mà nên tách ra đỡ sai sót.
(2) Nếu là mình, thì mình sẽ xài bộ mã HS như sau:
PHP:
MaHS       Họ          TÊN
BFA00  Bùi Đức          Anh
BPA00  Bùi Phương       Anh
BTA00  Bùi Huỳnh Trâm   Anh
BTA01  Bùi Tuấn         Anh
FDA00  Đỗ Duy           Anh
FTA00  Đặng Minh Tuấn    An
FTA01  Đinh Tú          Anh
FTA02  Đào Nguyễn Trâm  Anh
HGA00  Huỳnh Đoàn Gia   An
HKA00  Hà Khả           Ái
HTA00  Hồ Đức Thiên     Ân
KNA00  Kiều Nhật        An
LFA00  Lưu Đức          An
LHA00  Lê Văn Hoàng     Anh
LKA00  Lê Thị Kiều     Anh
LNA00  Lê Thị Ngọc     Anh  
NHA00  Nguyễn Hoàng     An     *
NHA01  Nguyễn Hải       An     *
NHA02  Nguyễn Hoài     An      *
NHA03  Nguyễn Hồ Hoàng  Anh    *
NJA00  Ngô               Ánh    **
NLA00  Nguyễn Phúc Lê   An
. . . .   . . . .       . .
TVA00  Trương Việt     Anh
. . .     .. . . . . .       . . .
 
Lần chỉnh sửa cuối:
ai giúp mình vấn đề này với
giữa lớp là họ tên học sinh. bạn dùng bộ lọc hoặc hàm nào mà lọc ra dc vậy. hướng đẫn hoặc gợi ý giúp mình với.
Bài đã được tự động gộp:

Đang rảnh thiết kế xong luôn up cho chủ topic tham khảo.
Gửi @hacmacphong22 cột mã tại sao các dòng lại giống nhau vậy? tôi sửa lại cho phù hợp, thứ hai là trong danh sách không có cột họ và tên người giám hộ nên tôi bỏ trống.
cảm ơn bạn nhé
 
(1) Chuyện in học bạ cho trường thì không cần in theo lớp; Ta có thể in theo tên; Chuyện xếp vô lớp nào là chuyện sau khi in
Ta không nên làm 2 việc song song, mà nên tách ra đỡ sai sót.
(2) Nếu là mình, thì mình sẽ xài bộ mã HS như sau:
PHP:
MaHS       Họ          TÊN
BFA00  Bùi Đức          Anh
BPA00  Bùi Phương       Anh
BTA00  Bùi Huỳnh Trâm   Anh
BTA01  Bùi Tuấn         Anh
FDA00  Đỗ Duy           Anh
FTA00  Đặng Minh Tuấn    An
FTA01  Đinh Tú          Anh
FTA02  Đào Nguyễn Trâm  Anh
HGA00  Huỳnh Đoàn Gia   An
HKA00  Hà Khả           Ái
HTA00  Hồ Đức Thiên     Ân
KNA00  Kiều Nhật        An
LFA00  Lưu Đức          An
LHA00  Lê Văn Hoàng     Anh
LKA00  Lê Thị Kiều     Anh
LNA00  Lê Thị Ngọc     Anh
NHA00  Nguyễn Hoàng     An     *
NHA01  Nguyễn Hải       An     *
NHA02  Nguyễn Hoài     An      *
NHA03  Nguyễn Hồ Hoàng  Anh    *
NJA00  Ngô               Ánh    **
NLA00  Nguyễn Phúc Lê   An
. . . .   . . . .       . .
TVA00  Trương Việt     Anh
. . .     .. . . . . .       . . .
Cảm ơn bác với gợi ý,
1. đồng ý với việc đặt mã HS,
2. về việc in: trc đây mình cũng in chứng chỉ với số lượng lơn, quả thật nếu in theo tên xong sau đó mới sắp xếp lại thì khá là mệt, nên mình chọn cách in từng nhóm 1, in xong có thể kiểm soát số lượng/chất lượng bản in dễ hơn.
Bài đã được tự động gộp:

Đang rảnh thiết kế xong luôn up cho chủ topic tham khảo.
Gửi @hacmacphong22 cột mã tại sao các dòng lại giống nhau vậy? tôi sửa lại cho phù hợp, thứ hai là trong danh sách không có cột họ và tên người giám hộ nên tôi bỏ trống.
file của bạn rất hay, nhưng chắc chủ topic cần 1 thời gian rất dài để thẩm thấu được hết kiến thức trong đó
Bài đã được tự động gộp:

giữa lớp là họ tên học sinh. bạn dùng bộ lọc hoặc hàm nào mà lọc ra dc vậy. hướng đẫn hoặc gợi ý giúp mình với.
Bài đã được tự động gộp:


cảm ơn bạn nhé

bạn tham khảo hình ảnh và hàm dưới nhé

z1091212931576_da01171ec67eb448cf0d924c06b3bc91.png
Mã:
=OFFSET(DSHocSinh!$N$6,MATCH(HB!$O$3,DSHocSinh!$N$7:$N$457,0),-12,COUNTIF(DSHocSinh!$N$7:$N$457,HB!$O$3))
 
Lần chỉnh sửa cuối:
Theo tôi thấy đa số các thành viên trong diễn đàn này thích nhất là in từng học sinh một, nhưng cách này in sẽ rất lâu. Theo tôi để cải thiện tốc độ thì in cùng lúc nhiều học sinh sẽ nhanh hơn nhiều, muốn vậy khi chạy code thì sẽ tạo ra sheet mới (Có thể đưa ra file mới luôn) chứa tất cả số học sinh cần in ra, vậy khi in chỉ cần ra một lệnh in duy nhất để in cả 100 trang sẽ nhanh hơn mỗi trang ra một lệnh in.
 
Web KT
Back
Top Bottom