VBA Đổi màu chữ khi thỏa điều kiện – Xin Giúp đỡ
Hiện tại Em đang cần làm 1 form như sau mà mò hoài ko viết được code:
Em có 4 cột B, C, D, E
Khi nhập đủ giá trị vào 4 cột cùng 1 dòng thì những giá trị cùng 1 dòng đó sẽ đổi màu( vi dụ xanh dương), còn nếu 1 trong 4 cột chưa nhập giá trị thì không đổi màuMọi người ai giúp em với, Xin cảm ơn Ạ
Bạn thử trãi nghiệm với con macro sự kiện này xem sao:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rws As Long, Dem As Integer
Dim Rng As Range, Cls As Range
Rws = 2 * Sheet1.UsedRange.Rows.Count
Set Rng = Cells(Target.Row, "B").Resize(, 4)
If Not Intersect(Target, .Resize(Rws, 4)) Is Nothing Then
Rng.Interior.ColorIndex = 0
For Each Cls In Rng
Dem = 1 + Dem
If Cls.Value = "" Then
Cls.Interior.ColorIndex = 35+dem
Exit Sub
End If
Next Cls
Rng.Interior.ColorIndex = 35
End If
End Sub
Code này của bạn cũng hay. Nhưng mà tô màu thì tô ở cell, mình đang cần tô màu value trong cell. Dù sao cám ơn bạn rất nhiều, để mình mò chỉnh code chuyển thành tô màu cho value xem đc không
Dùng đỡ củ chuối này:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lr&, rng As Range
lr = Cells(Rows.Count, "A").End(xlUp).Row
If Intersect(Target, Range("B2:E" & lr)) Is Nothing Then Exit Sub
Set rng = Range(Cells(Target.Row, "B"), Cells(Target.Row, "E"))
If WorksheetFunction.CountA(rng) = 4 Then rng.Font.ColorIndex = 23
End Sub
www.giaiphapexcel.com/diendan/threads/vba-%C4%90%E1%BB%95i-m%C3%A0u-ch%E1%BB%AF-khi-th%E1%BB%8Fa-%C4%91i%E1%BB%81u-ki%E1%BB%87n-xin-gi%C3%BAp-%C4%91%E1%BB%A1.163736/post-1092248
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
Bạn có thể dùng định dạng có điều kiện với công thức:
=COUNTA($B2:$E2)=4
Hoặc tổng quát hơn:
=COUNTA($B2:$E2)=COLUMNS($B2:$E2)
Thử nhập thêm hoặc xóa dữ liệu trong bảng để kiểm tra công thức.
.
Conditional Formatting VS Event Handling (using VBA):
Cả hai đều làm năng file.
Cái thứ nhất tự động nằm bên trong. Chỉ làm hơi chậm lúc mở ra. Và Excel phải xem lại mõi lần bảng tính thay đổi. Tuy nhiên, code này là code bên trong Excel được chuyên gia viết bằng ngôn ngữ tối ưu.
Cái thứ hai đăt code vào sự kiện.
– Buộc file phải là loại chứa macro (không thể xlsx)
– Buộc code phải chạy mỗi jhi có thay đổi trong bảng tính (code chạy ít nhất là cho đến khi xét ra không đúng range cần thiết).
– Code VBA là code chạy chậm.