Notifications
Clear all

Macro com acesso a dados externos

9 Posts
2 Usuários
0 Reactions
1,884 Visualizações
(@hudsonos)
Posts: 17
Active Member
Topic starter
 

Pessoal, estou com problema nesta macro. Basicamente ela acessa meu portal, recolhe o ID, nome, e-mail e telefone (para ser trabalhado no excel)
Mas desde ontem parou de rodar apontando o erro na seguinte linha:

b = Split(.Children(3).innerText, "|")

O que pode ser? Tem alguma forma de consertar ou criar uma nova?

Segue a macro completa:

Sub BaixaDadosIntra()
  Const URL = "https://azenka.com.br/landing/?p="
  Dim a(1 To 4), b
  Dim i As Long, s As String, T As Double, R As Long
  Dim oDom As Object
  T = Timer
  Set oDom = CreateObject("htmlfile")
  With CreateObject("MSXML2.XMLHTTP")
    For i = 134948 To 145000
      .Open "GET", URL & i, False
      .send
      If .ReadyState = 4 And .Status = 200 Then
        oDom.body.innerHTML = .responseText
      Else
        MsgBox "i = " & i & vbLf _
             & "Ready state: " & .ReadyState & vbLf _
             & "HTTP request status: " & .Status, vbExclamation, "Error"
        Set oDom = Nothing
        Exit Sub
      End If
      With oDom.body.Document.all.Item(5)
        b = Split(.Children(3).innerText, "|")
        a(1) = Trim(b(0)) 'nome
        a(2) = Trim(b(1)) ' ID
        s = .Children(4).innerText
        a(3) = Trim(Mid(s, InStr(s, ":") + 1))  ' telefone
        a(4) = Trim(.Children(6).innerText)     ' email
        Cells(Rows.Count, 4).End(xlUp).Offset(1).Resize(, 4).Value = a()
        R = R + 1
        DoEvents
      End With
    Next
  End With
  Set oDom = Nothing
  Columns("D:G").AutoFit
  MsgBox "BAIXADOS " & R & " REGISTROS EM " & vbLf & Format((Timer - T) / 86400, "hh:mm:ss")
End Sub
 
Postado : 01/12/2017 12:03 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

hudsonos,

Boa noite!

Bom... não entendo muito de código para acesso e busca de informação em web. Todavia, pelo que você relatou, creio que o problema deva ser alguma modificação realizada no site justamente nessa parte onde você armazena os valorres na variável "b" com a função Split.

Qual é o erro que está dando no VBA? Procure ver se essas especificações no site não mudaram:

oDom.body.Document.all.Item(5) 'Isso ainda é assim no site?
.Children(3).innerText, "|" 'Isso também ainda está da mesmo forma que era?

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 01/12/2017 4:12 pm
(@hudsonos)
Posts: 17
Active Member
Topic starter
 

Olá Wagner, continua os mesmos comandos no site. Acabei de revisar a macro e mesmo assim não roda.

 
Postado : 06/12/2017 12:23 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

hudsonos,

Boa tarde!

Você poderia disponibilizar seu arquivo aqui mesmo no fórum? Compacte com .ZIP. Assim, todos poderão rodar, depurar e ajudar de forma muito mais rápida.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 06/12/2017 12:48 pm
(@hudsonos)
Posts: 17
Active Member
Topic starter
 

Olá Wagner, posso sim, segue anexo a planilha. Deve ser algo muito simples que não estou achando.

 
Postado : 06/12/2017 4:46 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

hudsonos,

Bom dia!

Qual é a referência adicional que preciso inserir para rodar corretamente seu arquivo?

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 07/12/2017 7:03 am
(@hudsonos)
Posts: 17
Active Member
Topic starter
 

Bom dia Wagner,

Uso a referência na própria macro:

With CreateObject("MSXML2.XMLHTTP")
    For i = 134948 To 145000

Inicio a busca através do button na planilha

 
Postado : 07/12/2017 7:12 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Entendi... como disse, VBA pra Web não é minha praia. Desse modo, não tenho como te ajudar. Mas deixa o post aberto que alguém pode ainda ajudar.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 07/12/2017 9:03 am
(@hudsonos)
Posts: 17
Active Member
Topic starter
 

Sem Problema Wagner, valeu pela intenção.

Ainda continuo na mesma

 
Postado : 17/12/2017 4:49 pm