Chia sẻ và cải tiến bảng phân công giám thị - 2021

Euler

Administrator
Thành viên BQT
Thời gian Euler bỏ ra để giúp bác trước đây vào khoảng 40h. Nếu quy ra thóc cũng phải là tiền triệu rồi, nên Euler sẽ không giúp nữa.
Vì chủ topic vừa rồi ủng hộ diễn đàn cho nên các admin sẽ giúp chủ topic, nhưng tốc độ hỗ trợ sẽ chậm, có lẽ rảnh lúc nào thì admin code lúc đấy :D
 

vbano1

SMod
Thành viên BQT
Form CS9 của bạn chưa tốt lắm, tôi chỉnh sửa lại một chút để thuận tiện cho quá trình code.
Bởi ý tưởng thiết kế chưa tốt lắm, nên e rằng nếu sau này chỉnh sửa lại form CS9 sẽ làm khó cho người sửa code sau này.
Bạn hãy kiểm tra CS9 đã hoạt động đúng ý muốn của bạn hay chưa.
Ngoài ra, trong quá trình code CS9 không biết có làm ảnh hưởng gì tới các chức năng đã có trước đây hay không, nên cũng phiền bạn kiểm tra lại các chức năng thông thường khác của Tool.
2- khi có kết quả ở sheet " bảng phân công" thì mình muốn chọn "môn" ở B1 và bấm "cập nhật " thì kết quả đó để đưa GT1 vào mẫu "cs9".
Link:
 

huutinh85

Yêu THVBA nhất
Form CS9 của bạn chưa tốt lắm, tôi chỉnh sửa lại một chút để thuận tiện cho quá trình code.
Bởi ý tưởng thiết kế chưa tốt lắm, nên e rằng nếu sau này chỉnh sửa lại form CS9 sẽ làm khó cho người sửa code sau này.
Bạn hãy kiểm tra CS9 đã hoạt động đúng ý muốn của bạn hay chưa.
Ngoài ra, trong quá trình code CS9 không biết có làm ảnh hưởng gì tới các chức năng đã có trước đây hay không, nên cũng phiền bạn kiểm tra lại các chức năng thông thường khác của Tool.

Link:
dạ cảm ơn bác nhưng khi test chọn môn thì kết quả được cập nhật nhưng sau đó có lỗi ntn, để chạy được tiếp thì lại fai reset code, bác test lại giùm
1-ThisWorkbook.Sheets(sh2).Sort.SortFields.Add2 Key:=Range(Cells(r_title_tem + 1, cpt), Cells(r_title_tem + k, cpt)) _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
2-em hiểu ý của bác, nhưng ý em nếu số phòng thay đổi trong sheet " tự học vba" giả sử 24p ( từ 121 đến 144). Khi đó tại sheet CS9, e sẽ sắp xếp các các phòng theo thứ tự tăng dần trong cột D từ P121 đến P144(làm thủ công) rồi sau đó chọn môn và cập nhật thid sẽ gán tên GT1 vào tương ứng. Còn như bác chỉnh lại thì phòng nó nhảy theo thứ tự tại bảng phân công. Nếu cố đinh theo thứ tự thì tốt, còn không thì sau khi cạp nhật em sẽ sort tay theo thứ tự rồi mới in cũng được
3 trên cơ sở này thì chắc CS15 có tương tụ không bác nhỉ
em cảm ơn bác nhiều ạ!
 

vbano1

SMod
Thành viên BQT
Còn như bác chỉnh lại thì phòng nó nhảy theo thứ tự tại bảng phân công.
Nên dẫn chứng bằng hình ảnh. Hiện tại kết quả chạy trên máy tôi thì không như vậy.
Tại sheet BangPhanCong đang bla bla như sau:
Bạn cần đăng nhập để thấy hình ảnh

Kết quả tại CS9, phòng được sắp xếp theo thứ tự tăng dần như sau:
Bạn cần đăng nhập để thấy hình ảnh


Để tránh mất thời gian của người khác, hãy chỉ ra bằng hình ảnh kết quả mong muốn là như thế nào.
Nếu bạn không biết cách upload ảnh lên diễn đàn, bạn vui lòng tham khảo topic sau: .
 

