ATENÇÃO NOVOS USUÁRIOS

Se registrou recentemente? Seu cadastro será avaliado e mendiante aprovação, a conta será ativada e você poderá usufruir do fórum. O tempo de avaliação gira em torno de 24 a 48 horas.

Esqueceu sua senha?

Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

[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 » Seg Mar 07, 2016 11:24 am

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: 1122
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Betim - MG
Contato:

Re: Copiar dados da internet com Vba

Mensagem por Mikel Silveira Fraga » Seg Mar 07, 2016 11:57 am

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.


Gostou da dica? Clique no JOIA no topo da mensagem.
Esclareceu suas dúvidas? Acrescente ao título do tópico a expressão: [RESOLVIDO].
Orientações sobre o fórum, acesse aqui.

Mikel Silveira Fraga
E-mail: mikel-sf@hotmail.com | Linked In

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 » Seg Mar 07, 2016 5:44 pm

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 145 vezes



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

Re: Copiar dados da internet com Vba

Mensagem por Mikel Silveira Fraga » Sex Mar 11, 2016 12:58 pm

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


Gostou da dica? Clique no JOIA no topo da mensagem.
Esclareceu suas dúvidas? Acrescente ao título do tópico a expressão: [RESOLVIDO].
Orientações sobre o fórum, acesse aqui.

Mikel Silveira Fraga
E-mail: mikel-sf@hotmail.com | Linked In

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 » Seg Mar 21, 2016 10:07 am

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: 1122
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Betim - MG
Contato:

Re: Copiar dados da internet com Vba

Mensagem por Mikel Silveira Fraga » Seg Mar 21, 2016 10:49 am

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.


Gostou da dica? Clique no JOIA no topo da mensagem.
Esclareceu suas dúvidas? Acrescente ao título do tópico a expressão: [RESOLVIDO].
Orientações sobre o fórum, acesse aqui.

Mikel Silveira Fraga
E-mail: mikel-sf@hotmail.com | Linked In

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 » Seg Mar 28, 2016 5:36 pm

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