Ir para conteúdo
Fórum Script Brasil
  • 0

Interação Excel x I.E. Radio e Select


Davi De Martini

Pergunta

Prezados colaboradores, boa tarde.

Preciso da ajuda de vocês para finalizar uma aplicação, tenho uma interação do Excel com o IE explorer onde, com os dados do excel preencho toda a planilha de um determinado site. Utilizei um script do Tomás Vasques que é fantástico, mas falta ainda dois pontos para eu finalizar.

Os campos de texto, o preencimento é bem tranquilo, mas não estou conseguindo uma forma para preencher os campos tipo "radio" e "select".

O código do site (http://www010.dataprev.gov.br/cws/conte ... index.html) é o seguinte:

<script> 
document.write('<form method="POST" name="Form1" action=' + parent.RAIZ_COMS_BIN + '>');
</script>
...
<font size="2" face="Verdana">Sexo:&nbsp; </font>
<input type="radio" value="1" name="sexo"><font size="2" face="Verdana">M</font>
<input type="radio" value="3" name="sexo"><font size="2" face="Verdana">F</font></font></td>
</tr>
<tr>
<td width="27%"><font size="2" face="Verdana" color="#000000">Especie:
</font></td>
<td width="62%"><font color="#000000"><select size="2" name="especie" style="font-size: 8 pt; font-family: Arial">
<option selected value=" ">Selecione o tipo de Benefício</option>
<option>31 - Auxilio Doença</option>
<option>32 - Aposentadoria por Invalidez</option>
<option>41 - Aposentadoria por Idade</option>
<option>42 - Aposentadoria por Tempo de Contribuição</option>
<option>57 - Aposentadoria por Tempo de Serviço de Professor </option>
<option>80 - Salário Maternidade</option>
</select><font face="Verdana" size="2"> &nbsp;</font></font></td>
Criei uma variável "sexo" que guarda a informação 1 (masc) ou 3 (fem) Outra variavel "especie" que guarda as informações do option, ex: 31 - Auxilio Doença Minha macro do excel está assim: ...
ie.Document.frames(0).Document.all("nome").innerText = nome --> Preenche o nome corretamente
ie.Document.frames(0).Document.all("sexo").innerText = sexo --> Aqui ele não seleciona nada
ie.Document.frames(0).Document.all("especie").innerText = especie --> Aqui não seleciona nada tambem.
... já tentei:
'ie.Document.frames(0).Document.all.("especie").OnClick = especie
'ie.Document.frames(0).Document.all.("especie").Value= especie
'ie.Document.frames(0).Document.all.("especie").Selected = especie
'ie.Document.frames(0).Document.getElementById.("especie").Value = especie

mas não consigo fazer selecionar as opções....

Então meu processo está semi-automatizado, pois eu preencho todos os campos (mais de 100) que são text e não consigo automatizar esses dois.

Alguém pode me ajudar?

Desde já agradeço.

Davi

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Eita, deu certinho.

João Neto, você tem ajudado bastante, obrigado.

Agora, pra finalizar só estou tentando atribuir o valor ao objeto radio do seguinte código....

<font size="2" face="Verdana">Sexo: </font>

<input type="radio" value="1" name="sexo"><font size="2" face="Verdana">M</font>

<input type="radio" value="3" name="sexo"><font size="2" face="Verdana">F</font></font></td>

</tr>

Att.

Davi

Link para o comentário
Compartilhar em outros sites

  • 0

Deu certo.

A macro ficou da seguinte forma:

Texto: ie.Document.frames(0).Document.all("datanasc").innerText = [G3]

Radio: ie.Document.frames(0).Document.getElementsByName("sexo")([E4]).Checked = True

Option: ie.Document.frames(0).Document.getElementById("especie").Item([E5]).Selected = True

Obrigado pela ajuda.

Davi

Link para o comentário
Compartilhar em outros sites

  • 0

Tenho sempre entrado nesse forum para tirar duvidas do VBA com o IE. So que não consegui matar 2 duvidas e lendo aki acho que um de vocês podem me ajudar.

Tenho uma macro que loga no meu email pessoal e envia um email para o meu email do trabalho, porem, gostaria de saber como posso anexar um arquivo nesse email, visto que, quando foi anexar um arquivo ele sai da tela do IE e abre outra janela. A outra duvida e meio que relacionada a essa, gostaria de saber como faco para controla uma janela já aberta do windows (IE mesmo) sem ter que criar um novo objeto. Pois a pouco fiz uma macro mt parecida so que nela quando clicava num link ela abrir outra janela isso me atrabalha um pouco. Fico grato se alguém me ajudar.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Pessoal!

Lendo este tópico, fiquei muito feliz, pois é isso mesmo que estou precisando e creio que vou conseguir automatizar algumas atividades aquí no trabalho.

Porém, antes de tudo, preciso entender do que se tratam esses scripts e programas em VBA. Então, uma vez que tenho à disposição o Office 2007, onde consigo instrução básica (do zero mesmo!) para integrar Access e Excel com IE ?

Tenho conhecimentos razoáveis de VB e VBA, mas nunca trabalhei com WEB.

Valeu!

Angelo

Link para o comentário
Compartilhar em outros sites

  • 0

Acho que estou precisando de algo muito parecido com o que foi colocado aqui.

Usando VBA (Excel), acesso um site via IE, executo meu login, faço confirmações nas duas páginas seguintes e chego a última página onde tenho que preeencher 10 campos, sendo que no primeiro tenho 10 opções, e nas seguinte não aparecem mais as opções que selecionei anteriormente.

Meu problema que esses campos não aceitam digitação, obrigatoriamente eu tenho que selecionar na lista de opções disponíveis.

A cada campo eu clico para abrir as opçoes, seleciono uma, e vou para o campo seguinte, até preencher as 10.

IMPORTANTE:

Para mim bastaria algo que simulasse a sequencia que executo no teclado, quando preencho manualmente: clico sobre a primeira caixa, seta pra baixo para selecionar a primeira opcao disponível, em seguida <TAB> para passar a segunda caixa, e repito isso ate preencher todas.

Tenho o código fonte da página se necessário.

alguém poderia me ajudar?

Antecipadamente grato

Paulo.

Código fonte da página:

&lt;script> 
function selec(sel, id)
{
    sel.val = sel.options[sel.selectedIndex].value;
    if( sel.val != '' )
        show(id+1);
    else
        show(id);
}

function show(id)
{
    var i, j, k, ok, opt;

    if( id >= sels.length ) return;
    for( i = id; i < sels.length; i++ )
    {
        limpa( sels[i] );
    }
    i = id;
    opt = document.createElement("OPTION");
    sels[i].options.add(opt);
    for( j = 0; j < horarios.length; j++ )
    {
        ok = true;
        for( k = 0; k < id; k++ )
            if( sels[k].val == hval[j] ) ok = false;
        if( ok )
        {
            opt = document.createElement("OPTION");
            opt.text  = horarios[j];
            opt.value = hval[j];
            sels[i].options.add(opt);
        }
    }
//    sels[id].disabled = false;
    sels[id].style.display = 'block';
}

function limpa(sel)
{
    var i;
    sel.val = '';
//    sel.disabled = true;
    sel.style.display = 'none';
    for( i = 0; i < sel.options.length; i )
        sel.options.remove(i);
}

function init()
{
    sels = [ document.frm.h1, document.frm.h2, document.frm.h3, document.frm.h4, document.frm.h5, document.frm.h6, document.frm.h7, document.frm.h8, document.frm.h9, document.frm.h10 ];
    show( 0 );
}


function continua()
{
    var ok = true;
    var i;

    for( i = 0; i < sels.length; i++ )
        if( sels[i].val == '' ) ok = false;

    if( !ok )
    {
        alert( 'Selecione suas 10 opções de horário na ordem de preferência' );
        event.returnValue = false;
        return;
    }
}

var horarios = [ '11h-12h', '12h-13h', '13h-14h', '14h-15h', '17h-18h', '18h-19h', '20h-21h', '21h-22h', '22h-23h', '23h-0h'];
var hval     = [11, 12, 13, 14, 17, 18, 20, 21, 22, 23];
var sels     = new Array;
</script>
<form action="/cgi-bin/tópico/inscricaohorario.cgi" method="POST" name="frm" id="frm" onsubmit="continua()">
<input type="Hidden" name="i" value="130160001512878905589790">
<input type="Hidden" name="cid" value="4214">
<input type="Hidden" name="nomecamp" value="Curso 2011 - Classe C">
<input type="Hidden" name="nhorarios" value="10">
<table border=0><tr><td width=20></td><td>
<b>Curso Online - Classe C</b><br>
<br>
<font color=#FF9900 class=base><b>Escolha em ordem de preferência, o horário em que deseja participar.</b></font><br>
<br>
<table class=base>
<tr height=22><td><b>1º opção<td><select name=h1 onchange="selec(this,0)" class=formtxt></select>
<tr height=22><td><b>2º opção<td><select name=h2 onchange="selec(this,1)" class=formtxt></select>
<tr height=22><td><b>3º opção<td><select name=h3 onchange="selec(this,2)" class=formtxt></select>
<tr height=22><td><b>4º opção<td><select name=h4 onchange="selec(this,3)" class=formtxt></select>
<tr height=22><td><b>5º opção<td><select name=h5 onchange="selec(this,4)" class=formtxt></select>
<tr height=22><td><b>6º opção<td><select name=h6 onchange="selec(this,5)" class=formtxt></select>
<tr height=22><td><b>7º opção<td><select name=h7 onchange="selec(this,6)" class=formtxt></select>
<tr height=22><td><b>8º opção<td><select name=h8 onchange="selec(this,7)" class=formtxt></select>
<tr height=22><td><b>9º opção<td><select name=h9 onchange="selec(this,8)" class=formtxt></select>
<tr height=22><td><b>10º opção<td><select name=h10 onchange="selec(this,9)" class=formtxt></select>

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

  • 0

Código fonte na íntegra:

<html>

<head><title>Curso prático Online</title>

<link type="text/css" rel="stylesheet" href="/kintool/css/tool.css"></link>

<link type="text/css" rel="stylesheet" href="/kintool/css/components.css"></link>

<script type="text/javascript" src="/kintool/global.js"></script>

<script type="text/javascript" src="/kintool/ajax.js"></script>

<script type="text/javascript" src="/kintool/tool.js"></script>

<script type="text/javascript" src="/kintool/form.js"></script>

<script type="text/javascript" src="/kintool/components.js"></script>

<script language="JavaScript" src="/tópico/is.js?3"></script>

<link href="/classes.css" rel="stylesheet" type="text/css">

<link href="/tópico/classes_cgi.css" rel="stylesheet" type="text/css">

</head>

<body bgcolor="#163D5C" bbgcolor="Black" text="White" link="White" vlink="White" alink="White" leftmargin=0 topmargin=0 class=base>

<table width="100%" border="0" cellspacing="0" cellpadding="0" height="50"><tr><td background="/tópico/base_janelas.jpg"><font color="#FF9900" style="font-size:18px">&nbsp;&nbsp;Aulas - Horários</font></td></tr></table>

<script>

function selec(sel, id)

{

sel.val = sel.options[sel.selectedIndex].value;

if( sel.val != '' )

show(id+1);

else

show(id);

}

function show(id)

{

var i, j, k, ok, opt;

if( id >= sels.length ) return;

for( i = id ; i < sels.length ; i++ )

{

limpa( sels );

}

i = id;

opt = document.createElement("OPTION");

sels.options.add(opt);

for( j = 0 ; j < horarios.length ; j++ )

{

ok = true;

for( k = 0 ; k < id ; k++ )

if( sels[k].val == hval[j] ) ok = false;

if( ok )

{

opt = document.createElement("OPTION");

opt.text = horarios[j];

opt.value = hval[j];

sels.options.add(opt);

}

}

// sels[id].disabled = false;

sels[id].style.display = 'block';

}

function limpa(sel)

{

var i;

sel.val = '';

// sel.disabled = true;

sel.style.display = 'none';

for( i = 0 ; i < sel.options.length ; i )

sel.options.remove(i);

}

function init()

{

sels = [ document.frm.h1, document.frm.h2, document.frm.h3, document.frm.h4, document.frm.h5, document.frm.h6, document.frm.h7, document.frm.h8, document.frm.h9, document.frm.h10 ];

show( 0 );

}

function continua()

{

var ok = true;

var i;

for( i = 0 ; i < sels.length ; i++ )

if( sels.val == '' ) ok = false;

if( !ok )

{

alert( 'Selecione suas 10 opções de horário na ordem de preferência' );

event.returnValue = false;

return;

}

}

var horarios = [ '11h-12h', '12h-13h', '13h-14h', '14h-15h', '17h-18h', '18h-19h', '20h-21h', '21h-22h', '22h-23h', '23h-0h'];

var hval = [11, 12, 13, 14, 17, 18, 20, 21, 22, 23];

var sels = new Array;

</script>

<form action="/cgi-bin/tópico/inscricaohorario.cgi" method="POST" name="frm" id="frm" onsubmit="continua()">

<input type="Hidden" name="i" value="130160001512878905589790">

<input type="Hidden" name="cid" value="4214">

<input type="Hidden" name="nomecamp" value="Curso 2011 - Classe C">

<input type="Hidden" name="nhorarios" value="10">

<table border=0><tr><td width=20></td><td>

<b>Curso Online - Classe C</b><br>

<br>

<font color=#FF9900 class=base><b>Escolha em ordem de preferência, o horário em que deseja participar.</b></font><br>

<br>

<table class=base>

<tr height=22><td><b>1º opção<td><select name=h1 onchange="selec(this,0)" class=formtxt></select>

<tr height=22><td><b>2º opção<td><select name=h2 onchange="selec(this,1)" class=formtxt></select>

<tr height=22><td><b>3º opção<td><select name=h3 onchange="selec(this,2)" class=formtxt></select>

<tr height=22><td><b>4º opção<td><select name=h4 onchange="selec(this,3)" class=formtxt></select>

<tr height=22><td><b>5º opção<td><select name=h5 onchange="selec(this,4)" class=formtxt></select>

<tr height=22><td><b>6º opção<td><select name=h6 onchange="selec(this,5)" class=formtxt></select>

<tr height=22><td><b>7º opção<td><select name=h7 onchange="selec(this,6)" class=formtxt></select>

<tr height=22><td><b>8º opção<td><select name=h8 onchange="selec(this,7)" class=formtxt></select>

<tr height=22><td><b>9º opção<td><select name=h9 onchange="selec(this,8)" class=formtxt></select>

<tr height=22><td><b>10º opção<td><select name=h10 onchange="selec(this,9)" class=formtxt></select>

</table>

<br><font class=base><font color=#FF9900><b>Atenção!</b></font> Sua nova opção de horários só será válida para a <font color=#FF9900><b>próxima programação de aulas</b></font>. Na medida do possível as aulas atenderão sua prioridade de horários mas <font color=#FF9900><b>poderão ocorrer casos em que será utilizada até mesmo sua última opção</b></font>.

<br><br>O <font color=#FF9900><b>não comparecimento</b></font> no horário definido da sua participação implicará em <font color=#FF9900><b>falta e perda de pontos</b></font>.

</font><br><br>

<input type="Submit" name="" value=" Alterar preferências de horário " class=botao>

<script>

init();

</script><br><br><br><br>

</td></tr></table></form>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...