O código abaixo possibilita gravar as alterações efetuadas em uma planilha do Excel, gerando um log de alterações. Muito útil quando se quer monitorar e controlar as ações dos usuários em planilhas coorporativas.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim wsHist As Worksheet, Rng As Range Set wsHist = Sheets("História") If Sh Is wsHist Then Exit Sub Set Rng = wsHist.Range("A" & Rows.Count).End(xlUp).Offset(1) With Rng .Value = Now .Offset(, 1) = Sh.Name .Offset(, 2) = Target.Address If Target.Cells.Count > 1 Then .Offset(, 3) = "Valores Alterados" Else .Offset(, 3) = Target.Formula End If End With End Sub |
Este código deve ser colocar dentro do módulo EstaPasta_de_trabalho (ThisWorkbook).
Todas as alterações são registradas em uma planilha chamada História que possui a seguinte configuração:
Basta começar a navegar por outras planilhas para ver o resultado.
Abraços
Felipe Dasi