MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    VBA Interagindo com Internet Explorer

    Compartilhe

    Marconiz
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 12/08/2014

    VBA Interagindo com Internet Explorer

    Mensagem  Marconiz em Ter 12 Ago 2014, 04:12

    Olá, boa noite.

    Tenho um código VBA que acessa uma página da Secretaria da Fazenda, preenche um formulário e emite uma guia. Funciona perfeitamente.

    Ocorre que eu o adaptei para acessar uma página da Caixa Econômica Federal, com finalidade similar. Nesse caso, o código funcionou em parte: preenche corretamente a primeira parte do formulário, mas na hora de passar para a próxima etapa (próxima tela) o comando ie.Document.all("bt_seta").Click não funciona.

    Pela pesquisa que fiz no código fonte o nome do botão é "bt_seta.gif", mas não acontece nada ao acioná-lo.

    Fico muito grato caso possam me ajudar.

    Abs.

    Segue código:

    Public Sub Imprimir_1()
    On Error Resume Next
    Dim Endereço As String
    Dim Endereço2 As String
    Dim MyBrowser As SHDocVw.InternetExplorer
    Dim SWs As New SHDocVw.ShellWindows

    Endereço = "http://www.grfrecursal.caixa.gov.br/sisfg/pages/sfg/recursal/iniciar.jsf"
    Endereço2 = "http://www.grfrecursal.caixa.gov.br/sisfg/pages/sfg/recursal/recolhimento.jsf"
    Set ie = CreateObject("InternetExplorer.Application")
    ie.Navigate (Endereço)
    ie.Visible = True
    ie.Document.Forms.Item("frm").Item(2).Value = "04740876000125" 'CNPJ

    While ie.ReadyState <> 4
    Wend
    ie.Document.Forms.Item("frm").Item(3).Value = "Razão Social" 'Razão Social
    While ie.ReadyState <> 4
    Wend
    ie.Document.Forms.Item("frm").Item(4).Value = "Marconi" 'Nome de Contato
    While ie.ReadyState <> 4
    Wend
    ie.Document.Forms.Item("frm").Item(5).Value = "8432354872" 'Telefone de Contato
    While ie.ReadyState <> 4
    Wend
    ie.Document.Forms.Item("frm").Item(9).Value = "04740876000125" 'CNPJ

    While ie.ReadyState <> 4
    Wend

    ie.Document.all("bt_seta").Click

    Application.ScreenUpdating = True
    End Sub

    Marconiz
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 12/08/2014

    Re: VBA Interagindo com Internet Explorer

    Mensagem  Marconiz em Sex 15 Ago 2014, 04:55

    Olá, galera. Felizmente consegui avançar no código. Já conseguir acessar a segunda parte do formulário. Agora falta somente descobrir o comando para gerar a guia, ou seja, clicar em "gerar guia".
    Acredito que a solução esteja no trecho do código fonte a seguir:

    Código:

    <div class="botoes_linha"
    style="height:70px; top:110px"> <div style=";
    margin-left:594px; "><a href="#"
    onmouseup="refresh(10000)" tabindex="19"
    type="submit" onclick="var a=function(){if (!
    validateFormLocal()) {return false};A4J.AJAX.Submit('frm',event,{'parameters':{'ajaxSingle':'frm:j_id141','frm:j_id142':'frm:j_id142'}
    ,'similarityGroupingId':'frm:j_id142'} );};var b=function(){if(typeof jsfcljs
    ==
    'function'){jsfcljs(document.getElementById('frm'),{'frm:j_id141':'frm:j_id141'},'');}return
    false};return (a()==false) ? false : b();" type="submit">
    <img src="../../../imagens/bt_gerar_guia.jpg" border="0"
    alt="botão continuar" /></a>

    Ainda aguardo a ajuda dos colegas . Muito obrigado, antecipadamente.

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3348
    Registrado : 04/04/2010

    Re: VBA Interagindo com Internet Explorer

    Mensagem  Avelino Sampaio em Sex 15 Ago 2014, 10:59

    Olá!

    Veja se este tópico ajuda.

    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso!


    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    Marconiz
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 12/08/2014

    Re: VBA Interagindo com Internet Explorer

    Mensagem  Marconiz em Sab 16 Ago 2014, 04:27

    Obrigado pela sugestão, mas infelizmente não encontrei a resposta.

    Tive analisando a página do form que estou trabalhando e vi que o botão que preciso interagir faz um download do formulário no formato pdf. Só preciso identificar o nome desse botão, se é existe no código. já testei vários, sem sucesso.

    Marconiz
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 12/08/2014

    Re: VBA Interagindo com Internet Explorer

    Mensagem  Marconiz em Ter 19 Ago 2014, 02:39

    Ninguém pra compartilhar um pouquinho do conhecimento?

    Como disse, só preciso de ajuda pra entender como executar, no VBA, a função do javascript (essa do código fonte, que postei) que dispara o download da guia, na segunda parte do formulário.

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5889
    Registrado : 05/11/2009

    Re: VBA Interagindo com Internet Explorer

    Mensagem  Alexandre Neves em Ter 19 Ago 2014, 08:35

    Bom dia,
    Este fórum é de Access e tudo o que lhe interligue.
    O código baseia-se, como indicou, em javascript. Terá de ser alguém que o saiba ajudar. Fez bem em refrescar o pedido mas saiba que há muitos que só não o ajudam por impossibilidade.


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Marconiz
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 12/08/2014

    Re: VBA Interagindo com Internet Explorer

    Mensagem  Marconiz em Ter 19 Ago 2014, 15:22

    Ok. Tem razão. Mas, aguardo. Quem sabe não aparece alguém com maior vivência com VBA vs IE que possa me dá uma dica.

    Obrigado!

    Junior Meireles
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 14/08/2010

    Re: VBA Interagindo com Internet Explorer

    Mensagem  Junior Meireles em Ter 19 Ago 2014, 20:36

    Tenta colocar esta linha para ver se muda de página


    ie.Document.parentwindow.execscript ("javascript:Verifica()")

    Marconiz
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 12/08/2014

    Re: VBA Interagindo com Internet Explorer

    Mensagem  Marconiz em Qua 20 Ago 2014, 00:27

    Obrigado Junior pela atenção.

    Felizmente consegui resolver o problema: não tava conseguindo executar o click porque não foi informado no código fonte a ID do botão, nesse caso precisei utilizar o método getElementsByTagName("A") com a função InStr, na instrução For Each ...Next.

    Informo no código a descrição da caixa de texto do botão (não é a ID), no caso "bt_gerar_guia.jpg", em seguinte o elemento é identificado e executa-se o click. Ficou assim:

    Set ElementCol = IE.Document.getElementsByTagName("a")
            For Each ele In IE.Document.getElementsByTagName("a")
                If InStr(ele.innerHTML, "bt_gerar_guia.jpg") > 0 Then
                ele.Click
                End If
                Next

    De todo modo, fica aqui o meu agradecimento aqueles que tentaram me ajuda nessa questão.

    Wlw.

      Data/hora atual: Dom 04 Dez 2016, 14:12