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.

Compartir este contenido
Compártalo en Facebook Compártalo en Whatsapp
Deje su opinión o su pregunta.
Trataremos de darle respuesta.
Su comentario o pregunta será editada automáticaente por nuestra IA (Gbot)

Regístrese para informarle cuando se responda su pregunta.

  1. 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
    • 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
  2. Arturo Fraga (enero 6 de 2023)

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

    Responder
    • 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
  3. 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
    • 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
  4. 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
    • 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
  5. HG (mayo 11 de 2022)

    Muchas gracias por el aporte; sí funciona.

    Responder
    • 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
  6. 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
    • 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

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