Tutorial de UserForms no Excel

Escrito por darrin koltow | Traduzido por weber figueiredo
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Tutorial de UserForms no Excel
Insira dados em planilhas Excel através de formulários (Stockbyte/Stockbyte/Getty Images)

A linguagem Script Visual Basic do Microsoft Excel não só aumenta a sua funcionalidade, como também pode facilitar seu uso através de formulários. Tais formulários consistem em pequenas janelas através das quais os usuários podem inserir dados em planilhas.

Outras pessoas estão lendo

Crie o Formulário

Crie um formulário entrando na IDE (ambiente de desenvolvimento integrado) do Visual Basic: numa planilha do Excel, pressione "alt" + "F11". Crie um novo formulário, acessando "Inserir" > "UserForm".

Arraste e solte no formulário os seguintes controles da caixa de ferramentas: duas caixas de texto - a segunda abaixo da primeira. Adicione um botão de comando abaixo das caixas de texto e dois rótulos, cada uma à esquerda de cada caixa de texto. Na janela de propriedades, altere a legenda do rótulo superior para "Nome" e no inferior coloque "Endereço de e-mail." Altere a legenda do botão para "Enviar".

Entre com o código

Agora digite o código que pega os dados do formulário e os insere em uma planilha.

A partir da janela de designer do formulário, dê um duplo clique no botão "Enviar". O cursor irá se mover para o evento Button1_Click, que "dispara" quando o botão é clicado durante a execução do programa.

No evento Button1_Click, digite o código seguinte:

Dim r As Range

Set r = Range("a65536").End(xlUp)

Set r = r.Offset(1, 0)

r.Value = TextBox1.Value

Set r = r.Offset(0, 1) r.Value = TextBox2.Value


Escreva uma pequena sub-rotina para exibir o novo formulário. Dentro da IDE, clique duas vezes no ícone EstaPasta_de_trabalho no painel do projeto. Na janela de código, digite o seguinte:

Public Sub mac1() UserForm1.Show

End Sub

Execute o programa numa planilha do Excel, indo em Desenvolvedor > Macros, selecionando "mac1", e pressionar o botão "Executar". Insira dados em planilhas com seu formulário.

Conheça o programa

A primeira linha de Button1_Click declara uma variável range. Range é um conjunto de células em uma planilha. Você irá inserir dados nessa range com o código após a instrução Dim.

A instrução Set r = Range("a65536").End(xlUp) define a range de uma célula: aquela que está mais à esquerda na última linha de dados. Essa definição não é um código desenvolvido intuitivamente, portanto, não se preocupe caso você não entenda à primeira vista. Vamos agora desmembrar esta instrução para ver como ela funciona. A parte Range("a65536") especifica claramente a célula a65536 - última linha da primeira coluna na planilha. A parte seguinte, End(xlUp), representa outra range: é aquela na qual o cursor iria se posicionar caso você estivesse inicialmente na células a65536, depois pressionado a tecla End e em seguida, pressionado a seta para cima.

Se fosse inserir dados nessa célula, você substituiria a linha anterior. Por este motivo é necessária a próxima instrução: Set r = r.Offset(1, 0). Essa declaração redefine a range uma linha para baixo (e zero colunas à direita), em relação à sua posição anterior. A range "r" está agora na primeira célula em branco logo abaixo da última linha que contém dados. A partir daí o código pode começar a introduzir uma nova linha de dados.

Preenchendo dados na célula através da caixa de texto do formulário

As próximas declarações movem os dados do formulário para a range na qual o código identifica como a primeira célula vazias abaixo da linha de dados. r.Value = TextBox1.Value define o valor da célula vazia para o valor da primeira text box. A célula seguinte é uma coluna à direita, e Set r = r.Offset(0, 1) redefine a range para ser aquela célula. Os argumentos 0 e 1 referem-se a 0 linhas para baixo e uma célula para a direita em relação à posição da range anterior ("r").

Preencher as duas colunas completa uma linha de dados. Quando o usuário clica no botão, o evento Button1_Click será executado novamente. O comando Set r = Range("a65536").End(xlUp) irá novamente definir corretamente a range da nova linha.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível