miércoles, 12 de marzo de 2008

Poner la hora en una celda

Hoy os presento una utilidad para poner la hora en una celda cualquiera de nuestra hoja de cálculo. En el ejemplo que veréis a continuación, la hora saldrá en la celda A1.

Tan solo tendremos que copiar y pegar este código en un módulo VBA, y ejecutarlo:

Sub reloj()
'Mostramos la hora
ActiveSheet.Range("A1") = Format(Now, "hh:mm:ss")
Application.OnTime (Now + TimeSerial(0, 0, 1)), "reloj"
End Sub

60 comentarios:

  1. Javier, antes que nada felicitarte por tu blog, es una herrmienta muy util para muchos de nosotros.
    Me tomo la libertad de hacerte una consulta, necesito calcular el periodo de tiempo transcurrido desde una fecha a otra expresado con Años, Meses y dias, lo mas exacto posible, ¿que me sugieres?

    ResponderEliminar
  2. Gracias por tu comentario Ernesto.

    Si me lo permites, en una próxima entrega hablaré de esto que me planteas, pero no podrá ser hasta el próximo martes, ya que durante esta Semana Santa no estaré disponible (lunes incluído).

    Espero que puedas esperar unos días :-)

    Un saludo.

    ResponderEliminar
  3. Saludos: Solo quiero saber como puedo poner la hora y fecha en una celda sin que esta cambie cada vez que introduzco un valor a otra celda, por ejemplo en celda A1 tengo Fecha y en celda A2 y A3 Aceptado y Rechazado esta es mi formula =IF(B2="x",NOW(),IF(C2="x",NOW())) que me falta, agradecere tu valioso apoyo, por favor mandame tu respuesta a nec_olv@hotmail.com

    ResponderEliminar
  4. HOLA,
    SOY NUEVO MANEJANDO EXCEL
    Y QUISIERA SABER CUAL ES LA FORMULA PARA PONER LA HORA ACTUAL DE MI SISTEMA EN UNA CELDA DE LA HOJA DE CALCULO, COMO LO HACE LA FORMULA =HOY().
    SALUDOS

    ResponderEliminar
  5. Prueba con esto:

    =AHORA()

    Luego le das a la celda, formato fe hora (Formato --> Celdas... --> Pestaña número --> Seleccionas la categoría hora, y cualquiera de los formatos que allí verás).

    Un saludo.

    ResponderEliminar
  6. Hola hermano: gracias por los datos, pero nomas no me salen. Digo, pongo la hora en la celda =AHORA(), pero hasta que no modifique algo en la hoja, esta hora no se mueve. Hay opcion de que siga tal cual reloj sin hacer nada en una celda?, quiero que siga corriendo el tiempo, no que se congele, hasta que ponga un nuevo dato en otra celda o lo cierre. Gracias

    ResponderEliminar
  7. Hola Daniel.

    Precisamente el macro que se explica en este artículo, hace exactamente eso que pides.

    Saludos.

    ResponderEliminar
  8. Javier, esta macro tiene lo correcto. Gracias!

    Pero todavia tengo una duda, como puedo hacer que para que se active un formulario de excel, cuando sean las 08:00 a.m. ???
    Trato de igualar la hora pero no me sale.
    Estoy poniendo este codigo en el Thiswoork. (corrigeme si me equivoco por favor)

    Private Sub Workbook_Open()

    Call reloj
    Range("a1").Select
    If ActiveCell.Offset(0, 0).Value = 10:24:20 p.m. Then

    Frm_CreditosGeneral.Show

    End If
    End Sub

    Aqui llamo a tu macro "reloj" para que empieze a correr la hora y, en cierta hora que se active el formulario, pero no me salio

    ResponderEliminar
  9. Prueba esto:

    Sub Auto_open()
    'Al abrir el fichero, controlamos la hora,
    'y cuando den las 8:00 am, que se ejecute el macro
    'llamado "mi_despertador"
    Application.OnTime TimeValue("19:58:00"), "mi_despertador"
    End Sub

    Y luego añade este otro macro:

    Sub mi_despertador()
    MsgBox ("Son las " & Time & " en punto. A ver si te depiertas ya!.")
    End Sub

    Al macro Auto_open no le cambies nombre. Se ejecutará al abrir el fichero de excel.

    Cuando abras el fichero, se pondrá en marcha el reloj, y al dar las 8:00 am, se ejecutará el macro que he llamado "mi_despertador".

    Saludos.

    ResponderEliminar
  10. trabajo como copiador de datos, y pierdo muchop tiempo poniendo los dos puntos (:) entre numeros de formato horario en excel
    existe alguna forma de poner 123456 y que se combierta en 12:34:56 automaticamente??me ahorraria muchisimo tiempo,
    gracias

    ResponderEliminar
  11. Puedes hacerlo de una forma muy sencilla. Seleccionas la celda o rango de celdas (grupo de celdas), te vas a Formato ---> Celdas, y seleccionas en la pestaña Número, la categoría Personalizada, y pones esto:

    00":"00":"00

    De esa forma, cuando escribas un nº de 6 caracteres, te los separará en grupos de 2 dígitos, intercalando los dos puntos entre cada grupo.

    De nada :-)

    ResponderEliminar
  12. Exclente gracias por la ayuda

    ResponderEliminar
  13. Estimado amigo muy buenos dias

    mi nombre es Felipe y escribo desde Chile encontre este blog atravez de google y lo encontre exelente.Todo se inicio porque necesitaba poner la hora en una celda excel y lo logre, el problema es el siguiente:

    al bloquear la hora con el siguiente codigo:

    Sub reloj()
    Application.ScreenUpdating = False
    ActiveSheet.Unprotect "xxx"
    ActiveSheet.Range("A1") = Format(Now, "hh:mm:ss")
    Application.OnTime (Now + TimeSerial(0, 0, 1)), "reloj"
    Application.ScreenUpdating = True
    ActiveSheet.Protect "xxx"
    End Sub

    funciona todo perfecto pero al cambiar los segundos la pantalla destella y es un poco molesto, mi duda es se puede poner el reloj pero sin que corrar los segundos??? para que destelle la pantalla solo cada 1 minuto y no cada 1 segundo???

    es bastante extraña la pregunta pero si anotas el codigo en el editor y la accionas te daras cuenta de lo me refiero...

    agradezco tu respuesta saludos cordiales...

    ResponderEliminar
  14. Cambia la línea esta:

    Application.OnTime (Now + TimeSerial(0, 0, 1)), "reloj"

    Por esta otra:

    Application.OnTime (Now + TimeSerial(0, 1, 0)), "reloj"

    De esa forma se te actualizará cada minuto. Si quierse cada 15 segundos, sería así:

    Application.OnTime (Now + TimeSerial(0, 0, 15)), "reloj"

    TimeSerial tiene este formato:

    TimeSerial(horas, minutos, segundos)

    Saludos.

    ResponderEliminar
  15. HOLA A TODOS VEO QUE AQUI HAY PERSONAS QUE SI SABEN DE EXCEL Y NECESITO DE SU AYUDA .
    QUIERO QUE EN UNA CELDA QUE TENGO UN NOMBRE DESPUES DE LAS 10:00 AM SE ME PONGA EN COLOR ROJO.
    SERA QUE ME PUEDEN AYUDAR GRACIAS

    ResponderEliminar
  16. Necesitarás estos 2 macros:

    Sub Auto_open()
    'Lanzamos el macro al abrir el fichero
    Application.OnTime TimeValue("10:00:00"), "poner_color"
    End Sub

    Sub poner_color()
    'seleccionamos la celda a
    'cambiar el color
    Range("A4").Select
    'ponemos el dato en rojo
    Selection.Font.ColorIndex = 3
    End Sub

    Si no sabes donde incluir esos macros, mírate el artículo sobre cómo hacer macros

    Saludos.

    ResponderEliminar
  17. hola gracias por sus aportes
    necesito un favor quiero crear un nuevo documento excel con un nombre deterninado como hago
    segundo quiero abrir un documento de excel como lo hago
    gracias

    ResponderEliminar
  18. Perdon, no tilde la opcion de hacer seguimiento por correo.

    =)

    ResponderEliminar
  19. Bueno y evidentemente no llego mi mensaje anterior...

    Te consultaba para ver si habia alguna manera de sumarle 5hs. a la macro, ya que por razones laborales trabajo con la hora de España (GMT +2)y no con la Argentina (GMT -3)

    Por ahora lo soluciono cambiando la hora del sistema.

    Muchisimas gracias.

    ResponderEliminar
  20. Nuevamente con una consulta sobre esta macro tal cual esta.
    Tengo 3 problemas:
    La macro esta guardada en el libro del documento en donde la uso (no en el PERSONAL) La uso para que el reloj me lo muestre en E16 y la llamo a traves de un Boton de Comando.

    Problema N°1: en cada libro que abro (nuevo o uno guardado) me aparece en E16 el reloj y en todas las hojas...

    Problema N°2: no puedo deshacer ninguna accion. Digamos que el control Deshacer (control+z) esta deshabilitado siempre.

    Problema N°3: no puedo cerrar el libro donde esta la macro corriendo, tengo que cerrar el Excel por completo para poder hacerlo. Al querer cerrar el libro, este, se quiere abrir nuevamente pidiendome si quiero guardar los cambios.
    Se me ocurre que esto se solucionaria con algo que detenga el reloj.

    Muchas gracias y perdon por las molestias.

    ResponderEliminar
  21. Es normal que te escriba eso en todas las hojas de todos los libros, porque en el código fuente, como verás, te aparece la propiedad ActiveSheet, que traducido quiere decir, la hoja activa. Es decir, a cada segundo, se irá mostrando la hora, ...fíjate en el TimeSerial(0, 0, 1), en la hoaj activa, es decir, en la hoja del libro que tengas en primer plano.

    Para solucionarlo, puedes optar por llamar al libro que quieras que contenga ese macro, por ejemplo de esta forma (suponiendo que el libro se llama Libro2, y quieres que la hora salga en la Hoja1):

    Sub reloj()
    'Mostramos la hora
    Workbooks("Libro2.xls").Activate
    Sheets("Hoja1").Select
    Range("A1") = Format(Now, "hh:mm:ss")
    Application.OnTime (Now + TimeSerial(0, 0, 1)), "reloj"
    End Sub

    Ojo, que de esa forma, lo que harás es anteponer o poner en primer plano, y a cada segundo, el Libro2.xls (que debe estar previamente guardado, para que funcione todo correctamente).

    SI lo que quieres es parar el relojito, puedes probar este sencillo macro:

    Sub parar_reloj()
    'paramos el macro llamado "reloj"
    Application.OnTime EarliestTime:=TimeValue(Now + TimeSerial(0, 0, 1)), Procedure:="reloj", Schedule:=False
    End Sub

    Espero que te sirva. Saludos.

    ResponderEliminar
  22. Hola Javier.
    Si me sirvio y anda perfecto!!!


    Muchisimas gracias por tus aportes!

    ResponderEliminar
  23. Perdon nuevamente.
    Me olvide de comentarte.
    La macro funciona genial, pero el boton de PARAR que me pusiste no funciona si yo quiero poner la macro de RELOJ en minutos.
    Osea el TimeSerial (0,1,0)

    Probe todas las combinaciones y no logro hacerlo funcionar.

    Y otra cosa, habra alguna manera de a esta macro sumarle 5 horas por defecto?
    Por ejemplo, si en mi reloj del sistema son las 14:00 que en el reloj de la macro sean las 19:00???

    Muchas gracias!

    ResponderEliminar
  24. Hola.
    Abusando de tu ayuda quisiera que me pudiaras aconsejar

    Tengo el siguiente reloj

    Sub Reloj()
    Hoja1.Range("A2") = Format(Now, "hh:mm:ss")
    Application.OnTime (Now + TimeValue("0:00:10")), "Reloj"
    End Sub

    El problema es que me actualiza la funcion "=ahora()" que tenngo en otras celdas automaticamente en cualquier parte del libro cuando la intruccion dice solamente "A2"

    ResponderEliminar
  25. deseo saber como colocar la fecha y la hora en una celda y que esta quede grabada; es decir que no se modifique por las celdas siguientes y tampoco al abrir el archivo gracias

    ResponderEliminar
  26. Excelente pag. aprediendo un poco excel y se ve grandiosa. Molestando un favor necesito lo mismo que Mauro cuando tenga cierto valor una celda en otra anote la hora y que se quede grabada o registrada ya intente con ahora() hoy() y demás pero se actualizan y eso no me sirve necesito que se quede fijo y una pregunta mas como puedo hacer para que un libro se calcule cada segundo si es posible gracias por todo

    ResponderEliminar
  27. Mírate mi comentario del 16 de septiembre en este artículo: control horario. De ahí puedes sacar lo de dejar fija la fecha y hora.

    Respecto a que una hoja se calcule automáticamente cada segundo, prueba esto:

    Sub Auto_open()
    'Que calcule todo
    Calculate
    'Volvemos a autollamar al macro "Auto_open",
    'a cada segundo
    Application.OnTime Now + TimeValue("00:00:01"), "Auto_open"
    End Sub

    Saludos

    ResponderEliminar
  28. Hola, Gracias, por compartir sus conocimientos, espero me pueda ayudar, con lo siguiente:

    Necesito que se inserte la hora siempre en la columna M pero que sea de la fila que se encuentra el cursor o activa.

    saludos

    ResponderEliminar
  29. Buenos dias necesito de tu gran ayuda y no encuentro la solucion por ningun lado.


    ejecuto esta macro para medir tiempo de atencion en un servicio
    pero el cronometro esta solamente en la celda z9 e inicia con la celda I9 y se detiene con la celda P9.
    necesito que este en las celdas z10 hasta la z33 y que se ejecute con con las respectiva I10,P10... Hasta la I33,P33


    *****(esto va en un modulo)*****

    Public InicialTime As Date
    Public EarlTime As Date

    Sub IniciaCronometro()
    InicialTime = Now
    Cronometro
    End Sub

    Sub DetieneCronometro()
    Application. OnTime EarlTime, "Cronometro", , False
    End Sub

    Sub Cronometro()
    EarlTime = Now + TimeSerial(0, 0, 1)
    Application. OnTime EarlTime, "Cronometro"
    [z9] = Format(Now - InicialTime, "Short Time")
    End Sub

    *****(esto va en la hoja)*****
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target. Address = "$I$9" Then IniciaCronometro
    If Target. Address = "$P$9" Then DetieneCronometro
    End Sub

    te agradesco saludos


    juan carlos

    ResponderEliminar
  30. SALUDOS YA COLOQUE ESTA INFORMACION PERO COMO RESPUESTA ME DA DE ESTA FORMA
    sábado, 00 de enero de 1900 20:18:02
    LA HORA ESTA BIEN PERO LA FECHA NOO. AYUDENMEN PORFAVOR GRACIAS

    ResponderEliminar
  31. Ese macro solo sirve para mostrar la hora en una celda, no la fecha.

    Para que te funcione correctamente, debes darle formato de hora a esa celda, para que solo te muestre la hora, los minutos, y los segundos:

    En Excel 2003: Formato --> Celdas --> Hora

    En Excel 2010: Pestaña Inicio --> Formato --> Formato de celdas --> Hora

    Saludos.

    ResponderEliminar
  32. HOLA Q TAL ANTES QUE NADA MIL DISCULPAS, PERO APENAS EMPIEZO A MANEJAR EL EXCEL PERO AUN NO PUEDO EJECUTAR LA MACRO COMO LE HAGO SERA QUE PUEDAS EXPLICARMELO PASO A PASO!!!!! GRAXIAS

    ResponderEliminar
  33. Para ser un novato con Excel, empiezas demasiado fuerte. No obstante, si quieres aprender a hacer un macro de forma sencilla, pásate por este artículo: mi primer macro en Excel.

    ResponderEliminar
  34. buen dia!

    Javier hice un formulario se llama Userform1 ahi le agregue una etiqueta y lo direccione a la celda donde aparece le reloj, pero al correr el formulario, el reloj se queda estatico. ¿como puedo hacer que el formulario se actualice cada segundo?

    ResponderEliminar
  35. Si no te he entendido mal, quieres poner la hora en una etiqueta de un formulario, ¿verdad?.

    Prueba esto en el Userform:

    Private Sub UserForm_Initialize()
    'llamamos al reloj
    Call reloj
    End Sub

    Y coloca esto en un módulo:

    Sub reloj()
    'Mostramos la hora
    UserForm1.Label1 = Format(Now, "hh:mm:ss")
    Application.OnTime (Now + TimeSerial(0, 0, 1)), "reloj"
    End Sub

    Saludos.

    ResponderEliminar
  36. hola que tal a todos antes que nada les mando un cordial saludo, bueno el motivo de mi vista ha este blog es por que neceito que laguin me ayude a resolver el siguiente problema:
    al igual que la mayoria de ste blog deseo poner en una celda de excel la hora pero que transcurra como si fuese un reloj con hh,mm,ss y que se ejecute automaticamente al abrir mi hoja de excel.....
    se agradece la atencion y ayuda ...
    epero y me puedan ayudar graxias(angel)

    ResponderEliminar
  37. Aparte del macro que has visto en este artículo que acabas de leer, crea este otro (llámalo así, Auto_open):

    Sub Autop_open()
    reloj
    End Sub

    De esa forma, cada vez que abras el libro que contiene los dos macros (Auto_open y reloj), te aparecerá la hora en la celda A1.

    Saludos.

    ResponderEliminar
  38. Hola felicidades por el blog, esta muy bueno tengo una duda con un formula cada vez que registro datos en una fila en la columna J coloco Registrado y en la columna K la fecha que se modifica cada celda de la columna J use est formula:

    =SI(J1149="REGISTRADO", AHORA(), "FALTA")

    pero al dia siguiente ya no aparece la fecha anterior sino la actual hay alguna forma de mantener las fechas anteriores?

    ResponderEliminar
  39. Buenas:
    Tengo tabla en la cual se cubren datos en tres horario distintos porque son 3 turnos de trabajo diferentes. ¿Cómo puedo hacer para que para cada turno se activen unas celdas de escritura, que sólo se puedan escribir durante las horas de duración del turno de trabajo?

    ResponderEliminar
  40. Verónica, mírate este artículo, que creo que algo vas a poder sacar (mucho, casi todo): ejecutar una macro a una hora determinada.

    Saludos.

    ResponderEliminar
  41. Javier buenas tardes

    De antemano felicitaciones pur tu util blog mi problema es el siguiente tenia este comando de visual y me dejo de funcionar, (algo debi cambiar) me sirve para llamar "NOW" cuando cambio valores en la columna C

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Application.Intersect(Target, Target.Parent.Range("C2:C20")) Is Nothing Then Exit Sub

    Application.EnableEvents = False
    Target.Offset(-1) = Now
    Application.EnableEvents = True


    End Sub

    de antemano gracias por tu colaboracion

    ResponderEliminar
  42. Pues acabo de probarlo, y funciona correctamente. Cada vez que cambio un dato del rango C2:C20, en la celda anterior me pone la fecha y hora del cambio.

    Desconozco el porqué ha dejado de funcionarte, si antes sí que lo hacía.

    ResponderEliminar
  43. Javier muchas Gracias

    En efecto probe en un libro nuevo y funciona perfectamente al parecer es problema del libro actual ni idea =)

    Pasare la informacion a un libro nuevo y listo

    Muchas gracias

    ResponderEliminar
  44. Hola, ojala que puedieran ayudar lo que sucede es que necesito una macro que me convierta esta cadena de caracteres (1111-11-11 121:491:27
    ) en formato fecha como se muesta aqui (11:48:26
    ) agradecere su ayuda.

    Saludos y Gracias.

    ResponderEliminar
  45. Saludos, Soy Enzo y pido ayuda por favor. En una planilla excel, al ingresar el nombre de un proveedor (ej. A) y el valor 0% en otra celda, necesito que en una tabla busque al proveedor ingresado y anote la fecha en que se ingresó este valor. Luego, si otro día se vuelve a ingresar 0% para el mismo proveedor, entonces que en la celda siguiente, anote la nueva fecha de este registro, obteniendo así en 2 celdas distintas las fechas con 0% de cumplimiento del proveedor.

    Muy agradecido, Enzo.

    ResponderEliminar
  46. Buenas

    Tengo un problema, me gustaría que al rellenar una celda se me pusiese automáticamente en la celda de la derecha la hora exacta que se ha rellenado esta celda ¿alguien sabe como podría realizar esto? es para realizar un especie de fichero para controlar horarios de personal a trabes de códigos de barras.

    Gracias por las aportaciones. Un saludo.

    ResponderEliminar
  47. S.O.S hola Javier.. necesio de tu ayuda.. resulta que tengo un problema.. te cuentoo: tengo un archivo de excel con botones en visual q conectan todas las hojas, y el archivo me ha quedado muy bien (creo) el problema es que cuando abro el documento los botones y todo lo realizado en visual pasa a imagen.. que puedo hacer?

    ResponderEliminar
  48. Hola Javier, gracias por tu información. Mi necesidad es tener un archivo donde cada vez que escriba un dato en la columna B, la columna A se actualice sin cambiar la hora de las columnas de arriba.
    Es para un formato de ventas donde cada vendedor tiene acceso y necesito controlar sus entradas.
    Me puedes ayudar y decirme cómo lo puedo hacer?
    Muchas gracias.

    ResponderEliminar
  49. Pásate por este artículo, para aprender el funcionamiento de las macros: Mi primer macro en Excel.

    Luego te bastará copiar y pegar este código en la hoja que quieras controlar (no en ThisWorkbook, sino en la hoja que se trate):

    Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    On Error Resume Next
    If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
    ActiveCell.Offset(0, -1) = Now()
    ActiveCell.Offset(0, -1).NumberFormat = "[$-F400]h:mm:ss AM/PM"
    ActiveCell.Offset(0, -1).Copy
    ActiveCell.Offset(0, -1).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    ActiveCell.Offset(0, 1).Select
    End If
    Application.ScreenUpdating = True
    End Sub

    De esa forma, cada vez que escribas algo en la columna B, a la izquierda de la celda aparecerá la hora (en realidad la fecha y hora, pero como está en formato hora, solo ves la hora, a no ser que te sitúes sobre la celda). Aunque añadas datos, los datos preexistentes mantendrán su hora (si no cambias alguno de los datos de la columna B, claro).

    Saludos.

    ResponderEliminar
  50. hOLA YO NO QUIERO QUE SE MODIFIQUE LA HORA AUTOMATICAMENTE COMO HAGO ESO???

    ResponderEliminar
  51. Lee mi respuesta anterior a Greicy Vela, para hacerlo de forma automática.

    Otra opción más sencilla, es pulsando Ctrl + ; (tecla control, y sin soltarla, pulsas el punto y coma). De esta forma te aparecerá la fecha de hoy y será inamovible, aunque actualicesla hoja, otro día.

    Saludos.

    ResponderEliminar
  52. Bueno pues es una buena ayuda pero quisiera saber como hacer algo similar pero para la hora me podrías ayudar con eso?? pero por lo anterio gracia también

    ResponderEliminar
  53. Como en mi comentario anterior, pero en lugar de Ctrl + ; prueba con Ctrl + : (tecla control y sin soltarla, pulsa los dos puntos).

    Saludos.

    ResponderEliminar
  54. hola amigos lo de que se abra un archivo a cierta hora funciona genial pero como lo hago para abrirlo a una "fecha" determinada?

    ResponderEliminar
  55. hola, he puesto este codigo en un libro que se llama ventas
    Sub reloj()
    'Mostramos la hora
    Workbooks("ventas.xlsm").Activate
    Sheets("record").Select
    Range("A1") = Format(Now, "hh:mm:ss")
    Application.OnTime (Now + TimeSerial(0, 0, 1)), "reloj"
    End Sub

    y funciona el reloj muy bien, pero al querer pasarme a otra hoja del libro me regresa a la primera o sea a record, como puedo solucionar esto para poder trabajar en el rsto de las hoja

    ResponderEliminar
  56. Hola amigos, necesito saber como hacer para que cuando cambie el valor de una celda en otra me ponga la fecha y hora, esto lo estoy haciendo con la funcion ahora(), pero resulta que cada vez que cambio un valor me actualiza todas las celdas que tienen esta funcion al mismo tiempo. lo que necesito es que cambie la celda asociada al la celda que estoy cambiando el valor solamente. mi mail es walter.comito@gmail.com. muchas gracias

    ResponderEliminar
  57. Hola que tal:

    Espero me pueda ayudar alguien; Requiero que en una celda de excel al vencerse un tiempo se ponga de color rojo o algun otro con el texto "vencido" o "checar" pero a su vez que haya otra celda que tenga el tiempo de duración, es para aplicar un monitoreo y por ejemplo celda A4 se le da 8 y en celda B6 se inicie un contador de tiempo que al pasar los 8 minutos o el valor de A4 se ponga como digo en rojo y/o con un mensaje de aviso.

    ResponderEliminar
  58. Hola, me pueden ayudar, encontre esta macro la cual me sirve mucho, pero al aplicarla no funciona correcta, me pueden indicar donde escribir las macros para que funcione, dejo mi correo cris.danes@gmail.com muchas gracias. ahhh excelente pagina los felicito a todos

    Sub Auto_open()
    'Al abrir el fichero, controlamos la hora,
    'y cuando den las 8:00 am, que se ejecute el macro
    'llamado "mi_despertador"
    Application.OnTime TimeValue("19:58:00"), "mi_despertador"
    End Sub

    Y luego añade este otro macro:

    Sub mi_despertador()
    MsgBox ("Son las " & Time & " en punto. A ver si te depiertas ya!.")
    End Sub

    Al macro Auto_open no le cambies nombre. Se ejecutará al abrir el fichero de excel.

    Cuando abras el fichero, se pondrá en marcha el reloj, y al dar las 8:00 am, se ejecutará el macro que he llamado "mi_despertador".

    Saludos.

    23 de marzo de 2009 20:00

    ResponderEliminar
  59. Para aprender a hacer un macro, mírate esto: mi primer macro en Excel.

    Saludos

    ResponderEliminar