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
Olá
Tem como acrescentar um campo dizendo qual usuário alterou a planilha?
Obrigado
Felipe td joia?
Excelente código. Esta me ajudando bastante no desenvolvimento de uma rotina.
Preciso de uma ajuda, quando coloco um link DDE no excel e existe uma mudança de valor na celula, ele nao esta considerando a mudança somente quando dou enter. Sabe como devo proceder para implementar esta funcionalidade?
Olá,
Parabéns pela planiha, muito útil. É possivel gravar alterações sem ser valores numéricos ou alfabéticos??por exemplo: cor da célula.
Obrigado.
Olá Daniel,
Estamos discutindo sobre a planilha no nosso fórum:
http://www.tomasvasquez.com.br/forum
Nos vemos lá!
Abraços
Tomás
Daniel,
Me ajudou bastante essa sua postagem. Precisei desse código com certa urgência e como está simples e rápido de fazer, me trouxe sucesso! Obrigada pela ajuda!
Abraços,
Raquel Lamas.
Pessoal, muito bom o código, fiz algusn testes e deu tudo certo. Apenas fiquei com uma dúvida. No histórico quando excluimos ou adicionamos uma linha ocorre a mesma menssagem (“Valores Alterados”). Teria como diferencia-los?
abs e Obrigado.
Klelio,
Corre para o fórum colocar sua dúvida que lá é o melhor lugar para resolver ela:
http://www.tomasvasquez.com.br/forum
Nos vemos lá!
Tomás
Boa tarde
Faço uso de uma planilha compartilhada para vários usuários e estarei ausente durante um período. Assim, por não conseguir monitorá-la, precisarei saber ao voltar quais alterações foram feitas e por quais usuários.
Sendo assim, há algum mecanismo que eu possa utilizar e que mantenha todas as alterações feitas (sem exceção) durante o período em que a planilha estiver compartilhada, sendo alterada e salva por outros usuários?
Eu descobri que clicando em “Controlar Alterações”, “Realçar alterações”, e “Listar alterações em uma nova planilja”, passo a ter acesso às alterações feitas, porém limitadas até que eu salve a planilha objeto das alterações.
Como isso limita o que será arquivada no histórico, gostaria de saber se é possível criar um histórico automático e permanente de alterações.
Obrigado!