Grabar fecha y hora cuando se ingresa un dato en Excel

Inicio » Excel para contadores. » (17 / 07 / 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.

Recomiéndanos en

Google+ Facebook Twitter
Gerencie.com en su correo
(Gratis - Reciba diariamente nuestras novedades en su correo)

Siéntase libre de opinar

69 Opiniones
  1. Nery dice:

    Se agradece!

  2. DIANA CAROLINA ROMERO CUBIDES dice:

    EXCELENTE ¡¡¡¡ justo lo que estaba buscando

  3. Sergio dice:

    Muchas gracias. Excelente ! El aporte de Julian fué determinante para que se guarde.

  4. tatiana dice:

    hola tengo un archivo en excel con usuarios y contraseñas, me gustaria algo parecido a la fecha pero que tambien me ponga el nombre del usuario que la modifico, es posible?

    no tengo ni idea de como hacerlo
    gracias

  5. RODRIGO dice:

    Hola, como hago para esta misma pero con 3 columnas?
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("C:C")) Is Nothing Then
    Range("A" & Target.Row) = Date
    Range("B" & Target.Row) = Format(Now, "hh:mm")
    End If
    If Not Application.Intersect(Target, Range("I:I")) Is Nothing Then
    Range("G" & Target.Row) = Date
    Range("H" & Target.Row) = Format(Now, "hh:mm")
    End If
    End Sub

  6. Pablito dice:

    Para el que quiera ejecutar esto para dos columnas encontre la combinacion del codigo:
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("C:C")) Is Nothing Then
    Range("A" & Target.Row) = Date
    Range("B" & Target.Row) = Format(Now, "hh:mm")
    End If
    If Not Application.Intersect(Target, Range("I:I")) Is Nothing Then
    Range("G" & Target.Row) = Date
    Range("H" & Target.Row) = Format(Now, "hh:mm")
    End If
    End Sub

    Así si usted inserta un DATO en la casilla C e I independientemente se modificara en A y B o G y H
    Esto lo escribo bien choro saludos :B

  7. CARLOS dice:

    Agradecido de antemano, va perfecto, pero al cerrarlo y abrirlo, ya no funciona,
    Hay alguna manera de que se quede grabado, lo intente de varias maneras y nada!!!
    saludos y gracias...

  8. Rodolfo dice:

    Muy bueno, me funciona bien hasta que cierro el archivo. Cuando lo vuelvo a abrir no se ejecuta. La formula sigue guardada en "ver codigo". Al archivo lo estoy guardando con la opcion "Libro de excel habilitado para macros". No se donde esta el inconveniente. Agradeceria una ayuda.

    • Pablo dice:

      Eso te sucede porque tenes que grabar el archivo como 2macro-enabled workbook (.xlsm)

      • Rodolfo dice:

        Pablo, el archivo lo estoy guardando en macro *.xlsm.
        Cierro el archivo y lo vuelvo a abrir y no se ejectura el codigo, sin embargo el codigo esta cargado en el archivo. No le encuentro la vuelta. Gracias.

        • Julian dice:

          Me pasaba lo mismo!!, acabo de darle un poco vueltas al asunto y encontre la solucion. debes tener desabhilitadas los macros. por defecto en office viene asi, es una cuestion de seguridad. lo que tenes que hacer es ir al boton de inicio del excel, entrar a opciones de excel, luego en la opcion centro de confianza y una vez ahi presionar el boton de configuracion del centro de confianza. se te va a abrir una ventana nueva donde vas a tener la opcion de configuracion de macros a la izquierda, haces click ahi y tenes varias opciones para seleccionar. hay una que habilita todas las macros, pero es algo inseguro. lo conveniente es seleccionar la primera opcion y luego ir a la seccion ubicaciones de confianza, que se encuentra tambien a la izquierda, arriba de configuracion de macros y agregar como ubicacion la carpeta donde se encuentra tu archivo. y listo.
          puede ser que tengas que cerrar y abrir el documento nuevamente para que funciones.
          saludos!

  9. Sergi dice:

    Hola. Estoy intentando hacer algo parecido, pero sin que sea por columnas enteras, es decir: que si pongo una X en la celda "K6" en la celda "J7" se ponga la fecha de ese momento y además que no se actualice. Después continuaré con otras celdas salteadas como: X en "K10" y fecha en "J11"...
    Le he dado varias combinaciones, pero no me sale bien, cuando pongo la X no pasa nada.
    Gracias.

  10. oscar andrade dice:

    SUPER!! estoy usando esto para hacer un data logging en MS EXCEL de pesos recibidos desde un indicador Avery Weigh Tronix E1010. La función AHORA() se actualizaba cada vez que se recibía un dato, no sirviendo para el propósito requerido que era el registro de fecha y hora a la que se recibió el INPUT. Esta macro funcionó de película. Muchas Gracias!

  11. duri dice:

    Sencillo y efectivo, simplemente excelente. Gracias!!!

  12. Darwin dice:

    Hola Oye mi amigo muchas Gracias por tu ayuda !! me fue de mucha ayuda!

    Muchas Gracias Eres Genial

  13. Fernando dice:

    Excelente macro! de mucha ayuda, ahora una consulta, como puedo obtener el mismo resultado pero que al pegar un rango de datos, los mismos autocompleten la fecha que se pegaron, desde ya muchas gracias

  14. David dice:

    Buenos dias queria saber como hago para guardarlo ya que cuando cierro el archivo y lo vuelvo a abrir no sale nada

  15. Alma Delia teutle Mendieta dice:

    intente ejecutar el código en excel de google drive y me dice que en la primera linea me hace falta un punto y coma y se lo pongo y no lo ejecuta me podrïa ayudar por favor

  16. alex dice:

    muy bueno pero una consulta como haría para bloquear la celda b y c del ejemplo dado anteriormente gracias por la respuesta

En Gerencie.com está permitido opinar, criticar, discutir, controvertir, disentir, etc. Lo que no está permitido es insultar o escribir palabras ofensivas o soeces. Si lo hace, su comentario será rechazado por el sistema o será eliminado por el administrador. Por último, trate de no escribir en mayúscula sostenida, resulta muy difícil leerle.