Viết code cho sheet [thongke] (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

dancao1975

Thành viên chính thức
Tham gia
13/2/11
Bài viết
59
Được thích
7
tôi có bảng chia phòng thi, nhờ các bác viết giùm code như sau: trong sheet[danhsach] đã có điểm, bây giờ tôi muốn tổng hợp sang sheet[tonghop]: chọn môn từ ô A13 thì nó sẽ thống kê vào ô SL: học sinh theo yêu cầu: 0<=điểm<3.5,3.5<=điểm<5...., tương tự chọn môn tại ô A23 nó sẽ thống kê số lượng học sinh nữ theo yêu cầu, chọn ô A33 nó sẽ thống kê học sinh dân rộc theo yêu cầu. chú ý: ở sheet[danhsach] đã có giới tính và dân tộc. link file: http://www.mediafire.com/view/?b57e4tdf03r6tpr
 
Bạn xem trong file đính kèm

Chọn môn học tại [A13] là có kết quả của ba dòng luôn thể.
 

File đính kèm

Upvote 0
Thêm môn thì làm thế nào
Khi đó, điểm thi môn kế tiếp sẽ được đưa vô ngay sau cột 'N' của trang 'DanhSach';

& tất nhiên cần thêm vô vùng validation của ô [A13] của trang 'ThongKe'

Chúc thành công!
--=0 }}}}} }}}}} --=0
 
Upvote 0
Khi đó, điểm thi môn kế tiếp sẽ được đưa vô ngay sau cột 'N' của trang 'DanhSach';

& tất nhiên cần thêm vô vùng validation của ô [A13] của trang 'ThongKe'

Chúc thành công!
--=0 }}}}} }}}}} --=0
bạn ơi cjo mình hỏi thêm vấn đề này nhé: bảng mà bạn gửi thì ok rồi, nhưng hôm trước mình quên là trong sheet[danhsach] cột họ tên mình chỉ để một cột, hôm nay mình mình tách ra cột Họ và cột tên riêng thì khi sang sheet[Inbangdiem] nhấn vào nút Print thì báo lỗi, và sheet[thongke] cung không thống kê được. bạn sửa hộ code 2 sheet đó giúp mình được không? nếu được bạn sa]r luông trên file thống kê mà bạn đã gửi hôm trước, mình cảm ơn.
 
Upvote 0
. . . . Nhưng hôm trước mình quên là (2) trong sheet[danhsach] cột họ tên mình chỉ để một cột, hôm nay mình mình tách ra cột Họ và cột tên riêng thì khi sang sheet[Inbangdiem] nhấn vào nút Print thì báo lỗi,
(1) và sheet[thongke] cung không thống kê được. bạn sửa hộ code 2 sheet đó giúp mình được không? nếu được bạn sa]r luông trên file thống kê mà bạn đã gửi hôm trước, mình cảm ơn.

(1) Cách mình làm là dùng DCOUNTA() với sự trợ giúp VBA;
Việc này đòi hỏi có vùng chuẩn để lọc; Vùng chuẩn mình lấy (trưng dụng) là vùng từ 'AA1:AG7' trong trang tính 'DanhSach'
Quan trọng ở đây là luôn lúc nào [AA1] chứa chuỗi 'Nu'[/B][/i]

Nên khi bạn thêm cột [D], thì fải xóa đi 1 cột trước cột [AA] này; (Nếu thêm 2 cột cho 2 môn thi thì lại fải xóa tiếp 2 cột trước nó. . .)

Bạn lưu í nguyên lí này để vận hành CSDL của bạn mai sau, nếu còn xài fương cách thống kê của mình

(2) Khi đọc bài của bạn & chuyển sang kích hoạt trang 'In..." thì báo lỗi. Việc báo lỗi này diễn ra khi mình chưa thêm gì cả vô CSDL.
(Điều đó có nghĩa là đã có lỗi trước đó khi kích hoạt trang tính, nhưng mình chưa kích hoạt lần nào cho đến khi đọc bài của bạn.)
Còn giờ thì mình đọc mã code đó cũng đã hết hơi rồi, chứ chưa nói chuyện sửa cho bạn;
Nếu code này của người khác viết cho bạn thì bạn nhắn đích danh người đó sửa cho là tiện nhất, theo mình.

& khi đó, bạn nên đưa đoạn code đó lên BOX lập trình để nhờ mọi người có khả năng diễn dịch cho bạn hiểu sơ về nó.
Tôi nói hiểu sơ, vì chỉ để nhằm mục đích vận hành CSDL không bị vướng hay sai như bây giờ;

(3) Theo mình thấy trong các mã chương trình, mỗi lần mở/kích hoat các trang tính "In. . " thì macro làm lại các ô Validation; Mình đang cho là việc này không cần thiết. Việc này có thể cần thiết chỉ mỗi năm 1 lần duy nhất, một khi danh tính các lớp của năm học hiện thời khác với năm học trước hay danh sách tên gọi fòng thi năm học mới có 1 vài biến đổi.

Để làm việc này, bạn sẽ fải chỉ có kiến thức tối thiểu về Validation mà thôi, không cần đến dao mổ VBA

(4) Bạn đang thiếu 1 trang tính, mình cho là vậy; Đó là trang tính fụ trợ cho CSDL
Trên trang tính này chứa danh sách lớp trong năm học (cũng là để làm nguồn cho Validation sanh sách lớp ([M2]);
Cũng trên trang này chứa danh sách các môn học trong học kỳ;
Cũng trên nó, có thể cho chưa danh sách fòng thi;
Một khi như vậy, nếu có khâu nào đó trong nhà trường có biến động, ta chỉ việc đến trang fụ trợ này & sửa 1 chổ mà thôi

(5) Hỏi thêm về số báo danh: Số báo danh của HS mỗi năm có 1 khác nhau hay không? Nếu số báo danh là mã duy nhất của cả đời học sinh, thì không nói làm gì; Bằng không thì mỗi học sinh nên có mã HS duy nhất cho toàn bộ các năm học của em đó.
(Điều này nếu cần ta sẽ thảo luận tiếp sau)

Thân ái & chúc vui!
 

File đính kèm

Upvote 0
Bác cho em hỏi sao em thêm

Em hiểu rồi cảm ơn bán nhiều
(1) Cách mình làm là dùng DCOUNTA() với sự trợ giúp VBA;
Việc này đòi hỏi có vùng chuẩn để lọc; Vùng chuẩn mình lấy (trưng dụng) là vùng từ 'AA1:AG7' trong trang tính 'DanhSach'
Quan trọng ở đây là luôn lúc nào [AA1] chứa chuỗi 'Nu'[/B][/i]

Nên khi bạn thêm cột [D], thì fải xóa đi 1 cột trước cột [AA] này; (Nếu thêm 2 cột cho 2 môn thi thì lại fải xóa tiếp 2 cột trước nó. . .)

Bạn lưu í nguyên lí này để vận hành CSDL của bạn mai sau, nếu còn xài fương cách thống kê của mình

(2) Khi đọc bài của bạn & chuyển sang kích hoạt trang 'In..." thì báo lỗi. Việc báo lỗi này diễn ra khi mình chưa thêm gì cả vô CSDL.
(Điều đó có nghĩa là đã có lỗi trước đó khi kích hoạt trang tính, nhưng mình chưa kích hoạt lần nào cho đến khi đọc bài của bạn.)
Còn giờ thì mình đọc mã code đó cũng đã hết hơi rồi, chứ chưa nói chuyện sửa cho bạn;
Nếu code này của người khác viết cho bạn thì bạn nhắn đích danh người đó sửa cho là tiện nhất, theo mình.

& khi đó, bạn nên đưa đoạn code đó lên BOX lập trình để nhờ mọi người có khả năng diễn dịch cho bạn hiểu sơ về nó.
Tôi nói hiểu sơ, vì chỉ để nhằm mục đích vận hành CSDL không bị vướng hay sai như bây giờ;

(3) Theo mình thấy trong các mã chương trình, mỗi lần mở/kích hoat các trang tính "In. . " thì macro làm lại các ô Validation; Mình đang cho là việc này không cần thiết. Việc này có thể cần thiết chỉ mỗi năm 1 lần duy nhất, một khi danh tính các lớp của năm học hiện thời khác với năm học trước hay danh sách tên gọi fòng thi năm học mới có 1 vài biến đổi.

Để làm việc này, bạn sẽ fải chỉ có kiến thức tối thiểu về Validation mà thôi, không cần đến dao mổ VBA

(4) Bạn đang thiếu 1 trang tính, mình cho là vậy; Đó là trang tính fụ trợ cho CSDL
Trên trang tính này chứa danh sách lớp trong năm học (cũng là để làm nguồn cho Validation sanh sách lớp ([M2]);
Cũng trên trang này chứa danh sách các môn học trong học kỳ;
Cũng trên nó, có thể cho chưa danh sách fòng thi;
Một khi như vậy, nếu có khâu nào đó trong nhà trường có biến động, ta chỉ việc đến trang fụ trợ này & sửa 1 chổ mà thôi

(5) Hỏi thêm về số báo danh: Số báo danh của HS mỗi năm có 1 khác nhau hay không? Nếu số báo danh là mã duy nhất của cả đời học sinh, thì không nói làm gì; Bằng không thì mỗi học sinh nên có mã HS duy nhất cho toàn bộ các năm học của em đó.
(Điều này nếu cần ta sẽ thảo luận tiếp sau)

Thân ái & chúc vui!
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom