Staging ::: VER CORREOS
Acceder

Trucos y tretas en Excel VBA para programadores - Automatizar navegacion web con Twebst

Si eres de los que tiene que repetir tareas en aplicaciones web una, y otra, y otra vez, un trabajo que no es ineficiente realizarlo manualmente, sino inhumano, tal vez quieras crear una macro en Excel VBA que te permita navegar de manera automática.

Para ello hay varias herramientas, pero en este post cubriré Twebst.  Cubriré tres aspectos:

  • Instalación
  • Configuración
  • Grabación de scripts para VBA

Instalación

  • Ve al sitio web de codecentrix.
  • Pincha el botón "Download".
  • Pincha el archivo EXE para descargar.
  • Una vez descargado ejecuta el instalador.

Configurando el libro de Excel

Para cada libro de Excel en que vayas a usar código de twebst debes hacer esto:

  • Estando en Excel con el libro abierto, presiona Alt F11 para desplegar el editor de código.
  • Ve a Tools > References
  • Asegurate de que la referencia a Open twebst esté marcada.

Grabando script para VBA

  • Abre el programa Twebst

     
  • Digita la dirección web del sitio que vas a acceder en el browser de Twebst.

     
  • El programa abre con dos ventanas. En la otra ventana selecciona VBA y pincha Start Rec para iniciar la grabación del script.

     
  • Efectua las tareas que desees.en el navegador
  • Pincha Stop Rec para detener la grabación.  Verás el script,

He ingresado a Google y he buscado e ingresado al sitio web de Rankia en el siguiente script de VBA usando Twebst.

Me ha parecido que Twebst crea scripts simples, y sirve como una buena introducción para hablar de automatización web.

Si no te gusta usar Twebst para automatizar navegación web, porque no lo encuentras muy flexible, puedes usar otras herramientas como Selenium.  Me ha parecido apropiado empezar con Twebst, porque creo que sirve mucho para encontrar los nombres de los nodos de XML que usaste al navegar.  El tema de nodos de XML no es un tema muy fácil para principiantes.  No es que no se pueda aprender, pero para programadores principiantes que no conozcan sobre web, puede ser un poco complicado.

El asunto es que las páginas web se organizan en "nodos" que se ramifican, como los directorios de un disco duro.  Cada campo de texto, botón y otros controles, corresponde a un nodo con una "ruta".  No voy a ampliar mucho aquí sobre el tema. En todo caso si deseas aprender sobre XML puedes acceder a XML Tutorial.

Existen otras herramientas para automatización en VBA, como Selenium, que si bien ofrece mayor flexibilidad, no está apropiadamente documentado, y sólo vas a encontrar código Java para Selenium, que no se traduce muy literalmente a VBA, por lo que tratar de encontrar código equivalente no va a ser demasiado fácil.  Por el momento Twebst debería servir para despertar la curiosidad sobre el tema.

Voy a ver si en el futuro escribo sobre Selenium, pero eso tomaría mucho tiempo.

Refrexiones sobre la automatización

He estado analizando el tema de la automatización y el empleo, y he llegado a la conclusión de que hay tareas que son muy repetitivas, que agregan poco valor a las empresas en virtud del esfuerzo y concentración que requieren, y poner a una persona a efectuar dicha tarea no sería ineficiente, sino inhumano.

Imagina una persona teniendo que depurar o revisar un reporte de Excel con 20 mil lineas.  Imagina tener que buscar información de 5000 productos en la web de una empresa para obtener ciertos datos, para llenar una hja de Excel.  Eso es simplemente inhumano y la tasa de error es muy alta.

Realmente si una persona no tiene una labor que sea intensiva en labores inhumanas, es que su empleo sí agrega valor.  Lo bueno es que si antes la persona hacía el trabajo manual, ahora puede automatizarlo y dedicarse a aprender formas de hacer más con los mismos recursos.  No es necesario un despido, a menos claro que su trabajo sea de copy/paste hasta el infinito.

He postergado los posts de automatización porque he querido estar seguro de que esto no fuera a dejar a nadie sin empleo.  Queda abierto el debate.

 

6
¿Te ha gustado el artículo?

Si quieres saber más y estar al día de mis reflexiones, suscríbete a mi blog y sé el primero en recibir las nuevas publicaciones en tu correo electrónico.

  1. en respuesta a Cassap
    -
    Top 100
    #7
    23/07/20 01:01
    Las macros de Google no son como las de Excel.
  2. en respuesta a Comstar
    -
    Nuevo
    #6
    22/07/20 21:44
    Gracias, entiendo poco a primera vista, pero si perece que me va a servir, lo único es que me equivoque, es desde google shets no desde exel.
    de cualquier modo Muchas gracias
  3. en respuesta a Cassap
    -
  4. Nuevo
    #4
    21/07/20 03:51
    Necesito  ayuda, yo estopo en un trabajo asi, y quiero automatizar una tarea que yo veo un tanto "simple" y me lleva mucho tiempo:
    De un exel, tengo: Navegador (crome, edge, firefox), direccion (una api de wattsapp) y mensaje.
    Debo entrar a ese navegador, a esa direccion, y enviar ese mensaje (via Wattsapp web)
    una vez hecho eso, asignar a otra celda que esta junto, el valor "contactado"
    y vamos al renglon de abajo. 
    asi unas  80 veces al dia.
    Y quiero hacer mejor uso de mi ti tiempo que Ctr+C, Ctr+v, Alt+Tab, y esperar que carguen las pantallas.
    Si me pueden ayudar estaria muy agradecido. 
  5. en respuesta a Rolugar
    -
    Top 100
    #3
    07/09/15 15:09

    Puedes tratar de hacer más y más. Pero al final la idea es hacer menos y menos, porque si tus prácticas de programación son buenas, tu software será "bug free" y además vas a tener código al que no le va a importar muchos los cambios, porque con pequeñas modificaciones o sin modificaciones, se adaptará a condiciones cambiantes en el proceso. Trata de ser el peor usuario cuando programas, porque cuando haces de peor usuario, haces el mejor software. Lo ideal es que todo esté a menos de 2 clicks de distancia. Más que las herramientas, lo importante es lo que acabo de decir.

  6. Nuevo
    #2
    06/09/15 17:44

    Me quito el sombrero, excelente aporte, llevo cerca de un año aprendiendo a programar en VBA y es algo que se vuelve adictivo, cada vez quieres automatizar mas tareas y el tema de extraer información específica de la web es simplemente escencial y súper oneroso, dedicó bastante tiempo simplemente en formatear la información de HTML a mis necesidades haciéndolo a mano. Seguiré tu tutorial y ojalá nos puedas seguir compratiendo este tipo de herramientas


Definiciones de interés