tuhocvba

Administrator
Thành viên BQT
sau đó có lỗi ntn
-Viết một bài viết thì đầu dòng nên viết hoa, tránh viết tắt. Tôi không hiểu giáo viên các bạn sao lại trình bày không đầu không đuôi như vậy. Hãy cải thiện.
-Lỗi là gì, hãy chỉ ra bằng hình ảnh.
Để khắc phục lỗi, hãy cho thêm thông tin phiên bản office, phiên bản windows Ví dụ: Office 2016 64bit, win 10 64bit.
 

giaiphapvba

Administrator
Thành viên BQT
Mô tả của chủ topic khá mơ hồ, tôi lờ mờ đoán là đang gặp lỗi với lệnh sort. Lệnh này tùy từng phiên bản office mà lệnh có khác nhau, tôi thử sửa code theo hướng đơn giản hơn. Bạn test thử xem. Chú ý nếu có lỗi thì hãy cung cấp hình ảnh trực quan.
Link:
 

Euler

Administrator
Thành viên BQT
2- khi có kết quả ở sheet " bảng phân công" thì mình muốn chọn "môn" ở A1 và bấm "cập nhật " thì kết quả đó để đưa CBCT1 vào mẫu "cs9".
3- ở sheet "cs15 " khi chọn "môn" thi và "cập nhật " thì kết quả đó để đưa CBCT1, CBCT2 vào mẫu "cs15"
Tại sao lại phải tổng hợp từ sheet Bảng Phân Công? Bởi vì cái sheet này bla bla hổ lốn, tổng hợp thông tin từ đây quả là một cực hình cho người code.
Bạn cần đăng nhập để thấy hình ảnh

Đến cuối cùng người ta vẫn không hiểu cái sheet Bảng Phân Công này lập ra để làm cái quái gì. Ngày xưa bạn yêu cầu làm ra cái sheet này, bây giờ có vẻ như chả dùng gì tới?
Nếu để tổng hợp thông tin thì sheet tuhocvba.net mới là sheet dễ tổng hợp nhất.
Ví dụ như ở yêu cầu sheet CS9, việc tổng hợp từ bảng phân công không có vấn đề gì lớn lắm. Nhưng cái sheet bảng phân công thì phòng thi tán loạn cả ra, do đó lại phải mất công sắp xếp lại theo số phòng tăng dần.
Trong khi đó nếu tổng hợp từ sheet tuhocvba.net thì mọi việc đơn giản hơn nhiều.
Bạn cần đăng nhập để thấy hình ảnh

Ta chỉ cần chạy từ trái qua phải là lấy được số phòng theo chiếu tăng dần, chạy từ trên xuống tìm thấy GT1 và GT2 thì bê tên giám thị ra.
Chẳng mất công sắp xếp gì.

Lại nói tới sheet CS15.
trên cơ sở này thì chắc CS15 có tương tụ không bác nhỉ
Như đã nói, không hề tương tự. Nếu như ở sheet CS9 thì người code vẫn còn dễ thở, chứ sang tới tổng hợp CS15 mà bê dữ liệu từ Bảng Phân Công thì không còn là chạy từ trên xuống dưới nữa. Vì tổng hợp được GT1 thì lại phải tổng hợp sang GT2, mà phòng thi thì bla bla. Nếu như tổng hợp từ sheet tuhocvba.net thì đơn giản dùng for next chạy ngang từ trái qua phải, chạy dọc từ trên xuống dưới là xong. Còn tổng hợp từ bảng phân công, có lẽ phải dùng tới Dictionary, trong đó key là phòng thi.

Nói tóm lại, thà nói ra là mình muốn cái gì, rồi người code miễn sao ra cái output như mong muốn. Chứ cái ý tưởng tổng hợp từ bảng phân công quả là lợi bất cập hại!

