Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
Por thefrey
Posts
#5354
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 =)
Avatar do usuário
Por alexandrevba
Avatar
#5358
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
Por thefrey
Posts
#5359
É 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.
Avatar do usuário
Por Parkeless
Posts Avatar
#5361
E se fizer, ao invés de um Workbook_BeforeSave, um Worksheet_Change para cada aba que você quer esse efeito?
Avatar do usuário
Por Parkeless
Posts Avatar
#5366
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...
Avatar do usuário
Por Parkeless
Posts Avatar
#5371
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
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord