Pessoal
Gostaria de saber se é possível aplicar o conceito do código abaixo que é para Excel em uma aplicação Access
seguindo o mesmo estilo de busca só que em uma tabela. Já peguei alguns exemplos até aqui do fórum mas ainda não achei nada que me desse um ponto de partida de como iniciar meus estudos. Agradeço a atenção.
Gostaria de saber se é possível aplicar o conceito do código abaixo que é para Excel em uma aplicação Access
seguindo o mesmo estilo de busca só que em uma tabela. Já peguei alguns exemplos até aqui do fórum mas ainda não achei nada que me desse um ponto de partida de como iniciar meus estudos. Agradeço a atenção.
- Código:
'Inclui referência ao Microsoft Internet Controls
Sub lReferenciaIE()
Dim ObRef
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromGuid "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}", 1, 1
End Sub
Sub lsPesquisarCEPFaixa()
'Inclui a referência se não houver
lReferenciaIE
Dim IE As InternetExplorer
Dim lCidade As String
Dim lUF As String
Dim lUltimaLinhaAtiva As Long
Dim lContador As Long
'Identifica a última célula ativa da lista
lUltimaLinhaAtiva = Worksheets("Plan1").Cells(Worksheets("Plan1").Rows.Count, 1).End(xlUp).Row
'Cria um objeto Internet Explorer
Set IE = New InternetExplorer
'Torna o objeto visível
IE.Visible = True
'Faz um loop por todas as linhas da planilha
For lContador = 2 To lUltimaLinhaAtiva
'Navega ao site dos correios
IE.Navigate "http://www.buscacep.correios.com.br/sistemas/buscacep/buscaFaixaCep.cfm"
'Identifica se a página já foi totalmente carregada
While IE.ReadyState <> READYSTATE_COMPLETE
Wend
'Como a página possui JavaScript que cria os objetos que são preenchidos após a carga completa, é necessário
'aguardar um tempo, coloquei 3 segundos, alterar conforme a necessidade.
'Caso não tenha javascript na criação dos objetos da página comentar esta parte do código, pois será bem
'mais rápida a execução.
sng = Timer
Do While sng + 3 > Timer
Loop
'Carrega os dados de cidade e UF que serão preenchidos na página
lCidade = Range("B" & lContador).Value
lUF = Range("A" & lContador).Value
'Carrega os dados de cidade e UF na página e submente os dados do formulário
IE.Document.all("Localidade").innertext = lCidade
IE.Document.all("UF").Value = lUF
IE.Document.forms("Geral").submit
'Identifica se a página já foi totalmente carregada
While IE.ReadyState <> READYSTATE_COMPLETE
Wend
'Como a página possui JavaScript que cria os objetos que são preenchidos após a carga completa, é necessário
'aguardar um tempo, coloquei 3 segundos, alterar conforme a necessidade.
'Caso não tenha javascript na criação dos objetos da página comentar esta parte do código, pois será bem
'mais rápida a execução.
sng = Timer
Do While sng + 3 > Timer
Loop
'Faz um loop pelos objetos do tipo table na página e procura pelo campo Faixa(s) de CEP: preenchido.
'Em seguida busca pela segunda coluna da linha de faixa de CEP e armazena esta informação diretamente na coluna C da linha
'da planilha
For Each i In IE.Document.body.getElementsByTagName("table")
If InStr(i.innertext, "Faixa de CEP") > 0 Then
For Each l In i.getElementsByTagName("tr")
If InStr(l.innertext, lCidade) Then
Range("C" & lContador).Value = l.getElementsByTagName("td")(1).innertext
End If
Next l
End If
Next i
Next lContador
MsgBox "Concluído!"
End Sub