Compartilhar via

Preenchimento de formulário HTML a partir de dados de uma planilha Excel.

Anônima
2021-09-25T00:41:08+00:00

Boa noite! Tenho uma planilha Excel que contem a frequência de uma turma em uma dada disciplina e gostaria preencher automaticamente esses dados no sistema web da instituição de ensino. No site, tenho um código parecido com:

...</div><table class="tabela-congelada" id="table_faltas"><thead><tr><th>Aluno<br></th><th class="align-center">20/09/2021 <span>Seg, 1 aula</span></th><th class="align-center">17/09/2021 <span>****, 2 aulas</span></th><th class="align-center">13/09/2021 <span>Seg, 1 aula</span></th><th class="align-center">10/09/2021 <span>****, 2 aula</span></th><th>Situação da Frequência</th></tr></thead><tbody><tr ><td>

            1 - 

        	Nome\_Aluno\_1 (&lt;a href="/edu/aluno/Numero\_Matricula\_1/"&gt;Numero\_Matricula\_1&lt;/a&gt;) 

            &lt;img width="35" src="/media/alunos/75x100/NArquivo.Id\_xxxxx.jpg" align="left"/&gt;&lt;/td&gt;&lt;td class="align-center" style="width:1%"&gt;&lt;div &gt;&lt;input name="2610073;1000407" type="text" class="pq align-center" value="1"  

                    onfocus="this.oldvalue = this.value;" 

                    onblur="javascript: 

                    if((this.value &gt; 1) || (this.value &lt; 0) || (this.value != parseInt(this.value, 10))) { 

                        alert('Quantidade de faltas inválida.'); 

                        $(this).addClass('errors'); 

                        $(this).val(1); 

                        return true; 

                    } 

                    if(this.value != this.oldvalue){ 

                        $.ajax({ 

                            url: '/edu/registrar\_chamada\_ajax/2610073/1000407/'+this.value+'/', 

                            method: 'GET', 

                            context: this, 

                            error: function() {$( this ).addClass( 'errors' ); $(this).val(1); } 

                            }).success(function(data) { 

                            	if(data=='OK'){ 

                              		$( this ).addClass( 'filled' ); 

                              	}else{ 

                              		alert(data); 

                              	} 

                            }); 

                    } 

                    "/&gt;&lt;/div&gt;&lt;/td&gt;&lt;td ... 'Repete a mesma estrutura do primeiro input para cada coluna da tabela

'Repete mesma estrutura da primeira linha de dados da tabela para cada aluno

'Finalizada a tabela, vem

</div></div><div class="submit-row"><input type="submit" value="Salvar Alterações" /></div></form>...

Para preencher cada input com os dados das faltas dos alunos, uso o código VBA que segue:

Sub EduAutomação()

Dim IE As Object

Set IE = CreateObject("InternetExplorer.application")

With IE

.Visible = True

'Faz registro das faltas da coluna ativa na Unidade 2:

.Navigate ("URL_Sistema_Educacinal")

Do While .Busy Or .ReadyState <> 4

    DoEvents

Loop

Set Crt = .Document.getElementsByTagName("INPUT")

                For Each btnInput2 In Crt

                    If btnInput2.Value Like "Salvar Alterações" Then

                        Exit For

                    End If

                Next btnInput2

Lin = Primeira_linha_da_Planilha_de_Alunos

Col = Ultima_coluna_da_Planilha_de_Alunos 'O sistema organiza as datas em ordem inversa

For Each btnInput In Crt

    If btnInput.Type Like "text" Then

       btnInput.Focus

        btnInput.Value = CStr(Cells(Lin, Col))

        If Col > Primeira_coluna_da_Planilha_de_Alunos Then

            Col = Col - 1

        Else

            Col = Ultima_coluna_da_Planilha_de_Alunos

            If Lin < Ultima_linha_da_Planilha_de_Alunos Then

                btnInput2.Click 'Salva a tabela de faltas antes de seguir com próxima linha

                Lin = Lin + 1

            Else

                Exit For

            End If

        End If

    End If

Next btnInput

IE.Quit

End With

End Sub

Todos os dados de faltas dos alunos são corretamente preenchidos nos respectivos inputs, mas para minha surpresa, Esses dados não são salvos com o comando btnInput2.Click (Salvar Alterações). Sou iniciante no VBA, mas tenho conhecimento de outras linguagens. Alguém sabe explicar onde estou falhando? Agradeço desde já qualquer contribuição.

Microsoft 365 e Office | Excel | Para uso doméstico | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários

3 respostas

Classificar por: Mais útil
  1. Anônima
    2021-09-25T02:37:43+00:00

    De nada!

    Espero que dê tudo certo.

    Esta resposta foi útil?

    0 comentários Sem comentários
  2. Anônima
    2021-09-25T01:43:11+00:00

    Obrigado Lélia. Vou verificar.

    Esta resposta foi útil?

    0 comentários Sem comentários
  3. Anônima
    2021-09-25T01:36:03+00:00

    Olá , tudo bem?

    Obrigada por entrar em contato com a Comunidade Microsoft.

    Meu nome é Valéria e farei o possível para ajudar.

    Para obter maiores esclarecimentos sobre o seu questionamento, peço a gentileza de acessar o link abaixo que vai direcioná-lo ao MSDN que é um fórum especialmente destinado para desenvolvedores e profissionais em TI para tratar está questão.

    https://social.msdn.microsoft.com/Forums/pt-BR/....

    Para criar uma nova pergunta no fórum MSDN, acesse:

    https://social.msdn.microsoft.com/Forums/pt-BR/....

    Basta logar com a sua conta Microsoft.

    Espero ter ajudado, até mais!

    Esta resposta foi útil?

    0 comentários Sem comentários