Bom dia a todos os colegas do fórum.
estou encarando um problema, quando eu rodo o script passo a passo (F8), ele consegue realizar sem problemas, agora quando eu utilizo o F5, ele exibe o erro "A variável do objeto ou a variável do bloco With não foi definida"
Alguém poderia me ajudar ou pelo menos me explicar como saio desse erro?
Segue código para simular:
Private Sub Worksheet_Activate()
Dim i As Integer
Dim fim As Integer
Dim NOK As String
Dim IE As New InternetExplorer
i = 0
fim = 15
Do
Do While i <= fim
i = i + 1
'i pode ser sbstituido por números inteiros positivos para teste Exemplo: 1 = Pagian não existe _
'453 = pagina existe.
IE.Visible = False
IE.Navigate " http://sigsif.agricultura.gov.br/sigsif_cons/!ap_estabelec_nacional_detalhe?id_estabelecimento=" & i
Application.Wait Now + TimeValue("00:00:02")
'rotina para copiar os valores para a planilha
On Error GoTo PaginanaoExiste
With IE.Application
Sheets("BD2").Range("A2").Value = IE.Document.all.Item("nr_sif").Value
Sheets("BD2").Range("B2").Value = IE.Document.all.Item("cs_estabelecimento").Value
Sheets("BD2").Range("C2").Value = IE.Document.all.Item("nr_cnpj").Value
Sheets("BD2").Range("D2").Value = IE.Document.all.Item("nm_fantasia").Value
Sheets("BD2").Range("E2").Value = IE.Document.all.Item("nm_razao_social").Value
Sheets("BD2").Range("F2").Value = IE.Document.all.Item("tx_logradouro").Value
Sheets("BD2").Range("G2").Value = IE.Document.all.Item("nm_bairro").Value
Sheets("BD2").Range("H2").Value = IE.Document.all.Item("nm_municipio").Value
Sheets("BD2").Range("I2").Value = IE.Document.all.Item("sg_uf").Value
Sheets("BD2").Range("J2").Value = IE.Document.all.Item("nr_cep").Value
Sheets("BD2").Range("K2").Value = IE.Document.all.Item("nr_telefone").Value
Sheets("BD2").Range("L2").Value = IE.Document.all.Item("nm_area").Value
'insere uma nova linha no banco de dados
Sheets("BD2").Select
Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A2").Select
End With
Loop
Exit Sub
PaginanaoExiste:
Loop
End Sub
________________________________________________________________________________________________
Muito obrigado galera.
att.
Davi Soares
Dando uma olhada rápida, vc já tentou deixar o bloco with assim:
With IE.Application
Sheets("BD2").Range("A2").Value = .IE.Document.all.Item("nr_sif").Value
Sheets("BD2").Range("B2").Value = .IE.Document.all.Item("cs_estabelecimento").Value
Sheets("BD2").Range("C2").Value = .IE.Document.all.Item("nr_cnpj").Value
Sheets("BD2").Range("D2").Value = .IE.Document.all.Item("nm_fantasia").Value
Sheets("BD2").Range("E2").Value = .IE.Document.all.Item("nm_razao_social").Value
Sheets("BD2").Range("F2").Value = .IE.Document.all.Item("tx_logradouro").Value
Sheets("BD2").Range("G2").Value = .IE.Document.all.Item("nm_bairro").Value
Sheets("BD2").Range("H2").Value = .IE.Document.all.Item("nm_municipio").Value
Sheets("BD2").Range("I2").Value = .IE.Document.all.Item("sg_uf").Value
Sheets("BD2").Range("J2").Value = .IE.Document.all.Item("nr_cep").Value
Sheets("BD2").Range("K2").Value = .IE.Document.all.Item("nr_telefone").Value
Sheets("BD2").Range("L2").Value = .IE.Document.all.Item("nm_area").Value
End With
'insere uma nova linha no banco de dados
Sheets("BD2").Select
Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A2").Select
Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.
Gilmar
Bom dia Gtsalikis.
Obrigado pelo rápido retorno.
Efetuei essa sugestão de modificação e agora apresentou um erro diferente.
"O objeto não aceita esta propriedade ou método".
Pelo descrito, ao rodar automaticamente não há tempo de carregar corretamente a pagina diferente de quando "rodado" com F8 que é mais lento, então o erro.
Talvez aumentando o tempo de espera no application.wait ou um if/while aguardando o ie ok.
Não sou muito afeito a utilizar o VBA para consulta na internet, mas em versões anteriores utilizávamos algo +/- assim:
While IE.Busy: DoEvents: Wend 'enquanto ocupado Do While IE.Document.ReadyState <> "complete": DoEvents: Loop 'enquanto não completo Do While IE.ReadyState <> READYSTATE_COMPLETE: DoEvents: Loop 'enquanto não completo
Talvez auxilie
Reinaldo
Bom dia rlm.
Ele ainda apresenta a mensagem: "O objeto não aceita esta propriedade ou método".
E mesmo rodando no F8, após o loop é que ele apresenta o erro.
Apenas para conhecimento as paginas estão completamente em branco, por isso acrescentei o "on error goto", para que ele "pulasse" essas páginas. Outro fato é que as paginas que estão com dados para extração, rodam o loop perfeitamente.
Fiz um teste a partir do [i=350 / fim = 400] e o mesmo realizou todos os loops, pelo F5.
Essa parte que eu imaginei que seria menos complicada que está me matando.
Boa noite colegas.
Pesquisei a solução do meu problema, e não encontro nada.
Gostaria de saber se alguem poderia me ajudar a resolver este problema.
Ficarei imensamente agradecido.
Att.
Davi Soares
Leia:
Se você tivesse anexado uma planilha de exemplo, demonstrando o erro, provavelmente, o caso teria sido solucionado logo na primeira resposta.
[]s
Patropi - Moderador
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Patropi, boa noite.
Peço desculpas por parecer insistente, pode ter certeza que entendo sobre a disponibilidade e a boa intenção de todos os membros em ajudar a todos.
Como estou começando agora nesta área, imaginei que somente o código iria auxiliar.
Segue anexo a planilha para quem puder avaliar.
Não reparem a mesma estar sem formatação, pois a original, ficaria muito grande, assim, utilizo essa como um "piloto".
Descrição do Problema:
Quando eu executo o código ao finalizar ele irá efetuar o Loop, porém, em determinado momento, ocorre o erro "O objeto não aceita esta propriedade ou método"..
Se puderem, me explicar a que se refere este erro, me ajudará muito.
Mais uma vez agradeço e ressalto o pedido de desculpas pela falta de informações e a insistência.
Muito Obrigado e boa noite.
Bom dia!!
Lembre se de indicar as postagens cruzadas!!
http://forum.gurudoexcel.com.br/viewtop ... 814d8#p742
Att
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Bom dia Alexandre.
O gurudoexcel e o planilhando são a mesma coisa ou mesmo administrador?
Caso sim, não tinha conhecimento, a minha intenção era ao obter a resposta, compartilhar em ambos.
Preciso apagar algum deles?
Obrigado pela ajuda.
Boa tarde!!
O gurudoexcel e o planilhando são a mesma coisa ou mesmo administrador?
Não!!
Preciso apagar algum deles?
Não!!!
O ideal é mostrar via link, quando o mesmo assunto é postado em foruns diferentes, assim as pessoas que ajudam, ficam distribuídas, e o beneficiado é o usuário que pede ajuda (ao invés de de várias pessoas ajudar em um único post).
Att
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Entendi Alexandre.
Irei me atentar as próximas dúvidas que eu venha a ter.
Acredito que agora o meu tópico esteja de acordo!
Agradeço pelo suporte e irei aguardar finalizar o tópico e marcarei como Resolvido.
Muito Obrigado.
Davi Soares
Veja se auxilia.
Obs.: Postagem tambem em http://www.tomasvasquez.com.br/forum/vi ... 65&p=14360
Reinaldo
rlm, Muito Obrigado pela ajuda.
Irei analisar os inúmeros erros que cometi, e vi que você deixou alguns comentários para poder saber o que é cada parte.
Caso tenha alguma dúvida, acredito que ficará mais fácil saber onde eu errei.
Agradeço novamente a dedicação e tempo gasto para me auxiliar.
Aproveito e agradeço a todos que perderam um tempo em me ajudar.
Forte abraço.
Davi Soares