Uso de navegador web mediante macro VBA

Resuelto
tchernosplif Mensajes publicados 714 Estado Miembro -  
tchernosplif Mensajes publicados 714 Estado Miembro -
Hola,

Intento copiar/pegar una página de internet en Excel conservando su diseño.

Si abro la dirección en Excel, obtengo el código HTML.

Sería necesario abrir una página web (URL en la celda F23) en Firefox (por ejemplo) mediante una macro, selecciono y copio todo el contenido de la página y lo pego en Excel (pegado especial / valores en la celda G18); de modo que no queden las etiquetas HTML.

De hecho, me sería difícil volver a filtrar la información a partir del código HTML.

¿Sabes cómo hacer esto en VBA?

Resumen:
En Excel
- copiar la celda F23 (dirección de internet)
- abrir la dirección copiada en un navegador (Firefox en mi caso)

En Firefox (sendkeys)
- seleccionar todo el contenido de la página (Ctrl+A)
- copiar el contenido seleccionado (Ctrl+C)

en Excel
- pegar especial / valores en la celda G18

~Quizá habrá que cerrar la ventana de internet para evitar abrir demasiadas, ya que este macro va a ejecutarse en bucle~

Configuración: Windows XP / Firefox 7.0.1

2 respuestas

  1. eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
     
    Hola,

    Tu página web no es accesible a través de 'datos / datos externos / nueva solicitud en la web...' ? (en 2003)
    Así obtienes parte o toda la página en una hoja, que puedes actualizar automáticamente.

    ejemplo de solicitud web simple
    Solicitudes web múltiples

    eric

    edit: el segundo ejemplo funcionaba en la época de su creación. Las páginas quizá hayan cambiado su estructura, pero el principio de la macro sigue siendo el mismo...
    0
    1. eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
       
      edit2: para el segundo ejemplo:
      - clic derecho sobre los datos de la Hoja1,
      - 'modificar los datos'
      - marcar en la esquina superior izquierda para recuperar toda la página (ya no es posible recuperar solo el bloque de datos deseado)
      Por supuesto, los datos deseados han cambiado de ubicación en la Hoja1

      eric
      0
    2. tchernosplif Mensajes publicados 714 Estado Miembro 249
       
      Hola Eric,

      No conocía esa función.
      En el archivo n°1, no logro pegar la dirección a visitar (Ctrl+V no funciona)
      Además la ventana se abre en search.conduit.com, tengo la impresión de haber pescado algo dudoso.
      En el archivo N°2, recupero el código HTML
      Voy a intentar profundizar mis investigaciones al respecto.

      Por ahora así es como se ve mi código

      Sub Aspirine()

      'habría que reemplazar http://www.turlututu.com por la dirección en la celda F23

      Shell("C:\Program Files\Mozilla Firefox\firefox.exe http://www.turlutututu.com", vbNormalFocus)

      'la página de Firefox se abre bien

      'Selecciona todo - Ctrl+a - probablemente sea incorrecto
      SendKeys "^(a)", True

      'Copiar - Ctrl+c - probablemente sea incorrecto
      SendKeys "^(c)", True

      Application.Wait (Now + TimeValue("0:00:01"))

      Windows("monfichier.xls").Activate

      Application.Wait (Now + TimeValue("0:00:01"))

      Range("G18").Select
      Application.CutCopyMode = False
      ActiveSheet.PasteSpecial Format:="Texte", Link:=False, DisplayAsIcon:= _
      False
      End Sub
      0
  2. eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
     
    Hola,

    En el archivo n°1, no logro pegar la dirección a visitar (Ctrl+V no funciona)
    Haz un clic derecho en los datos (Hoja1!B3) y luego "modificar la consulta..."
    El Ctrl+V funciona en la barra de direcciones, ahora no se abren todos los sitios necesariamente.
    Además la ventana se abre en search.conduit.com, tengo la impresión de haber conseguido algo mal.
    ¿Es la dirección la que es incorrecta?

    Lo mejor sería conocer tu enlace y la zona que te interesa para confirmar si puedes pasar por ahí.

    eric
    0
    1. tchernosplif Mensajes publicados 714 Estado Miembro 249
       
      Entendí mi error: si copio directamente la celda, Ctrl+V no funciona, pero si copio la URL en la barra de fórmulas, entonces Ctrl+V sí funciona.

      Curiosamente obtengo el código HTML de la página, aunque he intentado marcar y desmarcar todas las opciones de maquetación...
      0
    2. eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
       
      Normalmente deberías tener:
      - o bien nada: ninguna flecha amarilla es marcable en la página web
      - o bien solo el texto (elige 'sin formato')

      Pásame tu enlace (por privado si lo prefieres) para que lo eche un vistazo...
      0
    3. eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
       
      Efectivamente hay etiquetas (tal vez debido a la redirección).
      Solo te queda buscar tus datos dentro ajustándote a cadenas que siempre estén presentes y eliminando lo innecesario.
      Si pones solo la URL final, solo obtendrás el texto. Por otro lado, ccm es uno de los sitios donde solo puedes tomar la página completa.

      eric
      0
    4. tchernosplif Mensajes publicados 714 Estado Miembro 249
       
      no es una redirección, sino información parseada en php.

      lo tengo claro: recuperar los datos dentro del html, pero eso alargaría muchísimo el procedimiento. En efecto, en lugar de abrir una página que contiene todas las infos, estaría obligado a abrir la página título, la página categorías, la página turlututu ...y importarlas en distintas columnas porque el contenido de estas páginas (el número de filas) es variable.

      ¿realmente es tan descabellado querer usar Sendkeys?

      De lo contrario tengo una alternativa con el software supermacro, pero intento desintoxicarme ^^
      0