buithinhvan77
Thành viên thường trực




- Tham gia
- 18/8/10
- Bài viết
- 268
- Được thích
- 137
Dùng thử công thức sau: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!
=TRIM(RIGHT(SUBSTITUTE(AB7," ",REPT(" ",255)),255))
=SUMPRODUCT(($C$7:$N$24=AA7)*$C$30:$N$47)
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é!Dùng thử công thức sau:
Tách tên: AA7:
Số tiết dạy: X7:Mã:=TRIM(RIGHT(SUBSTITUTE(AB7," ",REPT(" ",255)),255))
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.
Thử công thức trong sheet TKB_GV xem có sử dụng được không.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!
Cám ơn Ba tê nhiều nhé!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!Thử công thức trong sheet TKB_GV xem có sử dụng được không.
"đặc biệt bạn Bate chuyên gia lĩnh vực TKB!".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
Public Sub xoa_mau()
Sheets("Xep TKB").[A6].Resize(30, Sheets("Xep TKB").[IV5].End(xlToRight).Column).Interior.ColorIndex = 0
End Sub
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à.=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);"")
Cám ơn Bate"đặ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à.
Kích chuột phải tự động chạy trước đây bạn làm sao?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!
Híc! "Oai hỏi" thiệt!Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
xoa_mau
Cancel = True
End Sub
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ămmuố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
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: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!
Tô màu hoài vậy ta???Được các bác Quang Hải ; Bate và Aviaiva 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!
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