Giúp đỡ tính tổng số tiết dạy của GV theo PCCM (1 người xem)

Liên hệ QC

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

buithinhvan77

Thành viên thường trực
Tham gia
18/8/10
Bài viết
268
Được thích
137
Các bạn GPE giúp mình tính tổng số tiết dạy của GV theo file đính kèm!
Mình dùng công thức đếm nhưng hơi củ chuối nên nhờ mọi ngời giúp!
 

File đính kèm

Anh có thể nói lại cho mọi người cùng hiểu. Theo em nghỉ câu hỏi của anh có 2 vế. từ C7:N24 chứ không phải là C1. Anh nói rõ hơn để mình cùng nhau hiểu biết
 
Yêu cầu này chắc phải dùng VBA. Bạn dùng tạm xem thử.
 

File đính kèm

Các bạn GPE giúp mình tính tổng số tiết dạy của GV theo file đính kèm!
Mình dùng công thức đếm nhưng hơi củ chuối nên nhờ mọi ngời giúp!
Dùng thử công thức sau:
Tách tên: AA7:
Mã:
=TRIM(RIGHT(SUBSTITUTE(AB7," ",REPT(" ",255)),255))
Số tiết dạy: X7:
Mã:
=SUMPRODUCT(($C$7:$N$24=AA7)*$C$30:$N$47)

TKB của bạn phân công theo tên giáo viên-nên dùng mã giáo viên để tránh sự trùng tên
Khi đó mã GV sẽ nằm tại vị trí AA7.
 
Dùng thử công thức sau:
Tách tên: AA7:
Mã:
=TRIM(RIGHT(SUBSTITUTE(AB7," ",REPT(" ",255)),255))
Số tiết dạy: X7:
Mã:
=SUMPRODUCT(($C$7:$N$24=AA7)*$C$30:$N$47)

TKB của bạn phân công theo tên giáo viên-nên dùng mã giáo viên để tránh sự trùng tên
Khi đó mã GV sẽ nằm tại vị trí AA7.
1) Mình cũng đã dùng Sumproduct rồi nhưng lại không biết là trong vùng đk thứ hai: C$30:$N$47 không cần thỏa mãn điều kiện gì cả mà vẫn đếm được! Cảm ơn Bebo nhiều nhé!
2) Giờ mình muốn mọi người giúp thêm phần Lọc TKB GV với nhé!
Trong File mình đã ghi!
 

File đính kèm

Lần chỉnh sửa cuối:
1) Mình cũng đã dùng Sumproduct rồi nhưng lại không biết là trong vùng đk thứ hai: C$30:$N$47 không cần thỏa mãn điều kiện gì cả mà vẫn đếm được! Cảm ơn Bebo nhiều nhé!
2) Giờ mình muốn mọi người giúp thêm phần Lọc TKB GV với nhé!
Trong File mình đã ghi!
Thử công thức trong sheet TKB_GV xem có sử dụng được không.
 

File đính kèm

Thử công thức trong sheet TKB_GV xem có sử dụng được không.
Xin nhờ mọi người, đặc biệt bạn Bate chuyên gia lĩnh vực TKB!
1. Tại sao Macco tô màu và xóa màu của mình chạy rất chậm?
2. Nhờ điểu chỉnh giúp công thức phần TKB của GV
 

File đính kèm

Xin nhờ mọi người, đặc biệt bạn Bate chuyên gia lĩnh vực TKB!
1. Tại sao Macco tô màu và xóa màu của mình chạy rất chậm?
2. Nhờ điểu chỉnh giúp công thức phần TKB của GV
"đặc biệt bạn Bate chuyên gia lĩnh vực TKB!".
Hổng dám nhận chuyện này đâu nhé!
1. Không hiểu ý bạn muốn tô màu và xóa màu để làm gì nên không "rớ" được.
Sao các Code bạn viết đều là Function nhỉ?
Nếu chỉ là xóa màu các ô trong Bảng thì chỉ cần code này:
PHP:
Public Sub xoa_mau()
    Sheets("Xep TKB").[A6].Resize(30, Sheets("Xep TKB").[IV5].End(xlToRight).Column).Interior.ColorIndex = 0
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
xoa_mau
Cancel = True
End Sub
2. Các Name GVA,B,C...:
=IF(COUNTIF(Tiet;'TKB GV'!$F$4);INDEX(Tiet;;MATCH('TKB GV'!$F$4;Tiet;0)-1) &"-" & INDEX('XEP TKB'!$C$5:$Z$5;;MATCH('TKB GV'!$F$4;Tiet;0)-1);"")
Bạn chỉnh $Z$5 lại thành cột thích hợp trong sheet Xep TKB, như của bạn bây giờ là AP5, dư 1 số cột cũng được mà.
 
