Đổi màu nền cell khi thay đổi thông tin

  • Thread starter Thread starter laohiep
  • Ngày gửi Ngày gửi
Liên hệ QC

laohiep

Thành viên chính thức
Tham gia
29/11/08
Bài viết
58
Được thích
12
Ở công ty mình có nhiều người đang cần giúp đỡ:
Vấn đề là: mình có một bảng tính có rất nhiều cell chứa dữ liệu là số hoặc ngày tháng ...
trong khi mình cần sửa thông tin ở một số cell đó và sau khi sửa thì cell đó đổi màu để mình biết là có sửa, còn cell nào không sửa thì giữ nguyên.
Bạn nào có cách hay giúp mình nhá!
Xin cảm ơn!
 

File đính kèm

Tôi cũng đang mong chờ lời hướng dẫn như bạn laohiep.
Nhưng chắc phải bổ sung thêm: sửa lần 1 là màu xanh, sửa lần 2 là màu đỏ, sửa lần 3 là màu vàng???
 
Ở công ty mình có nhiều người đang cần giúp đỡ:
Vấn đề là: mình có một bảng tính có rất nhiều cell chứa dữ liệu là số hoặc ngày tháng ...
trong khi mình cần sửa thông tin ở một số cell đó và sau khi sửa thì cell đó đổi màu để mình biết là có sửa, còn cell nào không sửa thì giữ nguyên.
Bạn nào có cách hay giúp mình nhá!
Xin cảm ơn!
Bạn vào menu/tools/track changes/highlight changes ... xem có được không.
 
Bạn vào menu/tools/track changes/highlight changes ... xem có được không.
không được bạn ơi, có thể do mình chưa biết cách sử dụng ứng dụng này, nếu bạn đã thử được thì có thể hướng dẫn giúp mình được không ạ?! còn nếu bạn có cách nào khác hay hơn thì chỉ giúp mình nhá!
trân trọng!
 
Đổi thì đổi được. Nhưng cái bạn đang dùng là Pivotable thì đâu có chỉnh sữa trực tiếp đâu. Bạn thử trong file sẽ thấy.
Nếu gõ dữ liệu trên các ô khác thì sẽ đổi màu. Còn trong Pivotable thì thua rồi.
Thân.
 

File đính kèm

Đổi thì đổi được. Nhưng cái bạn đang dùng là Pivotable thì đâu có chỉnh sữa trực tiếp đâu. Bạn thử trong file sẽ thấy.
Nếu gõ dữ liệu trên các ô khác thì sẽ đổi màu. Còn trong Pivotable thì thua rồi.
Thân.
Bạn vết bằng VBA hả, vậy bạn có thể cho lần thứ nhất là màu đỏ hoặc vàng được không, chứ màu trắng thì khó thấy quá.
Cảm ơn bạn nhiều nhiều!!!
 
Lần chỉnh sửa cuối:
Bạn vết bằng VBA hả, vậy bạn có thể cho lần thứ nhất là màu đỏ hoặc vàng được không, chứ màu trắng thì khó thấy quá.
Cảm ơn bạn nhiều nhiều!!!
Bạn viết thủ tục này trong sheet muốn theo dõi:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Interior.ColorIndex
Case -4142
  Target.Interior.ColorIndex = 36
Case 36
  Target.Interior.ColorIndex = 35
Case 35
  Target.Interior.ColorIndex = 37
End Select
End Sub
Lần 1: màu vàng
Lần 2: màu xanh lá
Lần 3 trở đi : màu xanh dương
Nếu muốn áp dụng tất cả các sheet thì viết trong This Workbook

PHP:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Select Case Target.Interior.ColorIndex
......
......
End Select
End Sub
Nhưng sau khi kiểm tra xong sheet nào đó, muốn trả bình thường thì bạn viết thêm thủ tục này trong module:
PHP:
Sub ClearColor()
Mycell = ActiveCell.Address
Cells.Select
Selection.Interior.ColorIndex = -4142
Range(Mycell).Select
End Sub
Trong file gởi kèm, bạn nhấn Ctrl+z sẽ xóa màu sheet hiện hành.
 

File đính kèm

