Giúp đỡ tính tổng số tiết dạy của GV theo PCCM

Liên hệ QC

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

  • TKB SO 1 Copy.rar
    17.5 KB · Đọc: 74
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

  • TKB SO 1 Copy.rar
    18.4 KB · Đọc: 60
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

  • TKB SO 1 (copy 2).rar
    58.4 KB · Đọc: 39
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

  • TKB_2.rar
    59.7 KB · Đọc: 99
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

  • TKB 1 Duong noi 6 -7.rar
    57 KB · Đọc: 26
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

  • TKB 1 (moi).rar
    59.5 KB · Đọc: 21
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

  • TKB.rar
    60 KB · Đọc: 27
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

  • TKB so 1 (19-8-2012) - Copy.rar
    64.2 KB · Đọc: 35
Đượ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
 
Web KT
Back
Top Bottom