¿Cómo registrar la fecha y hora automáticamente cuando cambia una celda?
Es fácil para nosotros insertar manualmente una fecha y hora estáticas o insertar una fecha dinámica que cambie con la hora del sistema mediante una fórmula. Si deseas registrar la fecha y hora automáticamente cuando cambias o introduces valores, este problema puede ser algo diferente de resolver. Sin embargo, en este artículo, puedes solucionar esta tarea siguiendo los siguientes pasos.
Registrar fecha y hora automáticamente cuando cambia una celda con código VBA
Registrar fecha y hora automáticamente cuando cambia una celda con código VBA
Por ejemplo, tengo un rango de valores, y ahora, cuando cambio o escribo nuevos valores en la Columna B, quiero que se registre automáticamente la fecha y hora actual en la Columna C, como se muestra en la siguiente captura de pantalla:
Puedes completar esta tarea con el siguiente código VBA. Por favor, sigue estos pasos:
1. Mantén presionadas las teclas ALT + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
2. Luego, selecciona la hoja de trabajo que estás utilizando desde el Explorador de Proyectos a la izquierda, haz doble clic en ella para abrir el Módulo, y luego copia y pega el siguiente código VBA en el Módulo en blanco:
Código VBA: Registrar fecha y hora automáticamente cuando cambia una celda
Private Sub Worksheet_Change(ByVal Target As Range)
'Update 20140722
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("B:B"), Target)
xOffsetColumn = 1
If Not WorkRng Is Nothing Then
Application.EnableEvents = False
For Each Rng In WorkRng
If Not VBA.IsEmpty(Rng.Value) Then
Rng.Offset(0, xOffsetColumn).Value = Now
Rng.Offset(0, xOffsetColumn).NumberFormat = "dd-mm-yyyy, hh:mm:ss"
Else
Rng.Offset(0, xOffsetColumn).ClearContents
End If
Next
Application.EnableEvents = True
End If
End Sub
3. Luego guarda y cierra este código para volver a la hoja de cálculo; ahora, cuando cambies el valor de la celda o escribas nuevos datos en la Columna B, la fecha y hora se registrarán automáticamente en la Columna C.
Notas:
1. En el código anterior, puedes modificar “B:B” por cualquier otra columna en la que desees cambiar los valores de las celdas en este script: Set WorkRng = Intersect(Application.ActiveSheet.Range("B:B"), Target).
2. Con este script xOffsetColumn = 1 , puedes insertar y actualizar la fecha y hora en la primera columna junto a tu columna de valores cambiante; puedes cambiar el número 1 por otros números, como 2, 3, 4, 5… lo que significa que la fecha se insertará en la segunda, tercera, cuarta o quinta columna junto a tu columna de valores modificada.
3. Cuando elimines un valor en la columna modificada, la fecha y hora también se eliminarán.
Las mejores herramientas de productividad para Office
Potencia tus habilidades en Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...
Office Tab lleva la interfaz de pestañas a Office y facilita mucho tu trabajo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de nuevas ventanas.
- ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!