Primeiro, insira os dados da K coluna e execute esta macro curta:
Sub RecordTime()
Dim rng As Range, r As Range, d As Date
Set rng = Intersect(Range(Cells(5, "K"), Cells(Rows.Count, "K")), ActiveSheet.UsedRange)
d = TimeSerial(Hour(Now()), Minute(Now()), Second(Now()))
For Each r In rng
If r.Value <> "" Then
r.Offset(0, 3) = d
End If
Next r
End Sub
EDIT # 1:
Aqui está uma versão automática do código. Insira a seguinte macro de eventos na área de código da planilha:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, r As Range, d As Date
Set rng = Intersect(Range(Cells(5, "K"), Cells(Rows.Count, "K")), ActiveSheet.UsedRange)
If Intersect(Target, rng) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target.Offset(0, 1).Value <> "" Then Exit Sub
d = TimeSerial(Hour(Now()), Minute(Now()), Second(Now()))
Application.EnableEvents = False
Target.Offset(0, 1).Value = d
Application.EnableEvents = True
End Sub
Se você alterar uma célula na coluna K , a hora será automaticamente registrada na coluna L .
Por ser um código de planilha, é muito fácil de instalar e usar automaticamente:
- clique com o botão direito do mouse no nome da guia próximo à parte inferior da janela do Excel
- selecione Exibir código - isso abre uma janela do VBE
- cole o material e feche a janela do VBE
Se você tiver alguma dúvida, tente primeiro em uma planilha de teste.
Se você salvar a pasta de trabalho, a macro será salva com ela. Se você estiver usando uma versão do Excel posterior a 2003, deverá salvar o arquivo como .xlsm em vez de .xlsx
Para remover a macro:
- abrir as janelas do VBE como acima
- limpe o código
- feche a janela do VBE
Para saber mais sobre macros em geral, consulte:
e
Para saber mais sobre macros de eventos (código da planilha), consulte:
As macros devem estar ativadas para que isso funcione!