Página 2 de 2

Re: Copiar dados da internet com Vba

Enviado: Seg Mar 07, 2016 11:24 am
por absilva
Caro professor, brilhante suas contribuições. Tem ajudado muito!
Estive revendo o código fonte da pagina e não encontrei dois elementos que você referencia no código. São esses em destaque abaixo:
.Document.getelementsbytagname("a") e .document.getElementsByTagName("li")

Código: Selecionar todos

'Caso o código Captcha esteja correto, aguarda carregar e abre o link do extrato na mesma página
        Set objElementCol = .Document.getelementsbytagname("a")
        For Each objLink In objElementCol
            If VBA.UCase(objLink.innerText) = VBA.UCase("Ver") Then
                .Navigate objLink.href
                Do While .Busy Or .ReadyState <> 4: DoEvents: Loop


Set objElementCol = .document.getElementsByTagName("li")
        For Each objError In objElementCol
            If VBA.UCase(objError.innerText) = VBA.UCase(strErrorExtrato) Then
                MsgBox strErrorExtrato, vbCritical, "Erro DAP"
                .Quit
                Exit Sub
Com relação à barra de progresso, ainda que ela fique parada aguardando carregamento de página o usuário veria que algo está sendo feito. Estou tentando te enviar o arquivo, mas diz que a extensão .xlsm não é permitida. Posso enviar em seu email?

Mais uma vez, obrigado.

Abraço

Re: Copiar dados da internet com Vba

Enviado: Seg Mar 07, 2016 11:57 am
por Mikel Silveira Fraga
Absilva, bom dia.

Para anexar o arquivo, é preciso compactá-lo como Zip ou Rar. Dessa forma, o fórum permite o envio do anexo.

Em relação a essas duas Tags, elas são dinâmicas. O que isso significa? Existe um script, provavelmente em JS, que manipula os elementos. Antes da pesquisar ser feita, eles não existem na página. Porém, conforme o resultado da pesquisa, novos elementos são criados.

A Tag "a", esta relacionada a um hyperlink, no caso o link com o texto "Ver", gerado quando a pesquisa é positiva.

Já a Tag "li", refere-se a um item de uma listagem ordenada/desordenada., gerando quando a pesquisa é negativa.

Re: Copiar dados da internet com Vba

Enviado: Seg Mar 07, 2016 5:44 pm
por absilva
Boa noite, como está?

Entendi sobre as referências. Obrigado!

Segue arquivo anexo para que possa ver a possibilidade de usar uma barra de progresso.
Mais uma vez, obrigado.
Arquivo Fórum.rar
Arquivo com todas rotinas.
(36.84 KiB) Baixado 342 vezes

Re: Copiar dados da internet com Vba

Enviado: Sex Mar 11, 2016 12:58 pm
por Mikel Silveira Fraga
Absilva, boa tarde. Tudo bem?

Cara, fiz uma adaptação que, acredito eu, tenha dado certo.

Da uma olhada no anexo e retorne se isso vai lhe atender, ok!?
Arquivo Fórum.zip
Adicionado ProgressBar - Modificado por: Mikel S. Fraga
(48.4 KiB) Baixado 344 vezes
Fico no aguardo.

Re: Copiar dados da internet com Vba

Enviado: Seg Mar 21, 2016 10:07 am
por absilva
Caro professor, funcionou perfeitamente.

Se me permite, tenho uma última demanda.

Quando a DAP está desativada, minha Plan2 se corrompe totalmente e todas as formulas se perdem.
Gostaria que quando fosse identificada a desativação, que retorne uma mensagem avisando e que todas as rotinas fossem canceladas, retornando o foco para o userform para que outro número seja digitado.
Para verificação, utilize: 015.290.771-84

Mais uma vez, obrigado.

Re: Copiar dados da internet com Vba

Enviado: Seg Mar 21, 2016 10:49 am
por Mikel Silveira Fraga
Absilva, bom dia.

Cara, adicione o código abaixo logo após a linha com o comando "Call Colar":

Código: Selecionar todos

    'Valida se esta desativada.
    For iLinha = 1 To Sheets("Plan1").UsedRange.Rows.Count
        If VBA.LCase(VBA.CStr(Sheets("Plan1").Cells(iLinha, 1).Value)) Like _
                                VBA.LCase(VBA.CStr("*desativada*")) Then
            
            MsgBox Sheets("Plan1").Cells(iLinha, 1).Value, vbCritical, "Rotina interrompida"
            UserForm1.ProgressBar1.Visible = False
            UserForm1.TextBox_CPF1.SetFocus
            Exit Sub
            
        End If
    Next iLinha
Veja se é isso que esta precisando.

Abraços.

Re: Copiar dados da internet com Vba

Enviado: Seg Mar 28, 2016 5:36 pm
por absilva
Caro professor Mikel,

muito obrigado pela ajuda.

Creio que o projeto falta alguns ajustes, mas mais do ponto de vista de estética e na criação de mais alguns botões para facilitar o trabalho. Então darei por encerrado este tópico.

Mais uma vez, obrigado!

Abraço