Visual Basic é uma excelente linguagem para automatizar tarefas repetitivas no Excel. Imagine elevar sua automação criando formulários de usuário altamente funcionais que também parecem organizados para os usuários finais.

Os formulários de usuário no VBA apresentam uma tela em branco; você pode projetar e organizar os formulários para atender às suas necessidades a qualquer momento.

Neste guia, você aprenderá a criar um formulário de entrada de dados baseado no aluno que captura informações relevantes em planilhas do Excel vinculadas.

Criando um formulário de usuário com Excel VBA

Abra uma nova pasta de trabalho do Excel e execute algumas etapas preliminares antes de começar a criar seu formulário de entrada de dados.

Salve sua pasta de trabalho com o nome desejado; não se esqueça de alterar o tipo do arquivo para um Pasta de trabalho habilitada para macro do Excel.

Relacionado:Sites e blogs para aprender dicas e truques do Excel

Adicione duas planilhas a esta pasta de trabalho, com os seguintes nomes:

instagram viewer
  1. Folha1: Lar
  2. Folha2:Banco de dados do aluno

Sinta-se à vontade para alterar esses nomes conforme suas necessidades.

No Lar planilha, adicione um botão para controlar a macro de formulário do usuário. Vou ao Desenvolvedor guia e clique no botão Botão opção do Inserir lista suspensa. Coloque o botão em qualquer lugar da folha.

Depois de colocar o botão, renomeie-o. Clique com o botão direito do mouse sobre ele e clique em Novo para atribuir uma nova macro para mostrar o formulário.

Digite o seguinte código na janela do editor:

Subbotão1_Click()
UserForm. Mostrar
Finalizar Sub

Uma vez o Lar e Banco de dados do aluno as planilhas estão prontas, é hora de projetar o formulário do usuário. Navegue até o Desenvolvedor guia e clique em Visual básico para abrir o Editor. Alternativamente, você pode pressionar ALT+F11 para abrir a janela do editor.

Clique no Inserir guia e selecione Formulário de usuário.

Um formulário de usuário em branco está pronto para uso; uma caixa de ferramentas acompanhante é aberta junto com o formulário, que possui todas as ferramentas essenciais para projetar o layout.

Na caixa de ferramentas, selecione o Quadro, Armação opção. Arraste isso para o formulário do usuário e redimensione-o.

No (nome) opção, você pode alterar o nome do quadro. Para exibir o nome no front-end, você pode alterar o nome no Rubrica coluna.

A seguir, selecione o Rótulo opção da caixa de ferramentas e insira duas etiquetas dentro deste quadro. Renomeie o primeiro como Número do aplicativo e o segundo como Identidade estudantil.

A mesma lógica de renomeação se aplica; alterar os nomes através do Rubrica opção dentro do Propriedades janela. Certifique-se de selecionar o respectivo rótulo antes de alterar seu nome.

Em seguida, insira duas caixas de texto ao lado das caixas de rótulo. Estes serão usados ​​para capturar as entradas do usuário. Altere os nomes de duas caixas de texto através do (Nome) coluna dentro do Propriedades janela. Os nomes são os seguintes:

  • Caixa de texto1: txtApplicationNo
  • Caixa de texto2: txtStudentID

Projetando o quadro de detalhes do aluno

Insira um quadro vertical e adicione 10 rótulos e 10 caixas de texto. Renomeie cada um deles da seguinte maneira:

  • Etiqueta3: Nome
  • Etiqueta 4: Idade
  • Etiqueta 5: Endereço
  • Etiqueta6: Telefone
  • Etiqueta 7: Cidade
  • Etiqueta8: País
  • Etiqueta9: Data de nascimento
  • Etiqueta10: Código postal
  • Etiqueta11: Nacionalidade
  • Etiqueta12: Gênero

Insira as caixas de texto correspondentes ao lado desses rótulos; insira dois (ou mais) botão de opção caixas da caixa de ferramentas do formulário do usuário ao lado do Gênero sexual rótulo. Renomeie-os Macho e Fêmea (junto com Custom), respectivamente.

Projetando o quadro de detalhes do curso

Adicione outro quadro vertical e insira seis rótulos e seis caixas de texto correspondentes a cada rótulo. Renomeie os rótulos da seguinte maneira:

  • Etiqueta13: Nome do curso
  • Etiqueta14: Identidade do curso
  • Etiqueta15: Data de início da inscrição
  • Etiqueta16: Data de término da inscrição
  • Etiqueta17: Duração do curso
  • Etiqueta18: Departamento

Relacionado: 4 erros a serem evitados ao programar macros do Excel com VBA

Projetando o Quadro de Detalhes de Pagamento

Insira um novo quadro; adicione um novo rótulo e renomeie-o como "Deseja atualizar os detalhes do pagamento?" Insira dois botões de opção; renomeá-los sim e Não.

Da mesma forma, adicione um novo quadro contendo dois rótulos adicionais e duas caixas de combinação. Renomeie os rótulos da seguinte maneira:

  • Etiqueta19: Pagamento recebido
  • Etiqueta20: Modo de pagamento

Projetando o painel de navegação

No quadro final, adicione três botões da caixa de ferramentas, que conterá o código para a execução dos formulários.

Renomeie os botões da seguinte maneira:

  • Botão1: Salvar detalhes
  • Botão2: Forma limpa
  • Botão3: Saída

Escrevendo o código de formulário automatizado: botão Salvar detalhes

Clique duas vezes no Salvar detalhes botão. No módulo seguinte, insira o seguinte código:

Subcomando PrivadoButton2_Click()

‘declara as variáveis ​​usadas ao longo dos códigos
Dim sht As Worksheet, sht1 As Worksheet, lastrow As Long

'Adicionar validações para verificar se os valores dos caracteres estão sendo inseridos nos campos numéricos.
Se VBA.IsNumeric (txtApplicationNo. Value) = False Then
MsgBox "Somente valores numéricos são aceitos no Application Number", vbCritical
Sair Sub
Fim se

Se VBA.IsNumeric (txtStudentID.Value) = False Então
MsgBox "Somente valores numéricos são aceitos no ID do Aluno", vbCritical
Sair Sub
Fim se

Se VBA.IsNumeric (txtAge. Valor) = Falso Então
MsgBox "Somente valores numéricos são aceitos em Idade", vbCritical
Sair Sub
Fim se

Se VBA.IsNumeric (txtPhone. Valor) = Falso Então
MsgBox "Somente valores numéricos são aceitos no número de telefone", vbCritical
Sair Sub
Fim se

Se VBA.IsNumeric (Me.txtCourseID.Value) = False Então
MsgBox "Somente valores numéricos são aceitos no ID do curso", vbCritical
Sair Sub
Fim se

'vincula os campos da caixa de texto com as planilhas subjacentes para criar um banco de dados contínuo
Defina sht = ThisWorkbook. Planilhas("Banco de dados de alunos")

'calcula a ultima linha preenchida em ambas as planilhas

última linha = sht. Range("a" & Linhas. Contagem).Fim (xlUp).Linha + 1

'cola os valores de cada caixa de texto em suas respectivas células da planilha

Com merda
.Range("a" & lastrow).Value = txtApplicationNo. Valor
.Range("b" & lastrow).Value = txtStudentID.Value
.Range("c" & lastrow).Value = txtName. Valor
.Range("d" & lastrow).Value = txtAge. Valor
.Range("e" & lastrow).Value = txtDOB.Value
.Range("g" & lastrow).Value = txtAddress. Valor
.Range("h" & lastrow).Value = txtPhone. Valor
.Range("i" & lastrow).Value = txtCidade. Valor
.Range("j" & lastrow).Value = txtPaís. Valor
.Range("k" & lastrow).Value = txtZip. Valor
.Range("l" & lastrow).Value = txtNacionalidade. Valor
.Range("m" & lastrow).Value = txtCurso. Valor
.Range("n" & lastrow).Value = txtCourseID.Value
.Range("o" & lastrow).Value = txtenrollmentstart. Valor
.Range("p" & lastrow).Value = txtenrollmenteend. Valor
.Range("q" & lastrow).Value = txtcourseduration. Valor
.Range("r" & lastrow).Value = txtDept. Valor

Terminar com
merda Ativar

'determina o sexo de acordo com a entrada do usuário
Se optMale. Valor = Verdadeiro Então sht. Range("g" & lastrow).Value = "Masculino"
Se optFemale. Valor = Verdadeiro Então sht. Range("g" & lastrow).Value = "Female"
'Exibe uma caixa de mensagem, caso o usuário selecione o botão de opção Sim

