Pesquisar na Comunidade
Mostrando resultados para as tags ''objeto select''.
Encontrado 1 registro
-
Olá pessoal, Preciso realizar uma macro para copiar cada um dos escritórios da XP no Brasil para uma planilha, porém estou com dúvida no começo do código. Realizei duas subs, uma que abre o IE e outra que processa o código HTML. O site em questão (https://www.xpi.com.br/sobre-a-xp/encontre-um-escritorio/) conta com dois objetos de tag "select", um que se refere aos estados ("states") e outro que se refere à cidade ("cities"). Minha dúvida é como atualizar o objeto "cities" ao escolher um estado da lista. Meu código até aqui é esse, porém ao selecionar o estado as cidades possíveis não são atualizadas, e, com isso, a minha cidade sempre retorna "Selecione a cidade": Sub EscritoriosXPIE() 'HABILITAR REFERÊNCIAS: Microsoft Internet Control, Microsoft HTML Object Library Dim IE As SHDocVw.InternetExplorer, HTMLDoc As MSHTML.HTMLDocument, HTMLButton As MSHTML.IHTMLElementCollection 'definindo objeto IE Set IE = New SHDocVw.InternetExplorer 'abrindo IE With IE .Visible = True .navigate "https://www.xpi.com.br/sobre-a-xp/encontre-um-escritorio/" 'pausar a macro enquanto carrega o navegador While .readyState <> READYSTATE_COMPLETE Wend End With 'abrindo o código HTML Set HTMLDoc = IE.Document Set HTMLButton = HTMLDoc.getElementsByTagName("button") ' 'printando número de botons ' Debug.Print HTMLButton.Length 'pesquisar escritórios XP ProcessarHtmlPage HTMLDoc End Sub Sub ProcessarHtmlPage(HTMLPage As MSHTML.HTMLDocument) 'HABILITAR REFERÊNCIA: Microsoft HTML Object Library Dim HTMLStates As MSHTML.IHTMLElement, HTMLCities As MSHTML.IHTMLElement Dim HTMLOptionState As MSHTML.IHTMLElement, HTMLOptionCity As MSHTML.IHTMLElement Dim HTMLButtons As MSHTML.IHTMLElementCollection Dim cont_states As Long, cont_cities As Long, state As Long, city As Long 'limpando a plan de trabalho Worksheets("Resumo").Select Cells.Delete 'definindo objetos HTMLState, HTMLCity e HTMLButton Set HTMLStates = HTMLPage.getElementById("states") Set HTMLButtons = HTMLPage.getElementsByTagName("buttons") 'definindo número de estados cont_states = HTMLStates.Length 'loop por todos os estados e cidades For state = 0 To cont_states Debug.Print HTMLStates.Item(state).innerText HTMLStates.selectedIndex = state Set HTMLCities = HTMLPage.getElementById("cities") cont_cities = HTMLCities.Length For city = 0 To cont_cities On Error Resume Next Debug.Print HTMLCities.Item(city).innerText Next city Next state End Sub Obrigado desde já pela ajuda!