4 - Tại sheet "cs14" khi chọn cập nhật sẽ lấy dữ liệu sheet " bangphancong" đưa vào các môn tương ứng theo mẫu đã minh họa.
chân thành cảm ơn các bác đỡ hỗ trợ. Đây là tiện ích chung...
-Form này của bạn chỉ là ý tưởng, người code phải tính toán khi số môn thay đổi thì form co giãn theo mới được.
Mã:
Range("J10:J12").EntireColumn.Insert
-Bạn cứ nói là tiện ích chung, nhưng người ta thì chỉ quan tâm bạn là người yêu cầu code. Còn anh em trên diễn đàn thì không có nhu cầu sử dụng.
Anh em code thì bỏ công sức ra, do đó người yêu cầu cũng nên bày tỏ tấm lòng của mình ra ^^!
 

huutinh85

Yêu THVBA nhất
Mô tả của chủ topic khá mơ hồ, tôi lờ mờ đoán là đang gặp lỗi với lệnh sort. Lệnh này tùy từng phiên bản office mà lệnh có khác nhau, tôi thử sửa code theo hướng đơn giản hơn. Bạn test thử xem. Chú ý nếu có lỗi thì hãy cung cấp hình ảnh trực quan.
Link:
Bạn cần đăng nhập để thấy hình ảnh

Bạn cần đăng nhập để thấy hình ảnh


Bạn cần đăng nhập để thấy hình ảnh

Đây là lỗi trên phiên bản cũ, phiên bản mới bác sửa lại code đã chạy ok rồi, cảm ơn bác. Em đang dùng office 2016 win 10 pro 64 bit
 
Sửa lần cuối:

giaiphapvba

Administrator
Thành viên BQT
Nó báo là office của bạn @huutinh85 không hỗ trợ lệnh này. Nhưng tôi test code 0515 của vbano1 trên office 2016 64bit, win 10 không thấy bị lỗi. Chắc office của bạn bị sao rồi, office lậu ah?
Thôi, thế cứ dùng bản code mà tôi sửa, dòng code đơn giản hơn nên sẽ bớt rắc rối hơn ;)
 

huutinh85

Yêu THVBA nhất
Tại sao lại phải tổng hợp từ sheet Bảng Phân Công? Bởi vì cái sheet này bla bla hổ lốn, tổng hợp thông tin từ đây quả là một cực hình cho người code.
Bạn cần đăng nhập để thấy hình ảnh

Đến cuối cùng người ta vẫn không hiểu cái sheet Bảng Phân Công này lập ra để làm cái quái gì. Ngày xưa bạn yêu cầu làm ra cái sheet này, bây giờ có vẻ như chả dùng gì tới?
Nếu để tổng hợp thông tin thì sheet tuhocvba.net mới là sheet dễ tổng hợp nhất.
Ví dụ như ở yêu cầu sheet CS9, việc tổng hợp từ bảng phân công không có vấn đề gì lớn lắm. Nhưng cái sheet bảng phân công thì phòng thi tán loạn cả ra, do đó lại phải mất công sắp xếp lại theo số phòng tăng dần.
Trong khi đó nếu tổng hợp từ sheet tuhocvba.net thì mọi việc đơn giản hơn nhiều.
Bạn cần đăng nhập để thấy hình ảnh

Ta chỉ cần chạy từ trái qua phải là lấy được số phòng theo chiếu tăng dần, chạy từ trên xuống tìm thấy GT1 và GT2 thì bê tên giám thị ra.
Chẳng mất công sắp xếp gì.

Lại nói tới sheet CS15.

Như đã nói, không hề tương tự. Nếu như ở sheet CS9 thì người code vẫn còn dễ thở, chứ sang tới tổng hợp CS15 mà bê dữ liệu từ Bảng Phân Công thì không còn là chạy từ trên xuống dưới nữa. Vì tổng hợp được GT1 thì lại phải tổng hợp sang GT2, mà phòng thi thì bla bla. Nếu như tổng hợp từ sheet tuhocvba.net thì đơn giản dùng for next chạy ngang từ trái qua phải, chạy dọc từ trên xuống dưới là xong. Còn tổng hợp từ bảng phân công, có lẽ phải dùng tới Dictionary, trong đó key là phòng thi.

Nói tóm lại, thà nói ra là mình muốn cái gì, rồi người code miễn sao ra cái output như mong muốn. Chứ cái ý tưởng tổng hợp từ bảng phân công quả là lợi bất cập hại!


