Página 1 de 1

Interação VBA com IE, para o site da Hotmilhas

Enviado: Ter Jun 25, 2019 7:06 pm
por euderfilho
Amig@s, boa noite!
Estou automatizando um sistema de cotação de milhas em um site. Consegui fazer para o site da bankmilhas.com.br (código abaixo).

Gostaria de adaptar este aquivo para o site da hotmilhas.com.br, porém não estou conseguindo acessar as variáveis do site.. Vou explicar como o código funciona:

Ele acessa o site www.bankmilhas.com.br > preenche os campos do site (input_7_2, input_7_12, input_7_3, input_7_5, input_7_9, input_7_10 - estes são os ID do formulário que estou preenchendo) buscando as informações dentro da planilha que chama "Controle" > Ele submete minha cotação para o site e eu recebo ela no e-mail. É o que o código faz.

Os IDs: input_7_5, input_7_9, input_7_10, são drop down list, onde eu seleciono a quantidade de milhas que eu quero cotar de cada cia aérea. Eu escrevo dentro da planilha "Controle" quantas milhas quero cotar de cada uma e ele faz uma busca no drop down list do site, referenciado pelos IDs acima, e quando ele encontra, me retorna a posição que a quantidade que eu quero está, o index, daí seleciona.

Bom, enfim, minha dúvida é, no site da bank milhas, quando vou ver o código html deles, cada ID tem uma lista de os valores das milhas, que uso para comparar (ver anexo) e retornar o index. Porém, no site da Hotmilhas, eles não possuem essa lista com os valores para comparar. Eles tem um class="style-option" e não diversos valores como é no bank milhas (ver anexo).

Como que eu posso adaptar meu código (código abaixo) para funcionar no site da Hotmilhas?

Muito obrigado!


Abaixo meu código e a foto da planilha em anexo.

Sub automaticformfilling()

Dim ie As Object

Dim az As Single, sm As Single, lat As Single 'variáveis para receber o valor das células da planilha controla

Worksheets("Controle").Activate 'Ativar planilha de controle

az = Range("C5") 'Recebe os valores inseridos pelo usuário na planilha controle
sm = Range("B5")
lat = Range("A5")

Set ie = CreateObject("internetexplorer.application") 'Abre o IE e vai acessa o site da BankMilhas
With ie
.Visible = True
.Navigate "http://www.bankmilhas.com.br"
Do While .Busy
DoEvents
Loop
Do While .ReadyState <> 4
DoEvents
Loop
End With



'preenche os formulaários direto no site
Set fname = ie.Document.getelementbyid("input_7_12") 'Preenche o NOME
fname.Value = Range("B3")


Set femail = ie.Document.getelementbyid("input_7_2") 'Preenche o Email
femail.Value = Range("A3")


Set ftel = ie.Document.getelementbyid("input_7_3") 'Preenche o Telefone
ftel.Value = Range("C3")


'Compara o valor inserido pelo usuário na planilha "Controle" com os da lista do drop down do site. Quando encontrar, retorna o index. Fiz o mesmo comando para cada cia aérea.

Set input_7_5 = ie.Document.getelementbyid("input_7_5") 'Milhas TAM

For i = 1 To input_7_5.Options.Length
If input_7_5.Options(i).Value = lat Then
input_7_5.selectedindex = i
Exit For
End If
Next i

Set input_7_9 = ie.Document.getelementbyid("input_7_9") 'Milhas Smile
i = 1
For i = 1 To input_7_9.Options.Length
If input_7_9.Options(i).Value = sm Then
input_7_9.selectedindex = i
Exit For
End If
Next i

Set input_7_10 = ie.Document.getelementbyid("input_7_10") 'Milhas Azul
i = 1
For i = 1 To input_7_10.Options.Length
If input_7_10.Options(i).Value = az Then
input_7_10.selectedindex = i
Exit For
End If
Next i

ie.Document.getelementbyid("gform_submit_button_7").Click 'Clica no botão de enviar a cotação para o e-mail

End Sub