Grabar fecha y hora cuando se ingresa un dato en Excel

Por 17 julio, 2012

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.

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 hora respectiva y seleccionamos la opción “Ver código”.

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

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 habrá Excel nuevamente tales valores no se actualizarán.

Gerencie.com en su correo.

Suscríbase y nosotros colocaremos en su bandeja de entrada la mejor información que generamos diariamente.


Déjenos su opinión

30 Opiniones
  1. ADRIAN Dice:

    como hacer para que el siguiente macro no altere los datos en toda la columna.

    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

    realizo esta macro pero no puedo evitar que inserte la hora el las celdas que realizo otras especificaciones.

    Responder
    • cyber100 Dice:

      borra esto: Range(«C» & Target.Row) = Format(Now, «hh:mm»)
      a mi funciono…

      Responder
  2. Daniel Dice:

    Excelente guia, muchas gracias por compartir la informacion.

    Responder
  3. luis Dice:

    Muy rifado, muchas gracias a todos

    Responder
  4. cyber100 Dice:

    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

    me funciono perfecto,la estoy usando en una hoja de pagos, me funciono en la celda pagos(fecha de pago), ahora quiero lo mismo pero en las celda abono1(celda fecha de abono1) y celda abono2(celda fecha de abono2), espero se explicita mi pregunta…gracias

    Responder
  5. Fernando Dice:

    Muy bueno. Mil gracias!

    Responder
  6. Fernando Dice:

    MUY BUENO, MUCHAS GRACIAS.
    SALUDOS DESDE MÉXICO.

    Responder
  7. Adri Dice:

    Lo veo perfecto, solo tengo un pequeño problema. No sé cómo hacer que eso mismo se pueda hacer con otras columnas.

    Ejemplo:

    Introduzco dato en A y sale hora en B.
    Introduzco dato en C y sale hora en D.

    Gracias!!

    Responder
  8. KhrooZ Dice:

    Se puede realizar esto pero en una misma columna?

    por ejemplo: Si agrego un dato en B2, que salga la fecha en B5?

    ayuda porfavor D:

    Responder
  9. Geostronger Dice:

    Tengo una duda ayuda por favor!!!
    Todo esta muy bien pero ahora lo que quiero es que a la hora de borrar la celda no se actualice la fecha y hora, como le hago?????

    Responder
  10. Carla Dice:

    Hola!
    Una consulta, alguien sabe como escribir esa misma funcion para google sheets?
    Mil gracias!!!!

    Responder
  11. Amadeo Dice:

    Hola,

    Me gustaría saber si se puede modificar el código para que, en lugar de que indique fecha y hora cada vez que se introduce/modifica un valor, solamente lo haga la primera vez que se introduce un valor.
    Es decir, me gustaría que quede registrado, el día en el que se introdujo un valor. Y que cambie esa fecha/hora cada vez que se modifica el valor de la celda.

    Muchas gracias!

    Responder
  12. JosueC Dice:

    Como puedo hacer que me funcione en una hoja especifica del libro ya que cuento con varias hojas en el mismo. Gracias

    Responder
  13. Stewart Dice:

    Hola,
    Me gustaría saber como puedo modificar este código a un libro de 34 hojas que manejan el mismo formato, pero que solo se aplique a 31 hojas, ya que los registros se van ingresando en la hoja que corresponde al día y también coloque la fecha en una columna y la hora en otra y que después de haber ingresado la información no permita realizar cambios.

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 6 And Target.Row > 1 Then
    If Len(Trim(Sheets(«registro»).Cells(Target.Row – 1, 4))) > 0 Then
    Sheets(«registro»).Cells(Target.Row, 1) = Now
    End If
    End If

    Muchas gracias.

    Responder
  14. Mau Dice:

    Buen día, la formula me funcionó muy bien pero como le hago para que en vez de una columna sea un fila

    Responder
  15. José García Dice:

    Todo funciona excelentemente bien

    Responder
  16. Beatle Dice:

    Excelente ayuda soy nuevo en esto de excel y me ayudo bastante esta informacion, Dios los bendiga a todos.

    Responder
  17. Darío Dice:

    Hola.
    Excelente la página.
    Duda: Quiero ingresar datos en A1 y obtener fecha en A2
    asimismo ingresar datos en B4 y obtener fecha en B5.
    la fecha se tiene que modificar en la medida que se modifican datos.
    MUchas

    Responder
    • Allan Dice:

      Buen día,

      Te respondieron por esta consulta?

      Responder
  18. Stewart Dice:

    Buen día, Muchas gracias por compartir sus conocimientos esta excelente el sitio.
    tengo una duda y quisiera que por favor me ayudaran a resolverla y es que quiero aplicar la hora y fecha automática a 31 hojas que manejan el mismo formato. Por el momento tengo este código que solo se ejecuta en una hoja haber como se puede modificar o si tienen un mejor.
    De antemano muchas gracias por su colaboración.

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 6 And Target.Row > 1 Then
    If Len(Trim(Sheets(“registro”).Cells(Target.Row – 1, 4))) > 0 Then
    Sheets(“registro”).Cells(Target.Row, 1) = Now
    End If
    End If

    Responder
  19. DROJANOS Dice:

    Buenos dias.

    requiero su ayuda con lo siguiente, necesito poner la fecha actual (y que esta no cambie) al cambiar de texto a numero, es decir, en la columna D2 tengo escrito la palabra PENDIENTE y lo que requiero es que cuando cambie esa palabra por un numero, en la columna E2 se grabe la fecha actual y que esta no cambie al dia siguiente

    Responder
  20. FREDY LOPEZ Dice:

    HOLA A TODOS, HE UTILZADO EL CODIGO PARA QUE APARESCA LA FECHA AUTOMATICAMENTE SIN QUE CAMBIE DESPUES, PERO NO ENTIENDO PORQUE SOLO FUNCIONA EN DOS PC Y EN OTRA NO . ALGUIEN PUEDE AYUDARME

    Responder
  21. Ruben Pascuas Dice:

    Como puedo usar la formula para, para que al momento de ponerla me bloquee la celda?

    Agradezco de su ayuda

    Responder
  22. fredy lopez Dice:

    Gracias

    Responder
  23. Sergi Perea Dice:

    Buenas,

    la he adaptado a mis necesidades, pongo fecha en A y hora en B, pero si el dato introducido en C no es de manera directa, sino a través de formulario, no funciona.

    Podrías decirme por qué?

    Muchas gracias y feliz día,

    Sergi

    Responder
  24. Luis Julio Dice:

    ¡¡¡hola muchas gracias en excel funciona perfecto!!!!
    me podrian porfavor regalar esta misma macro para OpenOffice Calc
    enserio la necesito y no logro dar con ella, o si me pueden ayudar con metodo en el que al introducir un dato se inserte la fecha automatica, pero que no se actualice, de antemano ¡¡¡muchas gracias!!!

    Responder
  25. Cristian Melo Dice:

    Buenas tardes, utilice la macro y me funciono perfecto, ahora tengo un inconveniente pues me gustaría proteger la celda donde se ingresa la fecha pero si lo hago el macro no me funciona y me da un error, si alguien me puede ayudar

    Responder
  26. GIGI Dice:

    ME FUNCIONA PERFECTO, PERO A LA HORA DE GUARDAR PARA CERRAR EL ARCHIVO ME SALE DESHABILITAR MACROS, Y CUANDO LO ABRO NUEVAMENTE, YA NO ESTÁ EL MACRO ACTIVADO, COMO PUEDO HACER PARA QUE QUEDE GUARDADO CON EL MACRO Y SIEMPRE ESTÉ FUNCIONANDO?

    Responder
  27. Yeison Dice:

    ¡Wow!, excelente articulo y aporte, es bastante útil, muchísimas gracias.

    Responder
En Gerencie.com está permitido opinar, criticar, discutir, controvertir, disentir, etc., pero debe hacerlo con respeto, sin insultar y sin ofender a otros.

Información legal aplicable para Colombia.

¿Preocupado por su pensión?