Você pode fazer isso com um evento de alteração de planilha no VBA. Comecei a criar um exemplo simples para você, mas percebi que seu cliente provavelmente desejará poder reverter qualquer destaque depois de verificar suas alterações. Então, decidi fazer um modelo inteiro de trabalho que faz tudo. Aqui estão os passos que você precisa seguir:
Pressione Alt + F11 para abrir o editor de VBA no Excel. No Pesquisador de objetos (no lado esquerdo da janela do VBA), clique duas vezes em uma folha que você estará editando. Cole o seguinte código no campo de texto que é aberto.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet, ws2 As Worksheet
Dim i As Boolean
Application.ScreenUpdating = False
'Create Change Log if one does not exist.
i = False
For Each ws In ThisWorkbook.Worksheets
If ws.Name = "Change Log" Then
i = True
Exit For
End If
Next ws
If Not i Then
Set ws2 = ThisWorkbook.Worksheets.Add
ws2.Visible = xlSheetHidden
ws2.Name = "Change Log"
ws2.Range("A1") = "Sheet"
ws2.Range("B1") = "Range"
ws2.Range("C1") = "Old Text Color"
Else
Set ws2 = Sheets("Change Log")
End If
'Store previous color data in change log for rollback.
ws2.Range("A1").Offset(ws2.UsedRange.Rows.Count, 0) = Target.Worksheet.Name
ws2.Range("B1").Offset(ws2.UsedRange.Rows.Count - 1, 0) = Target.Address
ws2.Range("C1").Offset(ws2.UsedRange.Rows.Count - 1, 0) = Target.Font.Color
'Change font color to red.
Target.Font.Color = 255
Application.ScreenUpdating = True
End Sub
Este código alterará a cor da fonte para vermelho de qualquer célula que você editar o valor. Ele não alterará a cor da fonte se você alterar apenas o formato de uma célula. Além disso, não irá alterar automaticamente a cor da fonte das células dependentes. O último poderia ser feito, mas deixarei isso para você se você quiser esse comportamento.
Esse código também cria uma folha de registro de alterações oculta e registra o endereço e a cor da fonte original da célula que foi alterada.
Observe que esse código só funciona para alterações nessa planilha específica. Se você quiser acompanhar as alterações em toda a pasta de trabalho, poderá colar esse mesmo código no módulo da planilha para cada planilha.
O código para reverter qualquer destaque deve ser colocado em um módulo separado. No editor do VBA, vá para Inserir > > Módulo. Cole o seguinte código no novo módulo.
Sub rollbackHILITE()
Dim sht As Worksheet, cl As Worksheet
Dim j As Long, roll() As Variant
Dim del As Integer
Application.ScreenUpdating = False
'Find Change Log. If it doesn't exist, user is prompted and exits sub.
For Each sht In ThisWorkbook.Worksheets
If sht.Name = "Change Log" Then
Set cl = sht
Exit For
End If
Next sht
If cl Is Nothing Then
MsgBox "Change Log not found!"
Exit Sub
End If
'Return font colors to original form by stepping backward through change log.
If cl.UsedRange.Rows.Count > 1 Then
roll = cl.Range("A2:C2").Resize(cl.UsedRange.Rows.Count - 1, 3)
For j = UBound(roll, 1) To 1 Step -1
Set sht = Sheets(roll(j, 1))
sht.Range(roll(j, 2)).Font.Color = roll(j, 3)
Next j
End If
Application.ScreenUpdating = True
'Prompt User to keep or delete change log after rollback.
del = MsgBox("Delete Change Log?", vbOKCancel, "Finish Rollback")
If del = 1 Then
cl.Delete
End If
End Sub
Esse código pode ser executado no menu Macros no Excel. Ele simplesmente reverte a cor da fonte das células destacadas de volta para as cores originais e, em seguida, exclui o log de alterações se o usuário clicar em OK.