Grabar fecha y hora cuando se ingresa un dato en Excel

Cuando se trabaja, por ejemplo, en el control de horarios y turnos de un empleado, puede resultar útil hacer que Excel grabe automáticamente la fecha y hora en que se ingresa un dato o valor.

Cómo automatizar el ingreso de fechas en Excel.

Por ejemplo, si se ingresa un dato en la columna A, podemos hacer que la fecha o la hora se graben automáticamente en otra columna, lo cual agiliza el proceso, pues evita tener que digitar la fecha o la hora, que por su formato no es un proceso tan rápido.

Para ello, podemos hacer uso de un pequeño código en la hoja donde se introducirán los datos respectivos.

Vamos a hacer que, cuando se ingrese un dato en la columna A, en la columna B se grabe la fecha y en la columna C se grabe la hora de forma automática.

Para ello, damos clic con el botón derecho del mouse sobre la pestaña de la hoja respectiva y seleccionamos la opción “Ver código”.

Se abre una ventana de Visual Basic donde copiamos el código.

Macro para el ingreso automático de fecha y hora de cada registro.

El código de la macro a utilizar es el siguiente:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then

Range("B" & Target.Row) = Date

Range("C" & Target.Row) = Format(Now, "hh:mm")

End If

End Sub

Guardamos y listo.

Con esto, cada vez que se introduzca un dato en cualquier fila de la columna A, la fecha y hora se insertarán de forma automática en las columnas B y C y permanecerán constantes; esto es, que cuando se abra Excel nuevamente, tales valores no se actualizarán.

Guía Laboral 2024
Conozca sus derechos y obligaciones laborales como trabajador o como empleador, y evítese problemas. Ver más.

Forma de citar este artículo (APA):

Gerencie.com. (2012, julio 17). Grabar fecha y hora cuando se ingresa un dato en Excel [Entrada de blog]. Recuperado de https://www.gerencie.com/gravar-fecha-y-hora-cuando-se-ingresa-un-dato-en-excel.html

Recomendados.

Deje su opinión o su pregunta. Trataremos de darle respuesta.
Su comentario o pregunta será editada automáticaente por el sistema.

Regístrese para informarle cuando se responda su pregunta.

14 comentarios
  1. sergio octubre 30 de 2024

    ¿Cómo replicar la misma macro en otra columna de la misma hoja (tabla)? Es decir, poner datos en la columna D y que me salga la fecha en la columna E y F. Gracias.

    Responder a sergio
    • Gbot
      Gbot en respuesta a sergio octubre 30 de 2024

      Para replicar la misma macro en otra columna de la hoja, puedes modificar el código que has proporcionado para que se adapte a las columnas D, E y F. A continuación te muestro un ejemplo del código modificado:
      Private Sub Worksheet_Change(ByVal Target As Range)

      ‘ Verificar si el cambio ocurrió en la columna A o D
      If Not Application.Intersect(Target, Range(“A:A”)) Is Nothing Then
      ‘ Si el cambio está en la columna A, insertar fecha y hora en B y C
      Range(“B” & Target.Row) = Date
      Range(“C” & Target.Row) = Format(Now, “hh:mm”)

      ElseIf Not Application.Intersect(Target, Range(“D:D”)) Is Nothing Then
      ‘ Si el cambio está en la columna D, insertar fecha y hora en E y F
      Range(“E” & Target.Row) = Date
      Range(“F” & Target.Row) = Format(Now, “hh:mm”)

      End If

      End Sub

      Responder a Gbot
  2. Felipe Trujillo abril 26 de 2023

    Excelente, funciona correctamente. Sin embargo, yo utilizo un escáner y se ingresa el código en la celda seleccionada. No me completa la fecha ni la hora; tengo que dar doble clic a la celda para que aparezca el dato.

    Me ayudaría muchísimo algún consejo con este problema.

    Responder a Felipe Trujillo
    • Gbot
      Gbot en respuesta a Felipe Trujillo agosto 17 de 2024

      Cuando escanea un código de barras en Excel, por lo general se ingresan los datos y luego se hace el salto a la siguiente celda. En ese caso puede utilizar una pequeña macro para que cuando complete el ingreso del código de barras haga automáticamente el ingreso de la fecha y hora actual.

      Responder a Gbot
  3. Arturo Fraga enero 6 de 2023

    Buenas tardes,
    He probado el código y funciona perfectamente.
    Muchas gracias.

    Responder a Arturo Fraga
    • Gbot
      Gbot en respuesta a Arturo Fraga agosto 17 de 2024

      Nos alegra saber que el código ha funcionado como esperaba. Si tiene alguna otra pregunta o necesita más ayuda, no dude en preguntar. ¡Saludos!

      Responder a Gbot
  4. Brenda Rodriguez diciembre 8 de 2022

    Hola, ¿cómo podría adaptarlo para que si pego valores en la celda C, también me tome bien la fecha? Porque solo los coloca si escribo en la celda, pero si copio y pego valores, estos no se registran correctamente.

    Responder a Brenda Rodriguez
    • Gbot
      Gbot en respuesta a Brenda Rodriguez agosto 17 de 2024

      Para que la fecha se registre correctamente cuando copia y pega valores en la celda C, debe usar un evento diferente. En lugar de Worksheet_Change, use Worksheet_SelectionChange. El código quedaría así:

      Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim cell As Range For Each cell In Target If Not Intersect(cell, Me.Range("C:C")) Is Nothing Then If IsEmpty(cell.Value) Then cell.Value = Date End If End If Next cell End Sub

      Con este cambio ahora podrá copiar y pegar valores sin problema.

      Responder a Gbot
  5. Jorge Pizarro septiembre 27 de 2022

    Muchas gracias por la información. ¿Cómo podría hacer lo mismo pero que me guarde ambos datos en la misma columna, separados por dos espacios?

    Responder a Jorge Pizarro
    • Christian Rosales en respuesta a Jorge Pizarro junio 22 de 2024

      Escribes la palabra “Now”. Ejemplo:

      “`vba
      Private Sub Worksheet_Change(ByVal Target As Range)
      If Not Application.Intersect(Target, Range(“A:A”)) Is Nothing Then
      Range(“B” & Target.Row) = Now
      End If
      End Sub
      “`

      Responder a Christian Rosales
  6. HG mayo 11 de 2022

    Muchas gracias por el aporte; sí funciona.

    Responder a HG
    • Gbot
      Gbot en respuesta a HG agosto 17 de 2024

      De nada. Nos alegra saber que la información le fue útil y que pudo resolver su inquietud. Si tiene más dudas, no dude en consultarnos.

      Responder a Gbot
  7. Raquel mayo 5 de 2022

    Hola, ¿cómo podría hacer para que me aparezca la fecha solo cuando se escriba en la columna la palabra “Terminado”? Gracias.

    Responder a Raquel
    • Gbot
      Gbot en respuesta a Raquel agosto 17 de 2024

      Para que se muestre la fecha actual en una celda cuando escriba “Terminado” en otra celda, puede usar la siguiente fórmula: =SI(A1=”Terminado”,HOY(),””) Donde A1 es la celda donde escribe “Terminado”.

      Responder a Gbot

Este sitio web utiliza cookies propias y de terceros para ofrecer un mejor servicio. Al seguir navegando acepta su uso.