-Form này của bạn chỉ là ý tưởng, người code phải tính toán khi số môn thay đổi thì form co giãn theo mới được.
Mã:
Range("J10:J12").EntireColumn.Insert
-Bạn cứ nói là tiện ích chung, nhưng người ta thì chỉ quan tâm bạn là người yêu cầu code. Còn anh em trên diễn đàn thì không có nhu cầu sử dụng.
Anh em code thì bỏ công sức ra, do đó người yêu cầu cũng nên bày tỏ tấm lòng của mình ra ^^!
Dạ cảm ơn bác đã góp ý tận tình. Em xin trình bày mục đích bác hiểu rõ hơn ạ
1- Việc phân công GT này diễn ra trực tiếp,tại phòng hội đồng thi và mọi người phải được thấy công khai khi phân công, và chỉ phân công trước môn thi 30 phút. Trước đây các hội đồng thi thường bốc thăm thủ công, việc này tương đối đơn giản ở môn đầu tiên, vì khi đó chưa trùng phòng,trùng đơn vị, trùng cặp GT. Nhưng đến môn thứ 2 bắt đầu phức tạp, nhiều hội đồng mất rất nhiều thời gian làm việc này, vì thực tế một hội đồng thi có khoảng 40 phòng thi thì không ai nhớ hết được bác ạ . Sau phân công cần ghi lại các thông tin này tên giấy A0, dán để lưu trữ và đối chiếu theo dõi trong thời gian làm bài của học sinh. Đến lượt thi môn khác thì GT lại tập trung tại phòng hội đồng để chứng kiến phân công môn thứ 2 và làm nhiệm vụ. Vì vậy bảng phân công có tác dụng theo dõi, đối chiếu xem có trùng lặp... suốt kì thi
2- Sau khi có bảng phân công thì phải ghi tên và nhiệm vụ cụ thể từng GT1 vào mẫu CS9 ( dựa trên bảng phân công ) để giao đề thi cho GT1.
Bạn cần đăng nhập để thấy hình ảnh

3- Sau khi HS làm bài xong 2 GT thi bài và mang nộp lại tại phòng hội đồng, thì GT1, và GT2 phải kí xác nhận số lượng bài làm, hs vắng .... vào mẫu CS15.
Bạn cần đăng nhập để thấy hình ảnh

4- Sau khi kết thúc kì thi thì phải lập danh sách tổng hợp nhiệm vụ từng môn, từng GT làm gì .. theo mẫu CS14.( ai không được phân công GT1, GT2, thì mặc định là cán bộ giám sát (CBGS)
Bạn cần đăng nhập để thấy hình ảnh

5- Toàn bộ các mẫu CS9 là A4 dọc, CS15 là A4 ngang, , CS14 là A4 dọc , này của bộ GD quy định trong các kì thi bác ạ.
6 - Về vẫn đề lấy dữ diệu ở đâu để tổng hợp các mẫu thì có lẽ chuyên môn code của các bác sẽ có giải pháp tối ưu nhất, do em cũng chưa hiểu nhiều về phương thức code nên bằng trực quan thì em thấy lấy dữ liệu bên " bảng phân công" sẽ dễ hơn. Vì vậy các bác muốn lấy sheet nào thì tùy thuộc vào các bác thôi ạ.
7- Một hội đồng thi có thể lên đến 40- 50 phòng thi, mỗi lần thi khoảng 6 môn bác ạ
8- Về nhu cầu file này thì rất nhiều người cần dùng đó bác ạ, 1 hội đồng thi THPTQG, tuyển sinh đầu cấp, thi HSG... cần phải làm việc này, không chỉ áp dụng trong kì thi mà tại mỗi đơn vị đề áp dụng được. Nhiều người không rành máy tính nên mỗi lần làm thư kí hội đồng thi là chủ tịch hội đồng thi và thư kí mất rất nhiều thời gian về việc này. Có những hội đồng không bốc thăm được đành sắp xếp theo kiểu áp đặt sai quy định. Em có lên các diễn đàn khác có một số anh chị em có thắc mắc và em có chia sẻ ứng dụng cho một số bạn. Nói cho đúng nhiều người muốn có ứng dụng để đỡ vất vả trong mỗi kì thi, nhưng họ cứ nghĩ phải là phần mềm và họ cũng không biết phải trình bày ý tưởng của mình như thế nào nên họ ngại đó bác ạ. Em mạo muội lên đây để chia sẻ ý tưởng của em để các bác có thể hỗ trợ. Khi được các bác giúp đỡ thì em cũng chia sẻ free cho anh chị em hay làm công tác này. Nên nếu mà chia sẻ để lây phí, thì em cũng không dám, vì đó là công sức của các bác trên diễn đàn hỗ trợ. Nên có nói với các bạn ấy muốn tìm hiểu thêm thì lên " tuhocvba,net" tìm hiểm thêm.
Chân thành cảm ơn các anh chị đã giúp đỡ, giúp đỡ được bao nhiêu thì em xin cảm ơn. Trong quá trình sử dụng thì nảy sinh nhiều yêu cầu nên nhiều khi muốn hoàn thiện hơn để ứng dụng trong công việc tốt hơn. Vì vậy nên có thể sẽ làm phiền đến các bác.
Chúc các bác luôn vui vẻ ,mạnh khỏe để phát triển thêm trên diễn đàn!
 

huutinh85

Yêu THVBA nhất
Nó báo là office của bạn @huutinh85 không hỗ trợ lệnh này. Nhưng tôi test code 0515 của vbano1 trên office 2016 64bit, win 10 không thấy bị lỗi. Chắc office của bạn bị sao rồi, office lậu ah?
Thôi, thế cứ dùng bản code mà tôi sửa, dòng code đơn giản hơn nên sẽ bớt rắc rối hơn ;)
E mới cài lại máy ghost nguyên lại 1 bộ , nên có thể office này có vấn đề, cảm ơn bác nhiều ạ!
 

Euler

Administrator
Thành viên BQT
Vãi cả linh hồn rồi. Sao không nói sớm ngay từ đầu như #30.
Tổng hợp từ sheet tuhocvba.net khác hoàn toàn với tổng hợp từ sheet Bảng Phân Công. Code sẽ gọn đi rất nhiều, và khoa học hơn. Anh chị em nhiều khi cứ thích phán thay hướng đi cho người code. Cho nên tôi nói nhiều lần với mọi người rồi, cứ nói toẹt cái mình muốn ra, rồi sau đó giữa người code và người yêu cầu có sự trao đổi qua lại, thống nhất hướng giải quyết thì hay hơn. Cách làm việc này sẽ giảm thiểu thời gian lãng phí cho người code, đưa ra kết quả chính xác mà người yêu cầu mong muốn.

Về việc tool, công sức sao lại nói là miễn phí. Anh em trên diễn đàn cũng phải ăn cơm uống nước mới có sức mà code chứ. Bạn cần code, anh em code, thì hai bên có sự cảm ơn qua lại lẫn nhau mới lâu bền.
Còn việc bạn cho ai code, đó là quyền của bạn. Nếu như có thỏa thuận rõ ràng, bạn cũng có thể yêu cầu người code chỉ gửi code cho bạn, mà không công khai link download trên forum.

Phải nói như vậy, vì tool mà bạn mong muốn, nó là cả một khối lượng công việc khổng lồ, từ khi bắt đầu cho tới giờ, đếm xem đã bao nhiêu dòng code được gõ rồi. Đấy là chưa kể thời gian xác nhận qua lại các kiểu.
Đối với các yêu cầu trợ giúp nhỏ thì không nói làm gì.

Ngay cả diễn đàn X, tôi cũng chưa thấy có sự hỗ trợ nào hoành tráng như thế này!
 

huutinh85

Yêu THVBA nhất
Vãi cả linh hồn rồi. Sao không nói sớm ngay từ đầu như #30.
Tổng hợp từ sheet tuhocvba.net khác hoàn toàn với tổng hợp từ sheet Bảng Phân Công. Code sẽ gọn đi rất nhiều, và khoa học hơn. Anh chị em nhiều khi cứ thích phán thay hướng đi cho người code. Cho nên tôi nói nhiều lần với mọi người rồi, cứ nói toẹt cái mình muốn ra, rồi sau đó giữa người code và người yêu cầu có sự trao đổi qua lại, thống nhất hướng giải quyết thì hay hơn. Cách làm việc này sẽ giảm thiểu thời gian lãng phí cho người code, đưa ra kết quả chính xác mà người yêu cầu mong muốn.