Lần chỉnh sửa cuối:
"đặc biệt bạn Bate chuyên gia lĩnh vực TKB!".
Hổng dám nhận chuyện này đâu nhé!
1. Không hiểu ý bạn muốn tô màu và xóa màu để làm gì nên không "rớ" được.
Sao các Code bạn viết đều là Function nhỉ?
Nếu chỉ là xóa màu các ô trong Bảng thì chỉ cần code này:
PHP:
Public Sub xoa_mau()
    Sheets("Xep TKB").[A6].Resize(30, Sheets("Xep TKB").[IV5].End(xlToRight).Column).Interior.ColorIndex = 0
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
xoa_mau
Cancel = True
End Sub
2. Các Name GVA,B,C...:

Bạn chỉnh $Z$5 lại thành cột thích hợp trong sheet Xep TKB, như của bạn bây giờ là AP5, dư 1 số cột cũng được mà.
Cám ơn Bate
Trích lọc TKB GV thì OK rồi. Nhưng doạn code xóa màu bằng cách Kích chuột phải chưa tự động chạy?
Vẫn phải bấm Run hoặc F5?
Lúc trước đoạn code cũ bấm chuột phải là tự xóa màu, nhưng chạy chậm quá! Giờ chỉnh giúp mình theo code mới đi!
 
Cám ơn Bate
Trích lọc TKB GV thì OK rồi. Nhưng doạn code xóa màu bằng cách Kích chuột phải chưa tự động chạy?
Vẫn phải bấm Run hoặc F5?
Lúc trước đoạn code cũ bấm chuột phải là tự xóa màu, nhưng chạy chậm quá! Giờ chỉnh giúp mình theo code mới đi!
Kích chuột phải tự động chạy trước đây bạn làm sao?
Cái này sao bạn hổng xài? Cái cũ của bạn chỉnh lại đấy!
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
xoa_mau
Cancel = True
End Sub
Híc! "Oai hỏi" thiệt!
 
Lần chỉnh sửa cuối:
muốn nhanh nữa thì thêm đoạn

PHP:
Application.ScreenUpdating = False



PHP:
Application.ScreenUpdating = true


vào các code đã viết, chứ để màn hình nó nháy vừa mất thời gian, vừa chóng cả mặt
 
Lần chỉnh sửa cuối:
muốn nhanh nữa thì thêm đoạn

PHP:
Application.ScreenUpdating = False



PHP:
Application.ScreenUpdating = true


vào các code đã viết, chứ để màn hình nó nháy vừa mất thời gian, vừa chóng cả mặt
Bạn cho giúp mình xem đoạn Code đó vào chỗ nào vì mình cho nhưng sai nên chạy vẫn bị nháy lâu lăm
 

File đính kèm

Bạn cho giúp mình xem đoạn Code đó vào chỗ nào vì mình cho nhưng sai nên chạy vẫn bị nháy lâu lăm

em chỉ góp ý bác tách phần khởi tạo riêng, tô màu riêng, xóa mầu riêng, kiểm tra riêng tạo vài cái nút marcro gắn các chức năng đó thì khi làm việc nó sẽ thao tác nhanh hơn.

em có chỉnh lại code xóa mầu một tí, nếu bác cần thì để không thì bác tự sửa lại cái cũ
 

File đính kèm

Lần chỉnh sửa cuối:
Code này mình viết nên khi đọc code và so sánh dữ liệu trong file thì mình nghĩ nên sửa lại tí, vì code sẽ tô màu luôn cả tên giáo viên. Nếu thấy đúng thì sửa lại cho phù hợp (thêm code: step 2)

