Visual Basic para Aplicaciones - extraer datos web desde VBA Excel

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 14
Ha disminuido su posición en 2 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

extraer datos web desde VBA Excel

Publicado por Luis (5 intervenciones) el 06/05/2020 04:45:17
Hola

Quisiera extraer información desde una pagina web, ya tengo código para extraer el mes actual. sin embargo necesito traer información de de otros meses y no se como enviar esos parámetros a mi consulta.

Agradezco anticipadamente el apoyo que me brinden


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub Actualiza_Comision()
 
Dim hj As Worksheet
Dim utablas As QueryTable
Dim url As String
 
url = "http://www.sbs.gob.pe/app/spp/empleadores/comisiones_spp/Paginas/comision_prima.aspx"
 
Set hj = Worksheets.Add
hj.Name = "prueba"
 
Set utablas = hj.QueryTables.Add(Connection:="url;" & url, Destination:=Range("a1"))
 
With utablas
    .Name = "Consultas"
    .RefreshOnFileOpen = True
    .BackgroundQuery = False
    .WebFormatting = xlWebFormattingNone
    .WebSelectionType = xlSpecifiedTables
    .WebTables = 3
    .Refresh
End With
 
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 14
Ha disminuido su posición en 2 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

extraer datos web desde VBA Excel

Publicado por Luis (5 intervenciones) el 22/05/2020 02:06:21
aun no logro mi propósito sin embargo no desisto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de RET
Val: 79
Ha disminuido su posición en 2 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

extraer datos web desde VBA Excel

Publicado por RET (33 intervenciones) el 26/05/2020 11:00:00
Has probado con PowerQuery?

Pestaña Datos > Grupo Obtener y transformar datos > Desde la web

Vete siguiendo los pasos que te pide
PowerQuery


IMF_RET
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha disminuido su posición en 2 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

extraer datos web desde VBA Excel

Publicado por Luis (5 intervenciones) el 26/05/2020 18:47:35
Gracias por tu respuesta, sin embargo esto también extrae el mes actual y adicionalmente es un trabajo no automático, lo que busco es mejorar la macro para que esas consultas se realicen de manera autónoma.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de RET
Val: 79
Ha disminuido su posición en 2 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

extraer datos web desde VBA Excel

Publicado por RET (33 intervenciones) el 02/06/2020 22:06:25
Me picó el gusanillo y he estado investigando un poco. Yo creo que no lo vas a conseguir, porque el refresco de datos requiere que mandes una serie de datos para que se genere la página para el año/mes que envíes. Estos datos se mandan con un método POST, que se podría simular, pero además manda unos datos codificados, supongo que para verificar la consulta.

De todas formas, si lo resuelves, te agradecería que compartieses la solución.

Si lo quieres hacer de forma automática, a mi solo se me ocurre, una vez descartado VBA, que lo automatices con algún script de AutoIt o similar. Si no lo conoces, pero programas en VBA o cualquier otro lenguaje, no te resultará muy complicado.

Puedes ver una pequeña introducción en https://informaticamuyfacil.com/category/scripts/autoit-scripts/

IMF_RET
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha disminuido su posición en 2 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

extraer datos web desde VBA Excel

Publicado por Luis (5 intervenciones) el 04/06/2020 04:19:09
Gracias por el interés, sin embargo estoy seguro de que existe una manera de hacer lo que busco, pues lo he visto trabajar en algunas Macros,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de RET
Val: 79
Ha disminuido su posición en 2 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

extraer datos web desde VBA Excel

Publicado por RET (33 intervenciones) el 04/06/2020 16:20:11
Se puede hacer con VBA, pero lo has visto para datos de otras webs o de esta en concreto?

Si la información que requiere la web es "mandable", no hay problema. Lo que pasas es que esta en concreto, cuando seleccionas año y mes de los datos que quieres y clickas, envías todo lo que ves en el fichero txt.

Las variables
cboPeriodo: 2020-04
btnConsultar: Buscar+Datos

las puedes simular, pero las variables __VIEWSTATE, __VIEWSTATEGENERATOR y __EVENTVALIDATION no se como.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha disminuido su posición en 2 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

extraer datos web desde VBA Excel

Publicado por Luis (5 intervenciones) el 04/06/2020 23:07:50
Especificamente, si he visto trabajar en esta web.

Si el resultado fuese obtener toda la información existente en la web respecto de periodos y comisiones, ya se tendría resuelto la mayor parte del problema ya que un filtro posterior permitirá extraer exactamente lo buscado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar