fcarlos, os colaboradores do Forum ajudam voluntariamente e dependem de tempo disponível, e se ver nas regras, não devemos ficar cobrando, se quiser envie msg em PVT ao mesmo.
Voltando a rotina do colega Basole, fiz uns ajustes, cole-a em seu modelo e veja se da certo.
Ressalto que pela quantidade de endereços que possui, o código ficará bem lento, e fiz alguns testes com alguns endereços de seu modelo e pelos resultados, alguns não retornam o CEP devido as abreviaturas e tambem pelo acento, por exemplo :
R CEARA não temos o cep, mas Rua Ceará - sim
Tem outros endereços que não retornam, então deverá de consultar no site para ver como está, outro exemplo é :
R PE ROLIM desta forma não é localizado e nem se escrever por extenso, mas se colocar Santa Efigênia em vez de Belo Horizonte temos o CEP, mas não sei se é o correto.
Teste a rotina e depois vemos as particularidades e erros.
Sub Pesquisa_Endereco_Basole()
'Por Basole@hptmail.com
Dim i As Long
Dim xEnds
Dim msg As String
Dim vUF_A As String
Dim vCid_B As String
Dim vLogra_C As String
Dim sRG As Range
Dim ultLin
ultLin = Range("A" & Rows.Count).End(xlUp).Row
Set sRG = Range("A2" & ":" & "A" & ultLin)
Application.ScreenUpdating = False
For Each xEnds In sRG
Sheets("Cep").Range("F3:J14").ClearContents
vUF_A = xEnds 'UF col A
vCid_B = xEnds.Offset(, 1) 'Cidade Col B
vLogra_C = xEnds.Offset(, 2) 'Logradouro col C
With ActiveSheet.QueryTables.Add(Connection:="Url;https://viacep.com.br/ws/" & [vUF_A] & "/" & _
Replace([vCid_B], " ", "%20") & "/" & VBA.Replace(VBA.Replace(VBA.Replace([vLogra_C], " ", "%20"), ",", ""), "/", " ") & "/xml/", Destination:=Range("F2"))
.RefreshStyle = xlOverwriteCells
.SaveData = True
.Refresh BackgroundQuery:=False
End With
i = 7
With Sheets("Cep")
.Activate
Calculate
Application.Wait (Now + #12:00:03 AM#)
Application.StatusBar = "Aguarde o processamento ..."
msg = IIf(.Cells(5, 1).Value = "<resultado>0</resultado>", "Cep nao encontrado!", "Ok, sucesso!" & _
vbNewLine & Replace(Replace(.Cells(6, 9).Value, "<cep>", ""), "</cep>", ""))
xEnds.Offset(, 3) = Replace(Replace(.Cells(6, 9).Value, "<cep>", ""), "</cep>", "")
.Range("F2:J17").ClearContents
Application.StatusBar = .[xfd1]
End With
Application.ScreenUpdating = True
Next xEnds
Application.ScreenUpdating = True
End Sub
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 16/06/2016 4:14 pm