Erro básico!!Variáv...
 
Notifications
Clear all

Erro básico!!Variável do bloco With

14 Posts
4 Usuários
0 Reactions
2,955 Visualizações
(@davi23)
Posts: 21
Eminent Member
Topic starter
 

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

 
Postado : 21/11/2014 7:39 am
(@gtsalikis)
Posts: 2373
Noble Member
 

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

 
Postado : 21/11/2014 7:44 am
(@davi23)
Posts: 21
Eminent Member
Topic starter
 

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".

 
Postado : 21/11/2014 7:52 am
Reinaldo
(@rlm)
Posts: 246
Estimable Member
 

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

 
Postado : 21/11/2014 7:59 am
(@davi23)
Posts: 21
Eminent Member
Topic starter
 

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.

 
Postado : 21/11/2014 8:24 am
(@davi23)
Posts: 21
Eminent Member
Topic starter
 

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

 
Postado : 25/11/2014 6:11 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Leia:

viewtopic.php?f=7&t=12600

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

 
Postado : 25/11/2014 6:14 pm
(@davi23)
Posts: 21
Eminent Member
Topic starter
 

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.

 
Postado : 25/11/2014 7:26 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

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

 
Postado : 26/11/2014 5:15 am
(@davi23)
Posts: 21
Eminent Member
Topic starter
 

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.

 
Postado : 26/11/2014 9:08 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

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

 
Postado : 26/11/2014 9:37 am
(@davi23)
Posts: 21
Eminent Member
Topic starter
 

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

 
Postado : 26/11/2014 1:09 pm
Reinaldo
(@rlm)
Posts: 246
Estimable Member
 

Veja se auxilia.
Obs.: Postagem tambem em http://www.tomasvasquez.com.br/forum/vi ... 65&p=14360

Reinaldo

 
Postado : 26/11/2014 1:22 pm
(@davi23)
Posts: 21
Eminent Member
Topic starter
 

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

 
Postado : 26/11/2014 3:30 pm