Bạn viết thủ tục này trong sheet muốn theo dõi:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Interior.ColorIndex
Case -4142
  Target.Interior.ColorIndex = 36
Case 36
  Target.Interior.ColorIndex = 35
Case 35
  Target.Interior.ColorIndex = 37
End Select
End Sub
Lần 1: màu vàng
Lần 2: màu xanh lá
Lần 3 trở đi : màu xanh dương
Nếu muốn áp dụng tất cả các sheet thì viết trong This Workbook

PHP:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Select Case Target.Interior.ColorIndex
......
......
End Select
End Sub
Nhưng sau khi kiểm tra xong sheet nào đó, muốn trả bình thường thì bạn viết thêm thủ tục này trong module:
PHP:
Sub ClearColor()
Mycell = ActiveCell.Address
Cells.Select
Selection.Interior.ColorIndex = -4142
Range(Mycell).Select
End Sub
Trong file gởi kèm, bạn nhấn Ctrl+z sẽ xóa màu sheet hiện hành.
cảm ơn bạn phamduylong nhiều, nhưng nếu mình đã sửa được 100 ô rồi, nhưng có 1 ô mình lỡ tay sửa (nhưng thực tế mình không muốn) khi đó ctrl+z để undo thì coi như 100 ô của mình cũng ra đi luôn, vậy hơi bất tiện nhỉ, có cách khắc phục không bạn.
 
Vậy bạn nhấn thêm nút Ctrl + Shift + Z để chỉ xóa màu của riêng ô đó thôi. Còn các ô khác thì không bị ảnh hưởng gì hết.
Thân.
 

File đính kèm

Thêm 1 cặp macro để các bạn xem xét

Đổi màu khi nhập dữ liệu hay chỉnh sửa:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Value <> "" Then
    With Target.Interior
        If .ColorIndex < 34 Then
            .ColorIndex = 34
        Else
            .ColorIndex = IIf(.ColorIndex = 40, 34, .ColorIndex + 1)
        End If
    End With
 End If
End Sub
giảm màu khi muốn Undo:
PHP:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 With Target.Interior
    .ColorIndex = IIf(.ColorIndex < 35, 0, .ColorIndex - 2)
 End With
End Sub
 
cảm ơn bạn phamduylong nhiều, nhưng nếu mình đã sửa được 100 ô rồi, nhưng có 1 ô mình lỡ tay sửa (nhưng thực tế mình không muốn) khi đó ctrl+z để undo thì coi như 100 ô của mình cũng ra đi luôn, vậy hơi bất tiện nhỉ, có cách khắc phục không bạn.
Bạn thêm thủ tục này vào module:
PHP:
Sub ClearColorSelection()
Selection.Interior.ColorIndex = -4142
End Sub
Nó sẽ xóa màu các ô bạn đang chọn. Bạn thêm phím tắt vào cho dễ sử dụng.
 
Bạn viết thủ tục này trong sheet muốn theo dõi:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Interior.ColorIndex
Case -4142
  Target.Interior.ColorIndex = 36
Case 36
  Target.Interior.ColorIndex = 35
Case 35
  Target.Interior.ColorIndex = 37
End Select
End Sub
Lần 1: màu vàng
Lần 2: màu xanh lá
Lần 3 trở đi : màu xanh dương
Nếu muốn áp dụng tất cả các sheet thì viết trong This Workbook

PHP:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Select Case Target.Interior.ColorIndex
......
......
End Select
End Sub
Nhưng sau khi kiểm tra xong sheet nào đó, muốn trả bình thường thì bạn viết thêm thủ tục này trong module:
PHP:
Sub ClearColor()
Mycell = ActiveCell.Address
Cells.Select
Selection.Interior.ColorIndex = -4142
Range(Mycell).Select
End Sub
Trong file gởi kèm, bạn nhấn Ctrl+z sẽ xóa màu sheet hiện hành.

Anh PhamDuyLong tải file này về nghiên cứu giúp LH nhá (LH có gởi tin nhắn cho anh PDL rồi đó)
Cảm ơn anh!
 

File đính kèm

Theo tôi, bạn nên dùng cách Share workbook để theo dõi các lần sửa.
 
Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom