Preenchendo os formulários com os dados da tabela

Formulação do problema

Temos um banco de dados (lista, tabela – chame como quiser) com informações sobre pagamentos em uma planilha Data:

Tarefa: imprima rapidamente um recibo em dinheiro (pagamento, fatura ...) para qualquer entrada desejada selecionada nesta lista. Vai!

Etapa 1. Criar um formulário

Em outra folha do livro (vamos chamar esta folha Contato) crie um formulário vazio. Você pode fazer isso sozinho, pode usar formulários prontos, retirados, por exemplo, dos sites da revista Chief Accountant ou do site da Microsoft. Eu tenho algo assim:

Preenchendo os formulários com os dados da tabela

Em células vazias (Conta, Valor, Recebido de etc.) obterá os dados da tabela de pagamento de outra planilha – um pouco mais tarde trataremos disso.

Passo 2: Preparando a tabela de pagamento

Antes de pegar os dados da tabela para o nosso formulário, a tabela precisa ser um pouco modernizada. Ou seja, insira uma coluna vazia à esquerda da tabela. Usaremos para inserir um rótulo (seja a letra inglesa “x”) em frente à linha da qual queremos adicionar dados ao formulário:

Etapa 3. Vinculando a tabela e o formulário

Para comunicação, usamos a função VPR(PROCV) - Você pode ler mais sobre isso aqui. No nosso caso, para inserir o número do pagamento marcado com “x” da Folha de Dados na célula F9 do formulário, você deve inserir a seguinte fórmula na célula F9:

=PROCV(“x”,Dados!A2:G16)

=PROCV(“x”;Dados!B2:G16;2;0)

Aqueles. traduzida para “compreensível”, a função deve encontrar no intervalo A2: G16 na folha de dados uma linha começando com o caractere “x” e nos fornecer o conteúdo da segunda coluna desta linha, ou seja, o número do pagamento.

Todas as outras células do formulário são preenchidas da mesma forma – apenas o número da coluna muda na fórmula.

Para exibir o valor em palavras, usei a função Próprio do complemento PLEX.

O resultado deve ser o seguinte:

Preenchendo os formulários com os dados da tabela

Passo 4. Para que não haja dois “x”…

Se o usuário digitar “x” em várias linhas, a função VLOOKUP levará apenas o primeiro valor que encontrar. Para evitar essa ambiguidade, clique com o botão direito do mouse na guia da planilha Data e depois Texto original (Código fonte). Na janela do editor Visual Basic que aparece, copie o seguinte código:

Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Long Dim str As String If Target.Count > 1 Then Exit Sub If Target.Column = 1 Then str = Target.Value Application.EnableEvents = False r = Cells(Rows.Count , 2).End(xlUp).Row Range("A2:A" & r).ClearContents Target.Value = str End If Application.EnableEvents = True End Sub  

Essa macro impede que o usuário insira mais de um “x” na primeira coluna.

Bom, isso é tudo! Apreciar!

  • Usando a função PROCV para substituir valores
  • Uma versão melhorada da função PROCV
  • Valor em palavras (função propis) do complemento PLEX

 

Deixe um comentário