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
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Interação VBA com IE, para o site da Hotmilhas
-
- Acabou de chegar
- Mensagens: 3
- Registrado em: Sex Dez 07, 2018 8:09 am
Interação VBA com IE, para o site da Hotmilhas
- Anexos
-
- Print Screen da Planilha Controle
- Foto Planilha Controle.png (146.58 KiB) Exibido 2538 vezes
-
- Onde mostra o código do site Hotmilhas
- Hotmilhas.png (291.17 KiB) Exibido 2538 vezes
-
- Onde mostra o código do site BankMilhas
- BankMilhas.png (448.28 KiB) Exibido 2538 vezes