Về việc tool, công sức sao lại nói là miễn phí. Anh em trên diễn đàn cũng phải ăn cơm uống nước mới có sức mà code chứ. Bạn cần code, anh em code, thì hai bên có sự cảm ơn qua lại lẫn nhau mới lâu bền.
Còn việc bạn cho ai code, đó là quyền của bạn. Nếu như có thỏa thuận rõ ràng, bạn cũng có thể yêu cầu người code chỉ gửi code cho bạn, mà không công khai link download trên forum.

Phải nói như vậy, vì tool mà bạn mong muốn, nó là cả một khối lượng công việc khổng lồ, từ khi bắt đầu cho tới giờ, đếm xem đã bao nhiêu dòng code được gõ rồi. Đấy là chưa kể thời gian xác nhận qua lại các kiểu.
Đối với các yêu cầu trợ giúp nhỏ thì không nói làm gì.

Ngay cả diễn đàn X, tôi cũng chưa thấy có sự hỗ trợ nào hoành tráng như thế này!
Dạ xin lỗi bác, vì ban đầu cũng chỉ là nhờ vả, mà bác biết đấy nhờ vả thì đâu dám đưa ra 1 dự án rồi nhờ. Như vậy thì chắc chả ai giúp nổi. Nêu mà nó là tiện ích bắt buộc em sẽ đặt hàng các bạn luôn, đưa đầu vào và yêu cầu đầu ra luôn. Nhưng đây là công việc kiêm nhiệm mõi lần thi THPT QG - 1 năm 1 lần nên mới nhờ vả từng tý đó bác ạ. Mong bác thông cảm.
 

Euler

Administrator
Thành viên BQT
Bạn làm việc được trả công mà. Đi coi thi cũng được trả tiền mà, đáng ra là tự tay sắp xếp, giờ máy nó xếp cho, ngồi chơi uống nước nhàn thế còn gì.

Về tần suất 1 năm sử dụng 1 lần, thì theo tôi, bạn nên chia sẻ với các giáo viên trường khác, bảo anh em mỗi người đóng góp nửa ngày công, thế là được một món kha khá rồi. Chứ chả lẽ giờ lại nói với nhau, 1 năm sử dụng có một lần thì làm tool làm gì, được vài năm quy chế lại thay đổi thì lại...
 

tuhocvba

Administrator
Thành viên BQT
6 môn thi, mỗi ngày thi 2 môn. Vậy tức là mỗi kỳ thi có khoảng 3 ngày thi. Giả thiết lương giáo viên 6 triệu, tức một ngày công đi làm là 200k. Vậy 3 ngày coi thi công là 600k.
Sử dụng Tool từ nay cho tới khi về hưu. Diễn đàn chỉ mong bạn lấy ngày công của năm ngoái, năm nay, và năm sau, tức là 3 năm * 600k = 1800k, là được.
Các năm sau đó coi như sử dụng free ha ^^.
 

vbano1

SMod
Thành viên BQT
Form CS15 đã xong, bạn check xem nhé.
Link:

Cái dòng tôi tô màu xanh ở dưới là để định dạng form. Nếu xóa hay di chuyển nó đi chỗ khác là sẽ lỗi, cho nên lưu ý.
Bạn chỉ được phép thao tác ở cells B1, và ấn nút Cập nhật thôi.
Bạn cần đăng nhập để thấy hình ảnh
 

huutinh85

Yêu THVBA nhất
Form CS15 đã xong, bạn check xem nhé.
Link:

Cái dòng tôi tô màu xanh ở dưới là để định dạng form. Nếu xóa hay di chuyển nó đi chỗ khác là sẽ lỗi, cho nên lưu ý.
Bạn chỉ được phép thao tác ở cells B1, và ấn nút Cập nhật thôi.
Bạn cần đăng nhập để thấy hình ảnh
Cảm ơn bác, em đã test thử và chạy ok. Cảm ơn bác nhiều ạ!
 
Top