Historico automatizado

Gostaria de criar um histórico automatizado toda vez que eu alterasse o valor de uma célula ele me registrasse quando foi a ultima alteração (apenas data não a hora), apagando o valor anterior (se houver).
No resumo apenas preciso saber quando foi a última vez que x célula foi atualizada, mas não é para uma célula específica vai ser varias células em varias linhas e cada celula terá seu valor de última alteração individual, não consegui via fórmula então acho que vai ter que ser no VBA tal como o amigo fez no excel no video abaixo

PS não preciso fazer a parte de seleção pois já a faço usando o procv/h preciso apenas do registro de data da última vez que a célula foi alterada. Adicionamelente essa função só deve funcionar em uma planilha especifica e não deve funcionar nas outras então o endereço para acionar a macro de conteudo alterado deve ser especifico a apenas aquela coluna e deve escrever em a data de alteração 3 colunas depois na mesma planilha, demais planilhas não acionarão essa macro.

Ola @Budasamsara, no LibreOffice existe a opção de Registro de Alterações.

Com sua planilha aberta, vá em Editar / Registrar alterações / Registrar.

Há mais opções de uso.

As células que sofre alterações ficam com a borda em vermelho ( não é impresso ).

Descrição da imagem

Complemento

Segue macro sugestão e arquivo do teste|attachment

REM  *****  BASIC  *****

Sub ConteudoAlterado( oCelula )
' Macro acionada por Eventos de planilha... , Conteúdo alterado
    ' Testar se o objeto selecionado é uma célula individual '
    If oCelula.ImplementationName <> "ScCellObj" Then Exit Sub

    ' Endereço da Célula '
    oEnd = oCelula.CellAddress    

    ' Celula no intervalo B7:B27 '
    ' Coluna 1 e linha entre 6 e 26 '
    If oEnd.Column = 0 Then   '0 (zero) é coluna A
      If oEnd.Row >= 6 And oEnd.Row <= 26 Then ' Linha Inicial 7 e linha Final 27 /// 0 (zero) é linha 1
        ' exceutar tarefas '
	Execute "GoRight", 9 ' 9 ir para a coluna J
	Execute "InsertCurrentDate" ' Inserir data corrente
	Execute "GoLeft", 9  ' 9 voltar para a coluna A
        ' finalizar tarefas '	    
      End If
    End If
End Sub



'=========== SubMacro =============================
Sub Execute ( oQue$, Optional nQtd% )
dim Exec(1) as new com.sun.star.beans.PropertyValue
Exec(0).Name = "By" : Exec(0).Value = nQtd
Exec(1).Name = "Sel" : Exec(1).Value = false
CreateUnoService("com.sun.star.frame.DispatchHelper") _
.executeDispatch(ThisComponent.CurrentController _
.Frame, ".uno:" & oQue & "", "", 0, Exec())
End Sub

Fonte: Como executar uma macro no Calc ao selecionar uma célula de uma área?

ok, obrigado é semelhante ao excel, mas eu gostaria mesmo de deixar esse valor (data) numa célula para tratamento futuro a célula seria por exemplo a célula ao lado ou algumas colunas a frente, mas na mesma linha da célula alterada exemplo: quero que quando uma célula na coluna A por exemplo a A123 seja incluso a data da alteração na célula J123, se eu alterar a A13 seja alterada a célula J13 com o valor da data.

@Budasamsara, veja Complemento em minha resposta acima.

Schiavinatto, muito obrigado eu vi aqui e como preciso em planilhas especificas pelo que entendi é só eu ir acionando a macro em cada planilha que desejo que a macro funcione.
Adicionalmente tem como me enviar um link ou documento de onde tem as Sintaxes de todas funções pra que eu possa ir implementando novas macros no futuro?
Entendi bem a primeira parte do código (ainda mais com os comentários), apenas a Submacro que tive certa dificuldade, mas vou estudar mais pra ir relembrando.
PS: na sua resposta faltou apenas indicar que o evento da planilha conteúdo alterado deve ser vinculado a macro (não pra mim, mas para futuros usuários mais desavisados)

Aqui tem dezenas de links sobre Basic para consultas e estudos:

A SubMacro “Execute” é a base para diversos comandos, em uma macro com diversos comandos que a utilizam fica mais fácil chama-la no procedimento indicando o comando:

Veja a lista que funciona neste comando.

