Có ai giúp mình với, cảm ơn nhiều ạ

Liên hệ QC

vnxgiokinhtoi

Thành viên mới
Tham gia
16/6/23
Bài viết
6
Được thích
4
Mình muốn khi lấy kí tự chấm công qua nó đều có màu kí tự giống như bên sheet1
 

File đính kèm

  • vd.xlsx
    11.8 KB · Đọc: 5
Nếu không có quy luật gì thì cũng thua;
Nếu có thể xác định được quy luật thì dùng Conditional Formatting
1700037931964.png
 
Nếu không có quy luật gì thì cũng thua;
Nếu có thể xác định được quy luật thì dùng Conditional Formatting
...
Có quy luật chứ: tiêu đề không được "giúp em với...". Nội quy diễn đàn, Mục III, tiểu mục 3.
Muốn xác định quy luật thì cứ hỏi thớt biết "quy luật" là gì không.
 
Nếu không có quy luật gì thì cũng thua;
Nếu có thể xác định được quy luật thì dùng Conditional Formatt

Nếu không có quy luật gì thì cũng thua;
Nếu có thể xác định được quy luật thì dùng Conditional Formatting
View attachment 296747
Mình sưu tầm được code này nhưng chỉ áp dụng cho ô cụ thể mà thôi, còn vùng dữ liệu thì mình không biết chỉnh code như thế nào:

Function CellFontColor(cell As Range) As Long
CellFontColor = cell.Font.Color
End Function
Nếu không có quy luật gì thì cũng thua;
Nếu có thể xác định được quy luật thì dùng Conditional Formatting
View attachment 296747
Dạ đơn giản thôi ạ, qui luật là nếu những ai có ghi chú là "TC" thì mình lấy qua bảng dữ liệu TC và kèm theo chấm công của những người đó, điểm em cần ở đây là khi lấy chấm công của người đó qua bảng TC thì những kí hiệu chấm công vẫn hiện màu y như bảng gốc. Cụ thể: ngày 1,2,4,6,8 có kí hiệu chấm công màu đỏ thì bảng TC nó vẫn là màu đỏ. Còn dùng Conditional Formatting thì đơn giản rồi ạ

 
Code VBA.
Đặt trong worksheet module. Code chạy mỗi khi sheet TC activate.

Chuột phải trên sheet "TC", view code, dán code này vào cửa sổ bên phải. save as file dạng .xlsm
Mã:
Option Explicit
Private Sub Worksheet_Activate()
Dim i&, j&, k&, ce As Range, rng As Range, res(), resColor()
With Sheets("Sheet1")
    Set rng = .Range("B4", .Cells(.Cells(Rows.Count, "B").End(xlUp).Row, "K"))
    ReDim res(1 To 10000, 1 To rng.Columns.Count)
    ReDim resColor(1 To 10000, 1 To rng.Columns.Count)
    For Each ce In rng.Columns(10).Cells
        If ce.Value = "TC" Then
            k = k + 1: res(k, 1) = k
            For j = 2 To rng.Columns.Count
                res(k, j) = ce.Offset(0, j - 11).Value
                resColor(k, j) = ce.Offset(0, j - 11).Font.Color
            Next
        End If
    Next
End With
With Range("A4").Resize(1000, UBound(res, 2) + 1)
    .ClearContents
    .Font.Color = xlNone
End With
For i = 1 To k
    For j = 1 To UBound(res, 2)
        With Cells(i + 3, j)
            .Value = res(i, j)
            .Font.Color = resColor(i, j)
        End With
    Next
Next
End Sub
 

File đính kèm

  • vd.xlsm
    50.8 KB · Đọc: 0
Web KT
Back
Top Bottom