Está en la página 1de 2

Sub test()

' crea una instancia de Internet Explorer, navega a vueling, rellena una for
mulario
' ejecuta el cdigo javascript y descarga la tabla de resultados
'
Const BASE_NAME As String = "AvailabilitySearchInputSearchView_"
Dim
Dim
Dim
Dim
Dim

ie As Object
doc As Object
tbl As Object
row As Long
col As Long

'
'
'
'
'

InternetExplorer
HTMLDocument
HTMLTable
recorre las filas de la tabla de resultados
recorre las columnas de la tabla de resultados

' se crea la instancia de la aplicacin


Set ie = CreateObject("internetexplorer.application")
With ie
' para poder trabjar ms facilmente mientras se desarrolla la macro,
' se puede hacer visible la aplicacin:
'ie.Visible = True
' se le indica a ie la direccin a la que debe ir
.Navigate2 "http://tickets.vueling.com/"
' espera a que el estado del navegador (ie) sea 'listo' : 4 = READYSTATE
_COMPLETE
Do While .ReadyState <> 4 'READYSTATE_COMPLETE
DoEvents
Loop
' carga el documento para trabajar ms fcilmente con l
Set doc = .Document
' asigna los valores deseados a cada uno de los campos del formulario
With doc
.getElementById(BASE_NAME & "RoundTrip").Checked = False
.getElementById(BASE_NAME & "OneWay").Checked = True
.getElementById(BASE_NAME & "TextBoxMarketOrigin1").Value = "Amsterd
am (AMS)"
.getElementById(BASE_NAME & "TextBoxMarketDestination1").Value = "Ba
rcelona (BCN)"
.getElementById("marketDate1").Value = "domingo 7 de junio"
.getElementById("marketDate2").Value = "domingo 7 de junio"
.getElementById(BASE_NAME & "DropDownListPassengerType_ADT").Value =
2
.getElementById(BASE_NAME & "DropDownListPassengerType_CHD").Value =
0
.getElementById(BASE_NAME & "DropDownListPassengerType_INFANT").Valu
e = 0
' ejecuta el cdigo javascript
.parentWindow.execScript "__doPostBack('AvailabilitySearchInputSearc
hView$LinkButtonNewSearch','');"
End With
' espera mientras el navegador est ocupado
Do While .Busy
DoEvents

Loop
' carga
Set doc
' carga
Set tbl

el nuevo documento
= .Document
la tabla de resultados
= .Document.getElementById("availabilityTable0")

' copia los datos de la tabla en la hoja


For row = 2 To tbl.Rows.Length - 1
For col = 0 To tbl.Rows(row).Cells.Length - 1
Cells(row + 1, col + 1) = tbl.Rows(row).Cells(col).innerText
Next col
Next row
End With
' dejamos las cosas como las encontramos. Buenos modales.
Set tbl = Nothing
Set doc = Nothing
Set ie = Nothing
End Sub

También podría gustarte