PHP:
Sub Oval20848_Click()
Application.ScreenUpdating = False
Dim dl, x, i, j
Set dl = [c6:z35]
dl.Interior.ColorIndex = xlNone
For cot = 1 To dl.Columns.Count Step 2
x = 1
   For dong = 1 To dl.Rows.Count
      If dl(dong, cot) = "" Then dl(dong, cot).Interior.ColorIndex = 6
         If Application.CountIf(Range(dl(x, cot), dl(x + 4, cot)), dl(dong, cot)) > 2 Then
            dl(dong, cot).Interior.ColorIndex = 8
               End If
      If dong = 5 Then x = 6
         If dong = 10 Then x = 11
            If dong = 15 Then x = 16
               If dong = 20 Then x = 21
                  If dong = 25 Then x = 26
   Next
Next
Application.ScreenUpdating = True
End Sub
 
Code này mình viết nên khi đọc code và so sánh dữ liệu trong file thì mình nghĩ nên sửa lại tí, vì code sẽ tô màu luôn cả tên giáo viên. Nếu thấy đúng thì sửa lại cho phù hợp (thêm code: step 2)

PHP:
Sub Oval20848_Click()
Application.ScreenUpdating = False
Dim dl, x, i, j
Set dl = [c6:z35]
dl.Interior.ColorIndex = xlNone
For cot = 1 To dl.Columns.Count Step 2
x = 1
   For dong = 1 To dl.Rows.Count
      If dl(dong, cot) = "" Then dl(dong, cot).Interior.ColorIndex = 6
         If Application.CountIf(Range(dl(x, cot), dl(x + 4, cot)), dl(dong, cot)) > 2 Then
            dl(dong, cot).Interior.ColorIndex = 8
               End If
      If dong = 5 Then x = 6
         If dong = 10 Then x = 11
            If dong = 15 Then x = 16
               If dong = 20 Then x = 21
                  If dong = 25 Then x = 26
   Next
Next
Application.ScreenUpdating = True
End Sub
Xin cảm ơn các bác đã giúp! Nhưng mong bạn Quang Hải và các bạn giúp thêm:
1. Trong đọan code lần sau lại không tô màu được tên GV dạy 3 T/lớp?
2. Mình muốn thêm đoạn code tô màu GV trống 2,3 T trong ngày ở tất cả các lớp dạy chứ không riêng trong 1 lớp như code lần 1 của bạn Hải!
Cảm ơn các bạn nhiều!
 
Xin cảm ơn các bác đã giúp! Nhưng mong bạn Quang Hải và các bạn giúp thêm:
1. Trong đọan code lần sau lại không tô màu được tên GV dạy 3 T/lớp?
2. Mình muốn thêm đoạn code tô màu GV trống 2,3 T trong ngày ở tất cả các lớp dạy chứ không riêng trong 1 lớp như code lần 1 của bạn Hải!
Cảm ơn các bạn nhiều!

1. Mình đã nói rồi, nếu muốn tô màu GV dạy 3 T/ Lop thì xoá đoạn Step 2
2. Không hiểu được yêu cầu và nhìn trong file cũng không thấy minh hoạ luôn
 
1. Mình đã nói rồi, nếu muốn tô màu GV dạy 3 T/ Lop thì xoá đoạn Step 2
2. Không hiểu được yêu cầu và nhìn trong file cũng không thấy minh hoạ luôn
Ý em là muốn tô màu GV trống 2 T hoặc 3 T dù ở các lớp khác nhau:
VD: Giáo viên Kết ngày thứ 2 có T1,2 ở lớp 7C và T5 ở lớp 7B (trống 2 tiết)Picture1.jpg
 
Được các bác Quang Hải ; BateAviaiva giúp đỡ bảng Xếp TKB của em gần hoàn thành rồi. Còn một yêu cầu nữa về tô màu GV trống nhiều hơn 2 tiết, mong các bác giúp cho!
Xin cảm ơn trước!
 

File đính kèm

Được các bác Quang Hải ; BateAviaiva giúp đỡ bảng Xếp TKB của em gần hoàn thành rồi. Còn một yêu cầu nữa về tô màu GV trống nhiều hơn 2 tiết, mong các bác giúp cho!
Xin cảm ơn trước!
Tô màu hoài vậy ta???
PHP:
Sub to_mau_nua()
Application.ScreenUpdating = False
Dim dl, x, cot, dong
Set dl = [c6:z35]
dl.Interior.ColorIndex = xlNone
For cot = 2 To dl.Columns.Count Step 2
  x = 1
    For dong = 1 To dl.Rows.Count
      If Application.CountIf(Range(dl(x, cot), dl(x + 4, dl.Columns.Count)), dl(dong, cot)) < 4 Then
        dl(dong, cot).Interior.ColorIndex = 8
          End If
If dong = 5 Then x = 6
  If dong = 10 Then x = 11
    If dong = 15 Then x = 16
      If dong = 20 Then x = 21
        If dong = 25 Then x = 26
   Next
Next
End Sub
 
Tô màu hoài vậy ta???
PHP:
Sub to_mau_nua()
Application.ScreenUpdating = False
Dim dl, x, cot, dong
Set dl = [c6:z35]
dl.Interior.ColorIndex = xlNone
For cot = 2 To dl.Columns.Count Step 2
  x = 1
    For dong = 1 To dl.Rows.Count
      If Application.CountIf(Range(dl(x, cot), dl(x + 4, dl.Columns.Count)), dl(dong, cot)) < 4 Then
        dl(dong, cot).Interior.ColorIndex = 8
          End If
If dong = 5 Then x = 6
  If dong = 10 Then x = 11
    If dong = 15 Then x = 16
      If dong = 20 Then x = 21
        If dong = 25 Then x = 26
   Next
Next
End Sub
Cảm ơn bac Hải quan tâm nhưng Code rồi bác Test hộ em chưa mà đúng là tô màu hoài thật!
Ý em là chỉ tô màu tên các GV bị trống 2 hoặc 3T trong 1 ngày thôi mà. Sao Code rồi tô màu chưa trúng ý em, mong các bác chỉnh giúp
 
Cảm ơn bac Hải quan tâm nhưng Code rồi bác Test hộ em chưa mà đúng là tô màu hoài thật!
Ý em là chỉ tô màu tên các GV bị trống 2 hoặc 3T trong 1 ngày thôi mà. Sao Code rồi tô màu chưa trúng ý em, mong các bác chỉnh giúp
Híc, té ra cái nàykhông dễ nuốt, nó làm mình đau đầu quá.
tên các GV bị trống 2 hoặc 3T trong 1 ngày
Hình như trong......một buổi chứ nhỉ
Muốn kiểm tra cái này sao bạn không đưa về TKB cá nhân sẽ dễ nhìn & .....dễ làm hơn ( khỏi code, dùng CF nhưng dở một cái là chỉ kiểm tra mỗi lần được một Gv thôi. )
Híc, cái bảng nhiều màu thật, nhìn chóng mặt quá
Thân
 

File đính kèm

Híc, té ra cái nàykhông dễ nuốt, nó làm mình đau đầu quá.

Hình như trong......một buổi chứ nhỉ
Muốn kiểm tra cái này sao bạn không đưa về TKB cá nhân sẽ dễ nhìn & .....dễ làm hơn ( khỏi code, dùng CF nhưng dở một cái là chỉ kiểm tra mỗi lần được một Gv thôi. )
Híc, cái bảng nhiều màu thật, nhìn chóng mặt quá
Thân
Thật quá đúng ý em rồi bác Cò ơi! Bác giúp em nhiều quá rồi, đa tạ, đa tạ, đa tạ .....!
 
hì không phải tự sướng, nhưng file hỗ trợ của em vẫn có vẻ dễ nhìn hơn của bác buithinhvan, nhưng có lẽ do thói quen, hoặc do xuất phát điểm tiếp xúc với cách bố trí TKB giáo viên, học sinh trên một bảng mà hầu hết các trường đều sài theo kiểu của bac buithinhvan %#^#$.

Có lần thanh tra sở về thanh tra toàn diện trường em, họ đòi nộp TKB cho họ,

Sau khi nộp, họ nhìn TKB

phán một câu:

có thế này thôi á!

^^!
 
Lần chỉnh sửa cuối:
Vẫn giữ nguyên các câu lệnh của bạn cho sự kiện before-doubleclick trong sheet Xep TKB nhen.
Mình chỉ giúp bạn thay đổi 2 functions (lẽ ra là sub) trong MODULE 1 để giúp cho việc xoá màu của bạn hoạt động nhanh hơn. File đính kèm cho bạn

--------
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
kt = khoi_tao()
m = xoa_mau() 'function gốc của bạn làm chậm nè
v = kt_tkb() 'function gốc của bạn làm chậm nè
Cancel = True
End Sub
-------------

Mình chỉ giúp bạn thay đổi 2 functions (lẽ ra là sub) trong MODULE 1 để giúp cho việc xoá màu của bạn hoạt động nhanh hơn:

1. function xoa_mau()
Mã:
Public Function xoa_mau()
'Dat ten de lam xong con quay lai
 ActiveWorkbook.Names.Add Name:="vitri", RefersToR1C1:=ActiveCell
' Xoa mau trong TKB
'[MOCS]: phần này làm function chậm nè
[COLOR=#ff0000]'Range(odau_kt).Select
' For j = 0 To stiet
'     For i = 0 To slop * 2
'         Set otiep = Selection.Offset(j, i)
'          otiep(1).Interior.ColorIndex = xlNone
'          otiep.ClearComments
'      Next
' Next[/COLOR]
[COLOR=#0000cd]'[MOCS]: mình thay bằng câu lệnh này. Những phần còn lại của bạn mình không thay đổi gì hết vì không biết bạn còn dùng nó ở chổ khác hay không[/COLOR]
[B]Range("C6:AP35").Interior.ColorIndex = xlNone[/B]

 Application.Goto Reference:="vitri"
 
End Function

2. function kt_tkb: tron function này bạn có 1 câu lệnh nhằm xóa màu ô nếu có.

otiep(1).Interior.ColorIndex = xlNone 'xoa mau o neu co

Câu lệnh này lúc nào cũng thực hiện dù ô đó đã là xlNone rồi. Nên mình thêm dòng if vô để tránh thực hiện vô ích nhé.


Public Function kt_tkb()
cot = 0
'Dat ten de lam xong con quay lai
ActiveWorkbook.Names.Add Name:="vitri", RefersToR1C1:=ActiveCell
'--- het phan dat ten

Range(odau_kt).Select
Dim v
ActiveCell.Offset(0, 1).Select
' Duyet theo tung dong. Het mot vong j la het 1 dong
For j = 0 To stiet
dongst = "$"
For i = 0 To slop - 1
Set otiep = Selection.Offset(j, 2 * i)
'[MOCS] Mình thêm vô check điều kiện, sẽ làm cho function chạy nhanh hơn.
If (otiep(1).Interior.ColorIndex <> -4142) Then
otiep(1).Interior.ColorIndex = xlNone 'xoa mau o neu co
End If
' lay ra duoc 1 dong
TenGV = Trim(otiep(1))
If TenGV <> "" Then
If (InStr(dongst, "$" + TenGV + "$") = 0) Then
dongst = dongst + TenGV + "$"
Else
' To mau den o trung tiet
For dgto = 0 To i
Set otiep = Selection.Offset(j, 2 * dgto)
If TenGV = Trim(otiep(1)) Then
otiep(1).Interior.ColorIndex = 3
End If
Next
End If
End If
Next
Next
Application.Goto Reference:="vitri"
End Function
 

File đính kèm

Thân gửi Bác cò và các bác trên diễn đàn! Em đang hoàn thiện Fiel Xếp TKB của trường và muốn chia sẻ cho các bạn đồng nghiệp, một số đoạn code được các bác gjups đỡ rất đúng ý; nhưng còn một vài ý tưởng nữa chưa xong, mong các bác giúp cho đoạn Code Tô màu các GV phải dạy từ T1 - T5 , yêu cầu em đã ghi rõ trong File!
------------------
Thanh các bác trước!
 

File đính kèm

Bạn Thinh Van ơi , sao thay đổi môn học ở sheet pccm thi code bị lỗi , bạn có cách gì khắc phục trường hợp này , trong trường hợp thêm bớt một số môn học mà không bị lỗi.
 
Bạn Thinh Van ơi , sao thay đổi môn học ở sheet pccm thi code bị lỗi , bạn có cách gì khắc phục trường hợp này , trong trường hợp thêm bớt một số môn học mà không bị lỗi.
Nếu thay đổi tên môn học ở Sheet PCCM thì ở Sheet Xep TKB bạn phải thay toàn bộ tên các môn học đã thay ở Sheet PCCM, sau đó Code lại chạy vô tư!
VD: Ở Sheet PCCM có môn TC nhưng bạn sửa lại TC thành Tin
=> Bạn phải sửa tất các môn TC ở Sheet Xep TKB thành Tin (Hoặc xóa đi)
 
Thân gửi Bác cò và các bác trên diễn đàn! Em đang hoàn thiện Fiel Xếp TKB của trường và muốn chia sẻ cho các bạn đồng nghiệp, một số đoạn code được các bác gjups đỡ rất đúng ý; nhưng còn một vài ý tưởng nữa chưa xong, mong các bác giúp cho đoạn Code Tô màu các GV phải dạy từ T1 - T5 , yêu cầu em đã ghi rõ trong File!
------------------
Thanh các bác trước!


Một vài góp ý nhỏ:

- sau khi lựa chọn môn => tên giáo viên sẽ xuất hiện cái này có lẽ hơi ngược vì thông thường nhà trường lấy nguyện vọng TKB của giáo viên chứ không lấy nguyện vọng TKB của học sinh em nghĩ bác nên đổi lại cho chọn tên giáo viên khi đó môn tương ứng sẽ tự biến đổi theo.

- Việc kiểm tra số tiết thừa thiếu bác nên để trong 1 sheet như thế tiện quan sát hơn hoặc tống thẳng vào cái comment, TKB của bác đã hoàn thiện thì một vài vi chỉnh không có gì phải bàn, nếu bắt đầu từ đầu mỗi lần kiểm tra cứ phải chuyển sheet liên tục cũng bất tiện.


Cái bác cần (tô mầu đối với GV dạy từ T1 ->T5) Không biết đã đúng ý bác chưa bác download file đính kèm
 

File đính kèm

Lần chỉnh sửa cuối:
Một vài góp ý nhỏ:

- sau khi lựa chọn môn => tên giáo viên sẽ xuất hiện cái này có lẽ hơi ngược vì thông thường nhà trường lấy nguyện vọng TKB của giáo viên chứ không lấy nguyện vọng TKB của học sinh em nghĩ bác nên đổi lại cho chọn tên giáo viên khi đó môn tương ứng sẽ tự biến đổi theo.

- Việc kiểm tra số tiết thừa thiếu bác nên để trong 1 sheet như thế tiện quan sát hơn hoặc tống thẳng vào cái comment, TKB của bác đã hoàn thiện thì một vài vi chỉnh không có gì phải bàn, nếu bắt đầu từ đầu mỗi lần kiểm tra cứ phải chuyển sheet liên tục cũng bất tiện.


Cái bác cần (tô mầu đối với GV dạy từ T1 ->T5) Không biết đã đúng ý bác chưa bác download file đính kèm
Cảm ơn bạn Aviaiva, Code của bạn chạy được rồi nhưng có lẽ do mình mô tả chưa kỹ nên bạn có thể chỉnh lại giúp đoạn code đó là: Tô màu GV phải dạy T1 và T5 (Tức là có thể trống tiết, không nhất thiết phải dạy cả 5T) cụ thể muốn tô:
VD: GV Vân ngày thứ 2 có T1,2,3 và T5
GV Thịnh ngày thứ 7 có T1,4 và T5
Mình không biết nhiều về VBA, chỉ biết vài Macco đơn giản nên chỉnh lại Cocde của bạn mà nó cử nhảy lung tung
-------------------------
* Còn về việc nhập môn học => tên GV hay nhập nguyện vọng GV => môn học trên TKB (Cái này của mình ngược với cách bố trí xếp TKB của bạn) là do đặc điểm GV của trường mình: 1 GV có thể dạy tới 3 môn; nếu nhập nguyện vọng thì sẽ bị có những môn không muốn dạy T5 như TD chẳng hạn mình không hạn chế được ....
Và có lẽ do quen rồi.. hj
Với lại TKB của các lớp thì năm nào cũng vậy thường cố định số môn, số tiết; vậy khi xếp một TKB mới mình chỉ cần thay đổi tên GV ở PCCM là tự Xếp TKB đã có tên GV theo môn không cần xếp từ đầu (tất nhiên sẽ có trùng tiết mình chỉ cần điều chỉnh khoảng 30' hoặc 1 tiếng nữa là OK!)
* Việc thống kê tiết thừa thiếu: Ý bạn là sao? Dùng VBA hay tạo đường link? Mình chưa rõ, giúp mình luôn nhé!
Thank bạn nhiều!
 
Lần chỉnh sửa cuối:
Thích thì chìu, mỗi em một màu cho đẹp, hihi
Thân
Hi em biết ngay thế nào bác Cò cũng giúp em mà, thanh bác nhiều!
Nhưng bác ơi, tên một giáo viên ở 2 ngày đều có 5 tiết (GV Hạnh) thì lại mang 2 màu hả bác?
Giá mà bác giúp em thêm các cô như thế chỉ mang 1 màu thì tốt quá (Cho nó đỡ lòe loẹt, hj)
 
Hi em biết ngay thế nào bác Cò cũng giúp em mà, thanh bác nhiều!
Nhưng bác ơi, tên một giáo viên ở 2 ngày đều có 5 tiết (GV Hạnh) thì lại mang 2 màu hả bác?
Giá mà bác giúp em thêm các cô như thế chỉ mang 1 màu thì tốt quá (Cho nó đỡ lòe loẹt, hj)
cái zụ này trong yêu cầu đâu có nói tới nó, bi giờ mới....xuất hiện mà
Bạn chép đè code này lên code cũ giúp mình nhé
Mã:
Sub DayT1_T5()
    Dim Wf, VungDau, VungCuoi, I, iMau, J, K, M, d, MauCu
    Application.ScreenUpdating = False
    Set d = CreateObject("scripting.dictionary")
    Set Wf = Application.WorksheetFunction
    Set Vung = [D6:Z35]
    Vung.Interior.ColorIndex = xlNone
    iMau = 3
        For I = 1 To Vung.Rows.Count Step 5
            Set VungDau = Vung(I, 1).Resize(, Vung.Columns.Count)
            Set VungCuoi = Vung(I + 4, 1).Resize(, Vung.Columns.Count)
                For M = 1 To VungCuoi.Columns.Count Step 2
                    If Wf.CountIf(VungDau, VungCuoi(M)) Then
                        If Not d.exists(VungCuoi(M).Value) Then
                            iMau = iMau + 1
                            d.Add VungCuoi(M).Value, iMau
                            VungCuoi(M).Interior.ColorIndex = iMau
                                For J = 0 To 3
                                    If Wf.CountIf(VungDau.Offset(J), VungCuoi(M)) Then
                                        K = Wf.Match(VungCuoi(M), VungDau.Offset(J), 0)
                                        VungDau.Offset(J)(K).Interior.ColorIndex = iMau
                                    End If
                                Next J
                        Else
                            MauCu = d.Item(VungCuoi(M).Value)
                        
                            VungCuoi(M).Interior.ColorIndex = MauCu
                            For J = 0 To 3
                                If Wf.CountIf(VungDau.Offset(J), VungCuoi(M)) Then
                                    K = Wf.Match(VungCuoi(M), VungDau.Offset(J), 0)
                                    VungDau.Offset(J)(K).Interior.ColorIndex = MauCu
                                End If
                                
                            Next J
                         End If
                    End If
                Next M
        Next I
   Application.ScreenUpdating = True
End Sub
Thân
 
Hay quá rồi bác à! Sau vụ này không em nào còn bị sai sót nữa đâu, kiểm tra được hết ráo rùi!
 
mấy ac ơi giúp em lấy dữ liệu từ PCCM sang PCGD sử dụng công thức hay code cũng được em cám ơn
 

File đính kèm

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

Back
Top Bottom