Uso de navegador web mediante macro VBA
Resuelto
tchernosplif
Mensajes publicados
714
Estado
Miembro
-
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
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
-
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...-
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 -
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
-
-
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-
-
-
aquí tienes un ejemplo de enlace ;-) http://www.film-stream.net/tout.php?url=http://www.commentcamarche.net/communaute/profil-eriiic
-
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 -
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 ^^
-