Página 1 de 1

Data de última modificação!

Enviado: 26 Nov 2015 às 17:54
por thefrey
Boa tarde, gostaria de saber se existe a possibilidade de automatizar uma data de ultima modificação da planilha ativa em uma respectiva célula.

Exemplo:
Altero dados da planilha ativa, e após salvas as alterações, exibir a data de ultima alteração em uma determinada célula.

segue abaixo um exemplo:
Imagem

Obrigado =)

Re: Data de última modificação!

Enviado: 26 Nov 2015 às 20:46
por alexandrevba
Boa noite!!

Eu não sei se entendi, mas tente algo..
Código: Selecionar todos
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
     
    Dim DateFormat As String 
    Dim TimeFormat As String 
     
    DateFormat = Format(Date, "dd,mm,yyyy") 
    TimeFormat = Format(Time, "hh:mm") 
     
    Sheets("Plan1").Range("A1") = "Ult Mod: " & DateFormat & " at " & TimeFormat 
     
End Sub 

Att

Data de última modificação!

Enviado: 27 Nov 2015 às 08:36
por thefrey
É esse segmento aí, so que quando tou salvando a planilha e fechando, quando abro ela novamente o código está sumindo =/

Deixa eu explicar melhor... Exemplo: eu tenho Plan1, Plan2, Plan3... em cada planilha dessa eu tenho um cliente cadastrado com dados pessoais e eu preciso que tenha a data da última modificação quando eu alterar algum dado do cliente na planilha que estiver aberta... No caso, cada planilha tem que ter sua data de modificação independente.

Data de última modificação!

Enviado: 27 Nov 2015 às 09:29
por Parkeless
E se fizer, ao invés de um Workbook_BeforeSave, um Worksheet_Change para cada aba que você quer esse efeito?

Data de última modificação!

Enviado: 27 Nov 2015 às 10:32
por thefrey
Como seria? O importante é ficar a data salva da última alteração em cada planilha.

Data de última modificação!

Enviado: 27 Nov 2015 às 11:05
por Parkeless
Aproveitando o código do mano Alexandre:

Primeiro, crie um módulo novo no VBE e cole o seguinte código:
Código: Selecionar todos
Public Macro As Boolean
Depois, no VBE, localize no lado superior esquerdo da aba que você quer (não a pasta de trabalho), clique duas vezes e cole o código abaixo. Não colar em um módulo. Se quiser em várias abas, cole dentro de todas.
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
Dim DateFormat As String
Dim TimeFormat As String

If Macro = True Then: Exit Sub
Macro = True
DateFormat = Format(Date, "dd,mm,yyyy")
TimeFormat = Format(Time, "hh:mm")
 
ActiveSheet.Range("A1") = "Ult Mod: " & DateFormat & " at " & TimeFormat
Macro = False

End Sub
Obs.: Alterar o range("A1") para a célula que você quer.

Se tiver dificuldade na implantação, posta a planilha...

Data de última modificação!

Enviado: 27 Nov 2015 às 11:55
por thefrey
Aparentemente fiz como você pediu, vi que la em cima ja existe Worksheet_Change mesmo, como proceder?:

Imagem

Data de última modificação!

Enviado: 27 Nov 2015 às 12:09
por Parkeless
Incorpora o código novo logo abaixo do antigo, que deve funcionar.

Apague o código novo que você colou. Aí só colar o conteúdo abaixo no que já tem lá, logo depois de End If, e antes do End Sub:
Código: Selecionar todos
Dim DateFormat As String
Dim TimeFormat As String

If Macro = True Then: Exit Sub
Macro = True
DateFormat = Format(Date, "dd,mm,yyyy")
TimeFormat = Format(Time, "hh:mm")
 
ActiveSheet.Range("A1") = "Ult Mod: " & DateFormat & " at " & TimeFormat
Macro = False

Data de última modificação!

Enviado: 27 Nov 2015 às 14:54
por thefrey
Issssoooooo! matou a paw! Obrigado cara, :D :D :D :D :D :D :D :D