%20en%20una%20celda%20autom%C3%A1ticamente%20cuando%20escribo%20en%20otra%20y%20presiono%20enter%20.png)
Respuesta1
NUEVA RESPUESTA
Si desea tener una marca de tiempo que no se vuelva a calcular, deberá utilizar una técnica llamadaFórmulas circulares. Básicamente, esto permite que una celda realice una función basada en su propio contenido.
Debe habilitar esta funcionalidad yendo a Archivo > Opciones > Fórmulas y luego marcando la casilla Enable iterative calculation
. Cambie el Número de iteraciones a 1
. Presione Aceptar y guarde su hoja.
=IF(A1<>"",IF(B1="",NOW(),B1),"")
Explicación:
El primero IF
es similar al de la respuesta original. Comprueba si A1
está en blanco. <>
es el significado del operador lógico not equal to
. El segundo IF
se verifica a sí mismo y se ejecuta si se ingresa contenido A1
. Si B1
está vacío, ingresa la fecha y hora actuales; de lo contrario, genera el contenido existente (la marca de tiempo original).
RESPUESTA ORIGINAL
Podrías probar esto en B1:
=IF(ISBLANK(A1),"",NOW())
Explicación:
ISBLANK
es una prueba lógica que prueba si la celda objetivo tiene alguna entrada. Devuelve o TRUE
o FALSE
. Está IF
estructurado de modo que si la celda de destino está en blanco, generará una cadena vacía. Si se ingresa alguna entrada, A1
generará la hora y fecha actuales.
Cabe señalar que cada vez que se recalcula la hoja, el valor generado NOW()
cambiará a la hora actual.
Referencias:
Respuesta2
No siempre es aconsejable usar VBA para todo, pero este es un buen candidato, especialmente si desea realizar un seguimiento de cada vez que se cambió una fila, y no solo cuando se ingresó por primera vez. Inserte lo siguiente en el código de la hoja con la columna de marca de tiempo:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim intersection As Range
' Change A:A,C:E to whatever range you want to watch.
Set intersection = Application.Intersect(Target, Me.Range("A:A,C:E"))
If Not intersection Is Nothing Then
Dim r As Range
For Each r In intersection.Rows
' Change B1 to whichever column is the timestamp.
r.EntireRow.Range("B1").Value = Now
Next
End If
Application.EnableEvents = True
End Sub
En este ejemplo, se vigilan las columnas A, C, D y E para detectar cambios y, cuando se producen cambios, la fecha y hora actuales se insertan en la columna B de la misma fila.