Giúp code tự động phân công ca trực. (1 người xem)

  • Thread starter Thread starter nst1984
  • Ngày gửi Ngày gửi
Liên hệ QC

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

nst1984

Thành viên chính thức
Tham gia
31/5/13
Bài viết
61
Được thích
18
Em muốn lập 1 bảng phân công trực ca theo tuần, em muốn nhờ các anh chị và các bạn hộ em đoạn code tự động lấy các thông tin từ sheet "LICH" sau đó điền vào sheet "PHANCONG-TRUC" với điều kiện:
+ Nếu ngày tháng bên sheet "LICH" thay đổi thì các thông tin về "Tên" và "ca trực" cũng tự động thay đổi theo.
 

File đính kèm

Lần chỉnh sửa cuối:
Em muốn lập 1 bảng phân công trực ca theo tuần, em muốn nhờ các anh chị và các bạn hộ em đoạn code tự động lấy các thông tin từ sheet "LICH" sau đó điền vào sheet "PHANCONG-TRUC" với điều kiện:
+ Nếu ngày tháng bên sheet "LICH" thay đổi thì các thông tin về "Tên" và "ca trực" cũng tự động thay đổi theo.

chào bạn,
bạn xem lại cách bố trí của sheet LICH, đúng ra thì ngày 15-8 phải nằm cùng 1 cột với ngày 12-8 chứ nhỉ.

'- - -
bạn tham khảo 1 cách trình bày của sheet LICH tại sheet1 xem sao ---> tất cả các thông tin Ngày, thứ, tên, ca đều rõ ràng -> rất thuận lợi cho việc lập công thức hoặc Macro.

Link: https://www.mediafire.com/?913iv1bsipepwi4
 
Lần chỉnh sửa cuối:
Upvote 0
chào bạn,
bạn xem lại cách bố trí của sheet LICH, đúng ra thì ngày 15-8 phải nằm cùng 1 cột với ngày 12-8 chứ nhỉ.

'- - -
bạn tham khảo 1 cách trình bày của sheet LICH tại sheet1 xem sao ---> tất cả các thông tin Ngày, thứ, tên, ca đều rõ ràng -> rất thuận lợi cho việc lập công thức hoặc Macro.
Cảm ơn bạn đã quan tâm. Mình tạo sheet LICH như vậy để nhập liệu cho dễ bạn ạ. Làm như bạn thì dòng chứa dữ liệu hơi dài. Liệu cách sắp xếp như của mình có viết code được không bạn. Nếu như mà khó quá thì bạn có thể giúp mình đoạn code theo cách bố trí của bạn cũng được. Cảm ơn bạn!
 
Upvote 0
Cảm ơn bạn đã quan tâm. Mình tạo sheet LICH như vậy để nhập liệu cho dễ bạn ạ. Làm như bạn thì dòng chứa dữ liệu hơi dài. Liệu cách sắp xếp như của mình có viết code được không bạn. Nếu như mà khó quá thì bạn có thể giúp mình đoạn code theo cách bố trí của bạn cũng được. Cảm ơn bạn!

bạn bố trí thế nào cũng được bạn ah, miễn sao phải theo 1 quy luật nào đó.
 
Upvote 0
Em muốn lập 1 bảng phân công trực ca theo tuần, em muốn nhờ các anh chị và các bạn hộ em đoạn code tự động lấy các thông tin từ sheet "LICH" sau đó điền vào sheet "PHANCONG-TRUC" với điều kiện:
+ Nếu ngày tháng bên sheet "LICH" thay đổi thì các thông tin về "Tên" và "ca trực" cũng tự động thay đổi theo.

cho em hỏi sheet Lịch làm thế nào để chỉ vào ô ở cột Tên thì nó xổ ra danh sách tên ng trực vậy?
 
Upvote 0
chào bạn,
bạn xem lại cách bố trí của sheet LICH, đúng ra thì ngày 15-8 phải nằm cùng 1 cột với ngày 12-8 chứ nhỉ.

'- - -
bạn tham khảo 1 cách trình bày của sheet LICH tại sheet1 xem sao ---> tất cả các thông tin Ngày, thứ, tên, ca đều rõ ràng -> rất thuận lợi cho việc lập công thức hoặc Macro.
Tạo ngày tháng trên cùng 1 dòng cũng được mà anh. Tuy nhiên chủ topic đã meger cell nên mình nghĩ cần chèn thêm dòng phụ để ghi ngày tháng vào 1 ô thôi sau đó ẩn dòng phụ đi.
 
Upvote 0
Tạo ngày tháng trên cùng 1 dòng cũng được mà anh. Tuy nhiên chủ topic đã meger cell nên mình nghĩ cần chèn thêm dòng phụ để ghi ngày tháng vào 1 ô thôi sau đó ẩn dòng phụ đi.

