Vídeo recomendado
https://youtu.be/diWPPPhW-9E

[RESOLVIDO]Copiar dados da internet com Vba

A Web está aí, não há como negar. Ela é onipresente em praticamente toda operação eletrônica realizada nos dias de hoje. Como não podia ser diferente, o Excel, ferramenta máxima para analistas e profissionais das mais diversas áreas do mercado precisa estar alinhado com esta necesssidade. E ele está! Neste forum, o debate é focado em expor dúvidas, sugestões, modelos de código e exemplos de uso do Excel na Integração com tecnologias Web.
absilva
Acabou de chegar
Acabou de chegar
Mensagens: 9
Registrado em: Sex Fev 19, 2016 12:51 pm

Re: Copiar dados da internet com Vba

Mensagem 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


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Copiar dados da internet com Vba

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


absilva
Acabou de chegar
Acabou de chegar
Mensagens: 9
Registrado em: Sex Fev 19, 2016 12:51 pm

Re: Copiar dados da internet com Vba

Mensagem 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 332 vezes


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Copiar dados da internet com Vba

Mensagem 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 334 vezes
Fico no aguardo.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


absilva
Acabou de chegar
Acabou de chegar
Mensagens: 9
Registrado em: Sex Fev 19, 2016 12:51 pm

Re: Copiar dados da internet com Vba

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


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Copiar dados da internet com Vba

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


absilva
Acabou de chegar
Acabou de chegar
Mensagens: 9
Registrado em: Sex Fev 19, 2016 12:51 pm

Re: Copiar dados da internet com Vba

Mensagem 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


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder