Macro com acesso a dados externos

Visual Basic for Aplication e macros no Excel.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

Macro com acesso a dados externos

Mensagempor hudsonos » Sex Dez 01, 2017 2:03 pm

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:

Código: Selecionar todos
b = Split(.Children(3).innerText, "|")

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

Segue a macro completa:
Código: Selecionar todos
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
hudsonos
Membro
Membro
 
Mensagens: 8
Registrado em: Ter Fev 21, 2017 4:38 pm
Has thanked: 1 time
Have thanks: 0 time

{ SO_SELECT }

Re: Macro com acesso a dados externos

Mensagempor wagner » Sex Dez 01, 2017 6:12 pm

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:
Código: Selecionar todos
oDom.body.Document.all.Item(5) 'Isso ainda é assim no site?
.Children(3).innerText, "|" 'Isso também ainda está da mesmo forma que era?
Se a resposta foi últil para você, por gentileza, Amigo,clique na mãozinha ao lado direito da sua tela. No canto superior.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 3151
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 47 times
Have thanks: 1375 times

Re: Macro com acesso a dados externos

Mensagempor hudsonos » Qua Dez 06, 2017 2:23 pm

Olá Wagner, continua os mesmos comandos no site. Acabei de revisar a macro e mesmo assim não roda.
hudsonos
Membro
Membro
 
Mensagens: 8
Registrado em: Ter Fev 21, 2017 4:38 pm
Has thanked: 1 time
Have thanks: 0 time

Re: Macro com acesso a dados externos

Mensagempor wagner » Qua Dez 06, 2017 2:48 pm

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.
Se a resposta foi últil para você, por gentileza, Amigo,clique na mãozinha ao lado direito da sua tela. No canto superior.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 3151
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 47 times
Have thanks: 1375 times

Re: Macro com acesso a dados externos

Mensagempor hudsonos » Qua Dez 06, 2017 6:46 pm

Olá Wagner, posso sim, segue anexo a planilha. Deve ser algo muito simples que não estou achando.
Você não está autorizado a ver ou baixar esse anexo.
hudsonos
Membro
Membro
 
Mensagens: 8
Registrado em: Ter Fev 21, 2017 4:38 pm
Has thanked: 1 time
Have thanks: 0 time

Re: Macro com acesso a dados externos

Mensagempor wagner » Qui Dez 07, 2017 9:03 am

hudsonos,

Bom dia!

Qual é a referência adicional que preciso inserir para rodar corretamente seu arquivo?
Se a resposta foi últil para você, por gentileza, Amigo,clique na mãozinha ao lado direito da sua tela. No canto superior.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 3151
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 47 times
Have thanks: 1375 times

Re: Macro com acesso a dados externos

Mensagempor hudsonos » Qui Dez 07, 2017 9:12 am

Bom dia Wagner,

Uso a referência na própria macro:
Código: Selecionar todos
With CreateObject("MSXML2.XMLHTTP")
    For i = 134948 To 145000


Inicio a busca através do button na planilha
hudsonos
Membro
Membro
 
Mensagens: 8
Registrado em: Ter Fev 21, 2017 4:38 pm
Has thanked: 1 time
Have thanks: 0 time

Re: Macro com acesso a dados externos

Mensagempor wagner » Qui Dez 07, 2017 11:03 am

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.
Se a resposta foi últil para você, por gentileza, Amigo,clique na mãozinha ao lado direito da sua tela. No canto superior.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 3151
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 47 times
Have thanks: 1375 times


Voltar para VBA & Macros

Quem está online

Usuários navegando neste fórum: Bing [Bot], Google Adsense [Bot], klarc28 e 9 visitantes