Log de modificações...
 
Notifications
Clear all

Log de modificações Planilha

4 Posts
2 Usuários
0 Reactions
1,373 Visualizações
(@jose7br)
Posts: 0
New Member
Topic starter
 

Bom dia pessoal estou precisando implementar uma planilha de logs de alteração com o usuário que modificou e a data.
Andei pesquisando algumas coisas, mas nenhuma solução viável ainda.

Minha planilha é bem grande com um banco de dados em access.

alguém tem alguma ideia ou já criou um sistema desse?

Desde já, agradeço a atenção de todos.

 
Postado : 13/09/2017 7:44 am
(@joebsb)
Posts: 0
New Member
 

Olá José...

Uma solução bacana, é voce deixar uma aba da planilha para esse log....

No exemplo abaixo, ele salva o nome do usuário logado no sistema na coluna "A" da plan1 e data/hora na coluna "B".

Recomendo utilizar essa programação, inserindo o código em EstaPasta_de_trabalho do VBA, usando Workbook e evento BeforeSave. Assim ele vai salvar o nome de quem salvou por ultimo as alterações.

Altere o código conforme suas necessidades.

'Macro criada por Joe em 14/09/2017
'Contato para freelancer: (61) 99136-3695

 i = 1
Do Until Len(Sheets(1).Cells(i, 1).Text) = 0
    i = i + 1
Loop
Sheets(1).Cells(i, 1) = Environ("UserName")
Sheets(1).Cells(i, 2) = Format(Now, "dd/mm/yyyy hh:mm")

Espero ter ajudado galera.....

Se resolveu o problema, não esqueça de colocar o tópico como concluído e mandar um TKS.

 
Postado : 13/09/2017 8:04 am
(@jose7br)
Posts: 0
New Member
Topic starter
 

Olá boa tarde, obrigado pelo retorno!

Eu preciso ver quais as células que foi alterado também com a data da modificação.

 
Postado : 13/09/2017 9:31 am
(@joebsb)
Posts: 0
New Member
 

José.... faz o seguinte então...

Fiz então para salvar o nome do usuário + a hora + a célula alterada na primeira planilha....

Cole o código abaixo completamente antes de qualquer linha de código que tiver em EstaPasta_de_Trabalho:

Public celulativa As String
Public controle As Boolean

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Macro criada por Joe em 13/09/2017
'Contato para freelancer: (61) 99136-3695

If controle = True Then
    i = 1
    Do Until Len(Sheets(1).Cells(i, 1).Text) = 0
    i = i + 1
    Loop
    controle = False
    Sheets(1).Cells(i, 1) = Environ("UserName")
    Sheets(1).Cells(i, 2) = Format(Now, "dd/mm/yyyy hh:mm")
    Sheets(1).Cells(i, 3) = celulativa
    DoEvents
    End If
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'Macro criada por Joe em 14/09/2017
'Contato para freelancer: (61) 99136-3695
celulativa = Replace(Selection.Address, "$", "")
controle = True
DoEvents
End Sub

Espero ter ajudado galera.

Se ficou como vc queria... não esqueça de colocar o tópico como resolvido e mandar um TKS.

Abraços

 
Postado : 13/09/2017 1:26 pm