chưa hiểu ý chuot lắm --=0, chuot ko thấy tại sheet LICH ô C2=12-8 còn E2 =15-8, ban đầu tưởng tác giả viết nhầm nhưng qua sheet PHANCONG-TRUC cột ghi chú thì mới thấy.
(bài này mà dùng mảng kết nối vào sao thấy chua quá :-=)
tuy nhiên bạn kia hiểu được code của mình viết ở file dưới thì có thể áp dụng cho sheet LICH.

'----
@nst1984
bạn mở file, cho chạy Macro.
vào Sheet1 điền thêm 1 ít thông tin, qua lại sheet PHANCONG-TRUC bấm nút lọc để xem kết quả.

Link: https://www.mediafire.com/?jw3iq35ceib6l6q
 
Lần chỉnh sửa cuối:
Upvote 0
chưa hiểu ý chuot lắm --=0, chuot ko thấy tại sheet LICH ô C2=12-8 còn E2 =15-8, ban đầu tưởng tác giả viết nhầm nhưng qua sheet PHANCONG-TRUC cột ghi chú thì mới thấy.
(bài này mà dùng mảng kết nối vào sao thấy chua quá :-=)
tuy nhiên bạn kia hiểu được code của mình viết ở file dưới thì có thể áp dụng cho sheet LICH.

'----
@nst1984
bạn mở file, cho chạy Macro.
vào Sheet1 điền thêm 1 ít thông tin, qua lại sheet PHANCONG-TRUC bấm nút lọc để xem kết quả.
Trước tiên mình cảm ơn phucbugis rất nhiều. Mình đã test File của bạn, và mình xin có ý kiến như sau:
+ Thứ nhất là File của bạn cho kết quả hoàn toàn chính xác tuy nhiên nếu thiết kế "lịch" phân công như sheet 1 của bạn thì mất thời gian quá. Cứ sau 1 ngày lại phải nhập lịch cho ngày hôm sau và ngày nào cũng phải nhập lịc, trong khi mình phải làm công việc này cả năm.
+ Ý của mình như sau, mong các bạn quan tâm nghiên cứu và giúp đỡ với.
Ý mình muốn là:
Mình phụ trách việc phân công ca trực và phải lập lịch theo từng tuần, nếu không có sự thay đổi đột xuất thì các tuần sau vẫn không thay đổi. và mình phải lập cho tất cả các tuần trong năm.
Nếu vì một lí do nào đó có sự thay đổi về nhân sự hoặc phân công nào đó, hoặc lí do cá nhân nào đó... thì kể từ ngày có sự thay đổi đó các tuần sau sẽ thay đổi theo ngày này và cứ nếu có sự thay đổi nữa thì lại tiếp tục như vậy.
Mong các bạn giúp đỡ mình!
 
Lần chỉnh sửa cuối:
Upvote 0
chưa hiểu ý chuot lắm --=0, chuot ko thấy tại sheet LICH ô C2=12-8 còn E2 =15-8, ban đầu tưởng tác giả viết nhầm nhưng qua sheet PHANCONG-TRUC cột ghi chú thì mới thấy.
Ý của em là tạo thêm 1 cột phụ chứa ngày tháng trong các ô chưa bị Merger, anh xem File đính kèm và mình viết code theo cột phụ này sẽ dễ hơn. Anh có thể xem File đính kèm của em.
Em đang định dùng mảng nhưng thấy rối rắm quá, nghĩ mãi không ra thuật toán khi có sự thay đổi ngày tháng. Hic!
 
Upvote 0
Ý của em là tạo thêm 1 cột phụ chứa ngày tháng trong các ô chưa bị Merger, anh xem File đính kèm và mình viết code theo cột phụ này sẽ dễ hơn. Anh có thể xem File đính kèm của em.
Em đang định dùng mảng nhưng thấy rối rắm quá, nghĩ mãi không ra thuật toán khi có sự thay đổi ngày tháng. Hic!

chuot xem bài này Xin hỏi cách chuyển dữ liệu từ Data vào Form mẫu để in ---> ko cần phải dùng row phụ :-=
 
Upvote 0
theo mình hiểu, thì chuot dùng row phụ đó để xác định cột bên dưới ---> ko cần thiết.
Ví dụ khi mình dò tìm ngày 12-8 thì kết quả cột đầu tiên sẽ là C (cột Tên) (cho dù đang Merge) và cột Ca thì mình chỉ cần +1 là đủ.
 
Upvote 0
theo mình hiểu, thì chuot dùng row phụ đó để xác định cột bên dưới ---> ko cần thiết.
Ví dụ khi mình dò tìm ngày 12-8 thì kết quả cột đầu tiên sẽ là C (cột Tên) (cho dù đang Merge) và cột Ca thì mình chỉ cần +1 là đủ.
Vâng ý của em chính xác là vậy đó. Em loay hoay mãi vẫn chưa làm được. Khi có sự thay đổi ngày tháng thì Tên và Ca vẫn chưa thay đổi. Chắc điều kiện ngày của em bị sai. Em định dùng hàm, anh có ý kiến gì góp ý cho em với.
 
Lần chỉnh sửa cuối:
Upvote 0
Vâng ý của em chính xác là vậy đó. Em loay hoay mãi vẫn chưa làm được. Khi có sự thay đổi ngày tháng thì Tên và Ca vẫn chưa thay đổi. Chắc điều kiện ngày của em bị sai. Em định dùng hàm, anh có ý kiến gì góp ý cho em với.

chuot xem file dưới,
yêu cầu của tác giả là như thế đó, nếu viết rõ ngày cho từng row thì có thể dùng hàm được ko nhé --=0

Link: https://www.mediafire.com/?84djc24hmwmh83o
 
Lần chỉnh sửa cuối:
Upvote 0
chuot xem lại, mình điền thử ngày 17-8 thì kết quả ko có ra
Bạn phucbugis xem lại đi ngày 17/08/2013 nó vào thứ 7 mà tức là từ ngày 17/08/2013 nó trở đi nó mới bắt đầu có sự thay đổi và sẽ theo thời khóa biểu của ngày 15/08/2013. Bạn xem tuần 2-ngày thứ 4 sẽ rõ.
 
Lần chỉnh sửa cuối:
Upvote 0
Em dùng hàm "ten" và "ca". Anh xem thử ạ!}}}}}
Code của bạn chuột đúng ý của mình rồi. Tuy nhiên khi mình thử với dữ liệu khoảng 50 tuần thì thấy file chạy rất chậm. Mong bạn chuot0106 và các bạn trên GPE tăng tốc code với ạ. Mỗi lần có sự thay đổi ở sheet "LICH" là code chạy rất chậm.
 
Upvote 0
chuot xem lại, mình điền thử ngày 17-8 thì kết quả ko có ra
Cảm ơn bạn phucbugis đã quan tâm nhưng chắc bạn hiểu chưa hiểu ý của mình. Ý của mình là ở mỗi 1 cột mình có ghi ngày tháng bắt đầu có sự thay đổi và khi có sự thay đổi đó thì những tuần sau sẽ thay đổi theo tuần có sự thay đổi gần nhất đó. Mong bạn giúp mình tăng tốc code, code của bạn chuot0106 cho kết quả đúng nhưng chạy chậm quá!
 
Upvote 0
Cảm ơn bạn phucbugis đã quan tâm nhưng chắc bạn hiểu chưa hiểu ý của mình. Ý của mình là ở mỗi 1 cột mình có ghi ngày tháng bắt đầu có sự thay đổi và khi có sự thay đổi đó thì những tuần sau sẽ thay đổi theo tuần có sự thay đổi gần nhất đó. Mong bạn giúp mình tăng tốc code, code của bạn chuot0106 cho kết quả đúng nhưng chạy chậm quá!

mình thấy tốc độ vẫn bình thường mà, bạn gửi file có 50 tuần lên mình xem thử có bị vậy ko?
 
Upvote 0
Code của bạn chuột đúng ý của mình rồi. Tuy nhiên khi mình thử với dữ liệu khoảng 50 tuần thì thấy file chạy rất chậm. Mong bạn chuot0106 và các bạn trên GPE tăng tốc code với ạ. Mỗi lần có sự thay đổi ở sheet "LICH" là code chạy rất chậm.
Bạn hãy đóng cửa sổ VBA trước khi chạy code nhé, sẽ nhanh hơn đấy! Còn nếu vẫn chậm, mình nghĩ do mình dùng vòng lặp for next, nếu dùng For each mình nghĩ chắc tốc độ sẽ nhanh hơn nhiều. Cái này mình đang suy nghĩ vẫn chưa ra.@$@!^%
 
Upvote 0
Em muốn lập 1 bảng phân công trực ca theo tuần, em muốn nhờ các anh chị và các bạn hộ em đoạn code tự động lấy các thông tin từ sheet "LICH" sau đó điền vào sheet "PHANCONG-TRUC" với điều kiện:
+ Nếu ngày tháng bên sheet "LICH" thay đổi thì các thông tin về "Tên" và "ca trực" cũng tự động thay đổi theo.

Bạn thử với file sau
 

File đính kèm

Upvote 0
Cảm ơn bạn đã giúp đỡ, tuy nhiên ở đây không phải là sau mỗi 1 tuần mới có sự thay đổi mà nhiều khi ngay trong tuần đã có sự thay đổi rồi bạn ạ. Chính vì vậy làm theo kiểu chọn từng tuần như bạn sẽ không ra kết quả chính xác bạn ạ. Bạn có thể xem thêm bài của bạn chuot0106, bài đó đúng yêu cầu của mình bạn ạ.
 
Upvote 0

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

Back
Top Bottom