Excel - Extraer datos de una tabla desde la web a traves de informacion solicitada

 
Vista:
sin imagen de perfil

Extraer datos de una tabla desde la web a traves de informacion solicitada

Publicado por Danny (3 intervenciones) el 06/07/2017 16:36:17
Amigos quiero poder extraeer informacion de la pagina web que aparece en el codigo, con datos que yo mismo coloco, ya que dicha pagina para poder mostrarme la tabla de donde quiero extraer los datos debo darle primero cierta informacion, como fecha inicial y fecha final, y tipo de serie, he intentado por muchos metodos realizar el trabajo pero me ha resultado muy dificil lograr mi cometido. Saludos y mil Gracias.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Function svs(ddi, mmi, aai, ddf, mmf, aaf, se)
 
 
    Dim winreq As Object
    Dim htmldoc As Object
    Dim table As Object
    Dim tr As Long
    Dim td As Long
    Dim data As Variant
 
 
    Set winreq = CreateObject("WinHttp.winHttpRequest.5.1")
    Set htmldoc = CreateObject("htmlfile")
 
    With winreq
        .Open "POST", "http://www.svs.cl/institucional/mercados/entidad.php?mercado=V&rut=8035&grupo=&tipoentidad=RGFMU&row=AABbsrAAjAAAACcAAW&vig=VI&control=svs&pestania=7"
        .SetRequestHeader "content-type", "application/x-www-form-urlencoded"
        .Send "ddi=" & Format(ddi, "00") & _
                "&mmi=" & Format(mmi, "00") & _
                "&aai=" & aai & _
                "&ddf=" & Format(ddf, "00") & _
                "&mmf=" & Format(mmf, "00") & _
                "&aaf=" & aaf & _
                "&se=" & se & _
                "&image2.x=44&image2.y=10&enviado=1"
        htmldoc.body.innerHTML = .ResponseText
    End With
 
    Set table = htmldoc.getElementById("contenido").getElementsByTagName("table")(0)
 
    ReDim data(table.Rows.Length - 1, table.Rows(0).Cells.Length - 1)
 
    For tr = 0 To table.Rows.Length - 1
        For td = 0 To table.Rows(tr).Cells.Length - 1
            data(tr, td) = table.Rows(tr).Cells(td).innerText
        Next td
    Next tr
 
    Set htmldoc = Nothing
    Set winreq = Nothing
 
    svs = data
 
End Function


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub test()
 
    Dim data As Variant
 
    data = svs(ddi:=10, _
                mmi:=6, _
                aai:=2016, _
                ddf:=10, _
                mmf:=1, _
                aaf:=2017, _
                se:="TOTAL FONDO")
 
 
    Range("a1").Resize(UBound(data, 1) + 1, UBound(data, 2) + 1) = data
 
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: 40
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Extraer datos de una tabla desde la web a traves de informacion solicitada

Publicado por Jua Carlos (54 intervenciones) el 06/07/2017 23:02:43
Hola Danny, te envio una imagen haber si es lo que estás buscando.
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

Extraer datos de una tabla desde la web a traves de informacion solicitada

Publicado por Danny (3 intervenciones) el 07/07/2017 04:24:48
Hola Jua Carlos eso es justamente es lo que he estado buscando, le he dado vueltas a ese código pero aun no consigo solucionarlo, tu imagen se ve perfecta, es así como quiero que funcione.
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

Extraer datos de una tabla desde la web a traves de informacion solicitada

Publicado por Danny (3 intervenciones) el 07/07/2017 04:26:04
Hola Jua Carlos eso es justamente es lo que he estado buscando, le he dado vueltas a ese código pero aun no consigo solucionarlo, tu imagen se ve perfecta, es así como quiero que funcione.
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