[TUTORIAL] Excel VBA: Crear Timers y Programar/Automatizar la Ejecución de Tareas

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ก.ค. 2024
  • Aprende todo sobre como crear un 'timer' en Microsoft Excel mediante VBA, como utilizarlos para programar tareas en tus programas y todo lo que tenes que saber acerca de estos para su correcta utilización.
    Conceptos utilizados:
    - Función Now y como obtener la fecha y hora en tiempo de ejecución
    - Función TimeValue para adicionar horas, minutos o segundos a un tiempo determinado
    - Método Application.OnTime y como programar y cancelar tareas
    - Tipo de variable Date
    - Eventos Open y BeforeClose del objeto ThisWorkbook
    💻 Github - Descarga el archivo final
    github.com/alefranzoni/vba_cu...
    🔹 Personal webpage:
    www.alejandrofranzoni.com.ar/
    🔹 LinkedIn:
    / alejandrofranzonig
    🔹 Twitter:
    / alefranzonidgk
    🔹 Instagram:
    / alefranzoni
    ☕ ¿Estás disfrutando de este contenido? ¡Podés ayudarme mucho a seguir creando este tipo de contenido invitándome un cafecito! Si residís fuera de la Argentina, también podés apoyarme mediante PayPal.
    cafecito.app/alefranzoni
    www.paypal.com/donate/?hosted...

ความคิดเห็น • 25

  • @josuesolano4669
    @josuesolano4669 2 หลายเดือนก่อน

    Super buena explicación, veo buen número de visitas pero no likes. Agradezco tu ayuda bro :)

    • @alefranzoni
      @alefranzoni  2 หลายเดือนก่อน +1

      Gracias por el apoyo, me ayuda un montón a seguir trayéndoles contenido. ¡Saludos!

  • @fiorelhlo
    @fiorelhlo 2 ปีที่แล้ว

    Excelente iniciativa... hay muy pocos canales que enseñen VBA en Excel. Mucho éxito!!!

    • @alefranzoni
      @alefranzoni  2 ปีที่แล้ว

      ¡Muchas gracias por tu comentario! De a poquito vamos a ir sumando temas interesantes a esta lista de tutoriales. Saludos.

  • @hectormauriciochaconarcia7496
    @hectormauriciochaconarcia7496 2 ปีที่แล้ว

    Gracias por compartir tus conocimientos!

    • @alefranzoni
      @alefranzoni  2 ปีที่แล้ว +1

      Muchas gracias por tu comentario Hector, la verdad que para mí es un gusto y aún más si les puede ser de utilidad. Saludos.

  • @user-ir3wi6qi1x
    @user-ir3wi6qi1x 7 หลายเดือนก่อน

    Justo lo que necesitaba. Muchas gracias

    • @alefranzoni
      @alefranzoni  7 หลายเดือนก่อน

      Me alegro, que lo disfrutes!

  • @ricardozuniga4153
    @ricardozuniga4153 ปีที่แล้ว

    Excelente Video, una consulta.. te agradecería mucho tu apoyo, si quisiera ejecutarlo todos los días a una misma hora, como podría hacerlo?

    • @alefranzoni
      @alefranzoni  ปีที่แล้ว +2

      Hola Ricardo, cómo estás? Muchas gracias por tu comentario, me alegro de que te haya gustado. En cuanto a tu consulta, lo que podrías hacer con este método es ejecutarlo al horario que te gustaría que se ejecute todos los días, valga la redundancia, y en el TimeValue ponerle 24 horas. De esa manera, la primer ejecución sería al día siguiente y así consecutivamente.
      Lo que tiene de negativo hacerlo de esta manera es que deberías tener siempre abierto el libro con las automatizaciones para que se ejecuten correctamente, por lo tanto, como alternativa te sugiero que mires este video (th-cam.com/video/5PsIjnEZqqU/w-d-xo.html) donde explico cómo enviarle argumentos a un Excel y abrirlo desde un archivo externo. Entonces, lo que vas a poder hacer es enviarle un argumento que, si tu libro lo recibe al abrirse, por ejemplo, ejecute el código que tú quieras y luego se cierre (esto último es opcional, pero te recomiendo así no queda abierto). Luego simplemente con el programador de tareas de Windows puedes configurar para que tu archivo externo se ejecute todos los días al horario que tú desees y listo! De esta manera, no vas a necesitar tener el libro abierto todo el tiempo y el programador de tareas se encargará de ejecutar el archivo externo, el cual a su vez abrirá tu libro de Excel y correrá tu automatización.
      Saludos.

  • @daniellandin4295
    @daniellandin4295 2 ปีที่แล้ว +1

    hola, quiero poner una imagen y que apareza y desaparezca con un tiempo establecido,.. se puede¿?

    • @alefranzoni
      @alefranzoni  2 ปีที่แล้ว +2

      Hola, si, por supuesto que se puede. Lo que tenes que hacer en primer lugar es darle un nombre a tu imagen para poder manipularla desde el código, para esto tenes que seleccionar la imagen, dirigirte al NameBox, ubicado a la izquierda de la barra de fórmulas, y una vez posicionado en tu imagen, darle el nombre que quieras. Ya con la imagen identificada podés manipular su estado de visibilidad utilizando la siguiente línea de código (cambiando la información de la hoja y el nombre de tu imagen):
      ThisWorkbook.Sheets(1).Shapes("example").Visible
      [donde Sheets(1) es la hoja que contiene la imagen "example"]
      Esta propiedad puede tomar el valor de msoTrue (-1) o msoFalse (0) [Visible/No Visible]
      Con esta información, deberías manipular el timer para que aparezca y desaparezca como quieras y te aconsejo agregar un contador para que lo haga una cantidad determinada de veces y no indefinidamente.
      Espero que haya quedado claro, si no, avísame que te subo un ejemplo de como deberías hacerlo. Saludos.

    • @daniellandin4295
      @daniellandin4295 2 ปีที่แล้ว

      @@alefranzoni si un ejemplo me vendria bien!! muchas gracias!

    • @alefranzoni
      @alefranzoni  2 ปีที่แล้ว

      @@daniellandin4295 Perfecto, no hay problema. En estos días, en cuanto tenga un tiempo, preparo algún ejemplo para que lo puedas ver 😉. Saludos.

    • @vladossrr
      @vladossrr ปีที่แล้ว

      Hola a todos. Tengo una pregunta. Necesito ejecutar al mismo tiempo 15 timer en cuenta regresiva, de 4 a 0 horas con 4 alertas por hora, pero solo me deja ejecutar 1 por hoja. Sabrán cómo puedo corregir eso?

    • @alefranzoni
      @alefranzoni  ปีที่แล้ว

      @@vladossrr Hola, ¿cómo estás? Corrígeme si te entendí mal, pero lo que estás queriendo hacer es ejecutar varios timers simultáneos en un mismo libro de excel y cada uno realice su acción? Si es así, confirmame que te paso un ejemplo de como lo podrías hacer y sino, te pido un poco más de detalle en tu problema para poder ayudarte.
      Saludos.

  • @adanperezchacon8257
    @adanperezchacon8257 ปีที่แล้ว

    Buen dia Ale
    Tengo una duda, cuando estoy programando en mi excel, se ejecuta el codigo pero me sale este mensaje "Microsoft Excel is waiting for ‘Critical Material List’ to complete an OLE Action" ya que cuando SAP esta cargando la informacion antes de mostrarla para procederla a descargar. Este metodo me serviria? Ya que el mensaje que arroja me da opcion de Aceptar/Swith to/Cancelar, tengo que estar dandole manualmente Aceptar para que continue con el proceso de descargar el archivo, de lo contrario nunca lo descargara.
    La verdad te agradeceria mucho si puediras ayduarme.

    • @alefranzoni
      @alefranzoni  ปีที่แล้ว +1

      Hola Adan, cómo estás?
      Me podrías dar un poco más de contexto y detalles de que estás queriendo realizar y como? Para poder ayudarte mejor. Espero tus comentarios.
      Saludos.

    • @adanperezchacon8257
      @adanperezchacon8257 ปีที่แล้ว +2

      @@alefranzoni
      Hola, Ale bien muchas gracias y tu?
      Bien mira, dejeme explicarte mas a detalle:
      Lo que pasa es que cuando ejecuto la Macro (Para que me arroje y decargue la consulta SAP), si la consulta contiene mucha informacion, SAP me arroja ese mensaje de:
      "Microsoft Excel is waiting for ‘Critical Material List’ to complete an OLE Action"
      En este caso, "Critical Material List" es mi hoja donde tengo el codigo, el cuadro dialogo me da opciones de "Ok","Swith to", "Cancel", si doy clic en OK o no le doy, el proceso continua sin problema, sin embargo cuando la macro termina la consulta y tiene que descargarlo a excel, no lo hace, hasta que de clic en OK. de lo contrario no terminara el proceso.
      Esto sucede cuando la consulta es muy extensa o pesada (Mucha informacion), si se pasa de 1 minuto aproximadamente la consulta, entonces sale esa ventana emergente, si la consulta es rapida, no aparece.
      Nose como poner el codigo para ese mensaje y que si sale de clic en la opcion de "Ok", si yo tener que dar clic, o nose si me falte algo del codigo.
      Pudiera contactarte por correo? para mandare evidencia o video.Realmente apreciaria tu ayuda si es posible.
      Muy amable, por tu tiempo, Muchas Gracias.

    • @alefranzoni
      @alefranzoni  ปีที่แล้ว +1

      @@adanperezchacon8257 Perfecto Adan, creo que entendí que es lo que te está pasando, pero si pudieras enviarme el video por mail para verlo mejor estaría genial. Puedes obtener mi email de mi perfil (www.youtube.com/@alefranzoni/about ). Espero tu correo y seguimos por esa vía para poder ayudarte.
      Saludos.

    • @adanperezchacon8257
      @adanperezchacon8257 ปีที่แล้ว +1

      @@alefranzoni buen día te he enviado los videos desde mi cuenta de iCloud :) nos estamos viendo por correo.
      Muchas gracias :)

    • @alefranzoni
      @alefranzoni  ปีที่แล้ว

      @@adanperezchacon8257 Genial Adan, en cuanto pueda lo miro y seguimos por ese medio. Saludos.