Tô màu nền cho tên sheet có điều kiện.
Chào anh chị!
Nhờ anh chị giúp em vấn đề này vớiạ. Em muốn tô màu nền cho tên sheet theo điều kiện nếu ở cột E có xuất hiện ô màu đỏ (màu đỏ 255 em tô bàng Conditional Formatting) thì tên sheet cũng được bôi màu đỏ theo . và ngược lại nếu ở cột E không xuất hiện ô màu đỏ thì để trắng hoặc tô màu xanh. Dưới đây là file đính kèm của em.
Xin phép bổ sung: Nếu như không tô màu được thì có cách nào liệt kê các sheet mà cột E có ô màu đỏ không ạ.
Em cảm ơn!
Bạn thử code này xem.
Sub tomau()
Dim lr As Long, i As Long, dk As Boolean, k As Long
For i = 3 To Sheets.Count
dk = False
With Sheets(i)
lr = .Range("E" & Rows.Count).End(xlUp).Row
If lr > 4 Then
For k = 4 To lr
If .Cells(k, 5).Interior.ColorIndex = 40 Then
dk = True
Exit For
End If
Next k
End If
If dk = False Then
.Tab.ColorIndex = 40
Else
.Tab.ColorIndex = 3
End If
End With
Next i
End Sub
Cảmơn anh đã giúp
Code tô chưa đúng anh ạ,
một số sheet cột E không có ô đỏ vẫn bị tô, có sheet cột E có ô đỏ lại không tô ạ.Thêm 1 tham khảo:
Sub SheetColor()
Dim Sh As Worksheet, Rng As Range, Cls As RangeApplication.ScreenUpdating = False
For Each Sh In ThisWorkbook.Worksheets
ColorSheet Sh.Name, 2
Set Rng = Sh.Range(Sh., Sh..End(xlUp))
For Each Cls In Rng
If Cls.Interior.Color = 255 Then
ColorSheet Sh.Name, 255: Exit For
End If
Next Cls
Next Sh
Application.ScreenUpdating = True
End SubSub ColorSheet(Sh, MyColor As Integer) With Sheets(Sh).Tab .Color = MyColor: .TintAndShade = 0 End With End Sub
Bác Sa ơi code này nó khi tap sheet có màu đỏ mà trong cột E không có màu đỏ nó không chuyển màu vẫn thành màu đỏ à.:D.
Màu đỏ ở cột E là em dùng Conditional Formatting bôi. em xem thì nó là 255 không biết có đúng không nữa, code anh viết em thấy gần được rồi, a giúp em chỉnh lại được không ạ! em cảm ơn
Bạn xem nhé.
Sub tomau()
Dim lr As Long, i As Long, dk As Boolean, k As Long
For i = 3 To Sheets.Count
dk = False
With Sheets(i)
lr = .Range("E" & Rows.Count).End(xlUp).Row
If lr > 4 Then
For k = 4 To lr
If Left(.Cells(k, 1), 4) = "3972" Then
If (.Cells(k, 6).Value - .Cells(k, 5).Value) > 0.01 Or (.Cells(k, 5).Value - .Cells(k, 6).Value) > 0.01 Then
dk = True
Exit For
End If
End If
Next k
End If
If dk = False Then
.Tab.ColorIndex = 40
Else
.Tab.ColorIndex = 3
End If
End With
Next i
End Sub
Vẫn bị lỗi anhơi ,Sheet 15S cần cần tô nhung code tô anhà
EM chỉnh được rồi cảm ơn anh nhiềuHình như code lấy color trong Conditional Formatting là:
If .Cells(k, 5).DisplayFormat.Interior.ColorIndex = 40Mình dùng Excel 2007 nên chưa test cho chủ thớt được. Đúng là dùng Excel 2010 trở lên có thêm property DisplayFormat
I don't have an answer that works with Excel 2007 or lower but from Excel 2010 onwards you can use the following (changing the Range to suit): Range("A1").DisplayFormat.Interior.ColorIndex
www.giaiphapexcel.com/diendan/threads/t%C3%B4-m%C3%A0u-n%E1%BB%81n-cho-t%C3%AAn-sheet-c%C3%B3-%C4%91i%E1%BB%81u-ki%E1%BB%87n.143546/
Khóa học Power PI – Ứng dung trong Nhân sự
TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...
Xem khóa học