Legal, Schiavinatto! Muito obrigado ! Tive um pequeno problema quando fui finalizar a planilha o gotoright / gotoleft, eu tinha imaginado que ele era interno e buscava a localização da célula por movimentação interna, mas ao ocultar a coluna de endereço percebi que ele é apenas um movimento de usuário que nesse caso ele pula as colunas ocultas e vai para as células que estão exibidas a correção se daria com um goto com referencia da linha atual certo e colunas travadas certo? Não sei se a solução seria essa …

Hummmm, o comando mencionado “gotoright / gotoleft” seriam GoRight e GoLeft estes comandos descolam o cursor/célula ativa, N colunas para a direita e esquerda, e considera as colunas ocultas.

Não entendi direito “ocultar a coluna de endereço”

Entre em contato direto, veja aqui: User:Schiavinatto - The Document Foundation Wiki

e me envie um arquivo exemplo, com detalhes de sua necessidade. Sigilo garantido.

vou ver mas basicamente a coluna onde ele vai escrever esta oculta (a opção ocultar/ mostrar coluna quando você clica com o botão direito sobre a coluna e oculta apenas para deixar de exibir) fazendo isso a macro não escreve nessa célula ela escreve na próxima célula (a direita) nesse caso se o comando vai para a coluna 10 mas ela esta oculta ele escreve na coluna 11.

Schavinatto não sei como enviar o arquivo, mas é simples abra o arquivo que me enviou de teste oculte a coluna J (clique com o botão direito na coluna J e mande ocultar) e ele vai escrever na coluna K detalhe na hora de voltar ele vai contar “certo” tbm e o cursor vai voltar pra coluna B ao invés da A porque vc escreveu na K ao invés da J, faça o teste.
Eu ate consegui com a seguinte adaptação, mas se tiver algo mais elegante por favor compartilhe…

    REM  *****  BASIC  *****

    Sub ConteudoAlterado( oCelula )
    ' Macro acionada por Eventos de planilha... , Conteúdo alterado
        ' Testar se o objeto selecionado é uma célula individual '
        If oCelula.ImplementationName <> "ScCellObj" Then Exit Sub

    ' Endereço da Célula '
    oEnd = oCelula.CellAddress    

    ' Celula no intervalo B7:B27 '
    ' Coluna 1 e linha entre 6 e 26 '
    If oEnd.Column = 0 Then   '0 (zero) é coluna A
      If oEnd.Row >= 6 And oEnd.Row <= 26 Then ' Linha Inicial 7 e linha Final 27 /// 0 (zero) é linha 1
        ' exceutar tarefas '
    Execute "Selectrow"
    Execute "ShowColumn"
	Execute "GoRight", 9 ' 9 ir para a coluna J
	Execute "InsertCurrentDate" ' Inserir data corrente
    Execute "Selectcolumn"
    Execute "HideColumn"
	Execute "GoLeft", 9  ' 9 voltar para a coluna A
        ' finalizar tarefas '	    
      End If
    End If
End Sub


'=========== SubMacro =============================
Sub Execute ( oQue$, Optional nQtd% )
dim Exec(1) as new com.sun.star.beans.PropertyValue
Exec(0).Name = "By" : Exec(0).Value = nQtd
Exec(1).Name = "Sel" : Exec(1).Value = false
CreateUnoService("com.sun.star.frame.DispatchHelper") _
.executeDispatch(ThisComponent.CurrentController _
.Frame, ".uno:" & oQue & "", "", 0, Exec())
End Sub

Ok @Budasamsara, o procedimento esta certo, em:

Execute "GoLeft", 9  ' 9 voltar para a coluna A ( Esta retornando para B )

Altere para Execute "GoLeft", 10 ' 10 voltar para a coluna A

Sim @schiavinatto vi isso, mas não consegui editar a resposta, pois estourou o número de caracteres,
Existe uma maneira de me mover entre as colunas, mas na linha selecionada? Sem ser pelo goleft/right?
Por exemplo eu dar um endereço pra ele se mover usando a linha que estou selecionado+uma coluna predeterminada? É semelhante ao goletf/right porem eu escrevendo de fato o endereço da celula tipo linha selecionada+coluna F

A sua alteração na macro esta funcionando, só acerte esta linha

Execute “GoLeft”, 10 ’ 10 voltar para a coluna A