em muốn tô màu các giá trị gần nhất và lớn hơn giá trị cuối cùng nhờ mọi người giúp đỡ em.

Liên hệ QC
Như vậy thì được hiểu là, nếu ô liền kề (bỏ qua ô rỗng) lớn hơn ô cuối cùng của cột chỉ định thì tô màu, không thì hàng đó không tô. Ngắn gọn dễ hiểu dễ làm.
Vâng đúng rồi sếp, tiêu đề của em cũng ngắn gọn như thế ôi thôi bỏ đi. Tóm lại phát biểu của sếp như này em thấy chuẩn rồi.
 
Như vậy thì được hiểu là, nếu ô liền kề (bỏ qua ô rỗng) lớn hơn ô cuối cùng của cột chỉ định thì tô màu, không thì hàng đó không tô. Ngắn gọn dễ hiểu dễ làm.
Cuối cùng cũng đoán được à. :D

Tôi đọc bài #15 và đoán đúng.
Kết quả của chú cho ra là các ô màu cam, còn kết quả cháu muốn tìm và so sánh là các con số màu xanh dương vì nó là con số
gần nhất với ngày nhập sau cùng.
như vậy sẽ tìm các con số màu xanh này và tiếp đến là so sánh con số màu xanh này với con số tại cột G nếu con số màu xanh này
lớn hơn (thôi thì hoặc bằng nữa cũng được.) thì tô màu nền còn các con số khác nhỏ hơn không xét màu mè nào thì để nguyên.
 
Vâng đúng rồi sếp, tiêu đề của em cũng ngắn gọn như thế ôi thôi bỏ đi. Tóm lại phát biểu của sếp như này em thấy chuẩn rồi.
Nếu bạn muốn dùng code VBA thì bạn làm như sau:

1632841161718.png

Bạn cần fill màu đỏ cột cần so sánh, sau đó bấm nút KIỂM TRA, dĩ nhiên nếu bạn chưa fill đỏ code sẽ nhắc bạn tô đỏ và sau khi chạy code nó sẽ xóa màu giúp bạn. Dưới đây là code:

Mã:
Sub KiemTra()
    Dim shtData As Worksheet
    Dim rngFind As Range, rngNgayThang As Range
    Dim c As Long, e As Long, r As Long, col As Long
    Set shtData = Worksheets("Sheet1")
    e = shtData.Range("B" & shtData.Rows.Count).End(xlUp).Row
    Set rngNgayThang = shtData.Range("C2:J2")
    ''Tim cot có ô fill màu do:
    For Each rngFind In rngNgayThang
        If rngFind.Interior.Color = 255 Then
            col = rngFind.Column
            Exit For
        End If
    Next
    
    If col = 0 Then
        rngNgayThang.Interior.Color = 255
        MsgBox "Ban phai tô màu do tai 01 ô trên hàng ngày tháng câ`n so sánh!"
        rngNgayThang.Interior.Pattern = xlNone
        Exit Sub
    End If
    
    ''Xóa fill màu:
    rngNgayThang.Interior.Pattern = xlNone
    shtData.Range("C3:J" & e).Interior.Pattern = xlNone
    
    For r = 3 To e
        For c = col - 1 To 3 Step -1
            If shtData.Cells(r, c).Value > 0 Then
                If shtData.Cells(r, c).Value > shtData.Cells(r, col).Value Then
                    shtData.Cells(r, c).Interior.Color = 65535
                End If
                Exit For
            End If
        Next
    Next
End Sub
 

File đính kèm

  • tomau-HTN.xlsm
    296.4 KB · Đọc: 3
Nếu bạn muốn dùng code VBA thì bạn làm như sau:

View attachment 266895

Bạn cần fill màu đỏ cột cần so sánh, sau đó bấm nút KIỂM TRA, dĩ nhiên nếu bạn chưa fill đỏ code sẽ nhắc bạn tô đỏ và sau khi chạy code nó sẽ xóa màu giúp bạn. Dưới đây là code:

Mã:
Sub KiemTra()
    Dim shtData As Worksheet
    Dim rngFind As Range, rngNgayThang As Range
    Dim c As Long, e As Long, r As Long, col As Long
    Set shtData = Worksheets("Sheet1")
    e = shtData.Range("B" & shtData.Rows.Count).End(xlUp).Row
    Set rngNgayThang = shtData.Range("C2:J2")
    ''Tim cot có ô fill màu do:
    For Each rngFind In rngNgayThang
        If rngFind.Interior.Color = 255 Then
            col = rngFind.Column
            Exit For
        End If
    Next
   
    If col = 0 Then
        rngNgayThang.Interior.Color = 255
        MsgBox "Ban phai tô màu do tai 01 ô trên hàng ngày tháng câ`n so sánh!"
        rngNgayThang.Interior.Pattern = xlNone
        Exit Sub
    End If
   
    ''Xóa fill màu:
    rngNgayThang.Interior.Pattern = xlNone
    shtData.Range("C3:J" & e).Interior.Pattern = xlNone
   
    For r = 3 To e
        For c = col - 1 To 3 Step -1
            If shtData.Cells(r, c).Value > 0 Then
                If shtData.Cells(r, c).Value > shtData.Cells(r, col).Value Then
                    shtData.Cells(r, c).Interior.Color = 65535
                End If
                Exit For
            End If
        Next
    Next
End Sub
Cảm ơn sếp rất nhiều,em đã bấm nút và so sánh khớp đáp án mẫu.. như đã nói bài này em muốn dùng công thức hơn nhưng code thì em đang học hỏi tham khảo có thêm phương pháp thì tốt em rồi, sếp còn đau đầu nữa không vậy, khổ thân sếp đau đầu em cũng phát sốt theo.
Bài đã được tự động gộp:

Nếu bạn muốn dùng code VBA thì bạn làm như sau:

View attachment 266895

Bạn cần fill màu đỏ cột cần so sánh, sau đó bấm nút KIỂM TRA, dĩ nhiên nếu bạn chưa fill đỏ code sẽ nhắc bạn tô đỏ và sau khi chạy code nó sẽ xóa màu giúp bạn. Dưới đây là code:

Mã:
Sub KiemTra()
    Dim shtData As Worksheet
    Dim rngFind As Range, rngNgayThang As Range
    Dim c As Long, e As Long, r As Long, col As Long
    Set shtData = Worksheets("Sheet1")
    e = shtData.Range("B" & shtData.Rows.Count).End(xlUp).Row
    Set rngNgayThang = shtData.Range("C2:J2")
    ''Tim cot có ô fill màu do:
    For Each rngFind In rngNgayThang
        If rngFind.Interior.Color = 255 Then
            col = rngFind.Column
            Exit For
        End If
    Next
   
    If col = 0 Then
        rngNgayThang.Interior.Color = 255
        MsgBox "Ban phai tô màu do tai 01 ô trên hàng ngày tháng câ`n so sánh!"
        rngNgayThang.Interior.Pattern = xlNone
        Exit Sub
    End If
   
    ''Xóa fill màu:
    rngNgayThang.Interior.Pattern = xlNone
    shtData.Range("C3:J" & e).Interior.Pattern = xlNone
   
    For r = 3 To e
        For c = col - 1 To 3 Step -1
            If shtData.Cells(r, c).Value > 0 Then
                If shtData.Cells(r, c).Value > shtData.Cells(r, col).Value Then
                    shtData.Cells(r, c).Interior.Color = 65535
                End If
                Exit For
            End If
        Next
    Next
End Sub
hay quá sếp bấm lần 2 mới thấy hay, tô màu tiêu đề cái cột có dữ liệu cuối cùng hay đấy sếp.
 
Cảm ơn sếp rất nhiều,em đã bấm nút và so sánh khớp đáp án mẫu.. như đã nói bài này em muốn dùng công thức hơn nhưng code thì em đang học hỏi tham khảo có thêm phương pháp thì tốt em rồi, sếp còn đau đầu nữa không vậy, khổ thân sếp đau đầu em cũng phát sốt theo.
Nếu dùng được công thức thì dùng, nhưng bạn cũng thử các ngày sau của nó xem có đúng không hay chỉ so sánh với ngày 5/9 nhé.
 
Nếu dùng được công thức thì dùng, nhưng bạn cũng thử các ngày sau của nó xem có đứng không hay chỉ so sánh với ngày 5/9 nhé.
Em thử rồi từ nãy giờ bấm sướng quá cứ bấm mãi nó có lùi hoặc tiến theo tiêu đề cột mình tô, nhưng sếp chỉnh thêm chút nữa tô màu nào vào tiêu đề cũng phải tô cứ bắt tô một màu cũng hơi gượng . ===\.
 
Em thử rồi từ nãy giờ bấm sướng quá cứ bấm mãi nó có lùi hoặc tiến theo tiêu đề cột mình tô, nhưng sếp chỉnh thêm chút nữa tô màu nào vào tiêu đề cũng phải tô cứ bắt tô một màu cũng hơi gượng . ===\.
Rồi, tới giờ đòi bà Phương Hằng luôn rồi! Cái đó không khó đâu.
 
Đau đầu vời thằng em này thật sếp nhỉ, em cụp máy đây cảm ơn sếp.
Đó, bạn muốn xanh đỏ tím vàng gì tùy!

1632843396515.png


Mã:
Sub KiemTra()
    Dim shtData As Worksheet
    Dim rngFind As Range, rngNgayThang As Range
    Dim c As Long, e As Long, r As Long, col As Long
    Set shtData = Worksheets("Sheet1")
    e = shtData.Range("B" & shtData.Rows.Count).End(xlUp).Row
    Set rngNgayThang = shtData.Range("C2:J2")
    ''Tim cot có ô fill màu bat ky:
    For Each rngFind In rngNgayThang
        If Not rngFind.Interior.Pattern = xlNone Then
            col = rngFind.Column
            Exit For
        End If
    Next
    
    If col = 0 Then
        rngNgayThang.Interior.Color = 255
        MsgBox "Ban phai tô màu gì dó tai 01 ô trên hàng ngày tháng câ`n so sánh!"
        rngNgayThang.Interior.Pattern = xlNone
        Exit Sub
    End If
    
    ''Xóa fill màu:
    rngNgayThang.Interior.Pattern = xlNone
    shtData.Range("C3:J" & e).Interior.Pattern = xlNone
    
    For r = 3 To e
        For c = col - 1 To 3 Step -1
            If shtData.Cells(r, c).Value > 0 Then
                If shtData.Cells(r, c).Value > shtData.Cells(r, col).Value Then
                    shtData.Cells(r, c).Interior.Color = 65535
                End If
                Exit For
            End If
        Next
    Next
End Sub
 
Web KT
Back
Top Bottom