Se optarSim. Valor = Verdadeiro Então
MsgBox "Por favor, selecione os dados de pagamento abaixo"
Outro:
Sair Sub

Fim se

Finalizar Sub

Se você não tiver certeza do que significa parte ou qualquer parte do código, não se preocupe. Explicaremos isso detalhadamente na próxima seção.

Código de formulário automatizado explicado

As caixas de texto conterão uma mistura de texto e valores numéricos, portanto, é essencial restringir a entrada do usuário. O Número do aplicativo, Identidade estudantil, Idade, Telefone, Identidade do curso, e Duração do curso deve conter apenas números, enquanto o restante conterá texto.

Usando um E SE instrução, o código acionará pop-ups de erro se o usuário inserir um caractere ou valor de texto em qualquer um dos campos numéricos.

Como as validações de erro estão em vigor, você precisa vincular as caixas de texto às células da planilha.

O última fila variáveis ​​calcularão a última linha preenchida e armazenarão os valores nelas para uso dinâmico.

Por fim, os valores são colados das caixas de texto na planilha do Excel vinculada.

Limpar formulário e códigos de botão de saída

No Claro botão, você precisa escrever o código para limpar os valores existentes do formulário do usuário. Isso pode ser feito da seguinte maneira:

Comigo
.txtApplicationNo. Valor = ""
.txtStudentID.Value = ""
..txtNome. Valor = ""
.txtIdade. Valor = ""
.txtEndereço. Valor = ""
.txtTelefone. Valor = ""
.txtCidade. Valor = ""
.txtPaís. Valor = ""
.txtDOB.Value = ""
.txtZip. Valor = ""
.txtNacionalidade. Valor = ""
.txtCurso. Valor = ""
.txtCourseID.Value = ""
.txtinício da inscrição. Valor = ""
.txtenrollmenteend. Valor = ""
.txtcursoduração. Valor = ""
.txtDept. Valor = ""
.cmbPaymentMode. Valor = ""
.cmbPagamento. Valor = ""
.optFeminino. Valor = Falso
.optMasculino. Valor = Falso
.optSim. Valor = Falso
.optNo. Valor = Falso

Terminar com

No saída botão, digite o seguinte código para fechar o formulário do usuário.

Subcomando PrivadoButton5_Click()
Descarregue-me
Finalizar Sub

Como último passo, você precisa inserir alguns pedaços finais de código para criar os valores suspensos para as caixas de combinação (dentro dos quadros de pagamento).

Private Sub UserForm_Activate()

Com cmbPagamento
.Claro
.Adicionar Item ""
.AddItem "Sim"
.AddItem "Não"
Terminar com
Com cmbPaymentMode

.Claro
.Adicionar Item ""
.AddItem "Dinheiro"
.AddItem "Cartão"
.AddItem "Verificar"
Terminar com
Finalizar Sub

A automação VBA facilita o trabalho

VBA é uma linguagem multifacetada que serve a muitos propósitos. Os formulários de usuário são apenas um aspecto do VBA - há muitos outros usos, como consolidar pastas de trabalho e planilhas, mesclar várias planilhas do Excel e outros usos de automação úteis.

Não importa o objetivo de automação, o VBA está à altura da tarefa. Se você continuar aprendendo e praticando, não há aspecto do seu fluxo de trabalho que você não possa melhorar.

Como mesclar várias planilhas do Excel usando uma macro VBA

Mesclar dados de mais de uma planilha do Excel na mesma pasta de trabalho é um verdadeiro aborrecimento... até você usar macros VBA.

Leia a seguir

ParticipaçãoTweetE-mail
Tópicos relacionados
  • Programação
  • Produtividade
  • Programação Visual Basic
  • Microsoft Excel
Sobre o autor
Gaurav Siyal (50 artigos publicados)

Gaurav Siyal tem dois anos de experiência em redação, escrevendo para uma série de empresas de marketing digital e documentos de ciclo de vida de software.

Mais de Gaurav Siyal

Assine a nossa newsletter

Junte-se à nossa newsletter para dicas de tecnologia, análises, e-books gratuitos e ofertas exclusivas!

Clique aqui para assinar