UserForm VBA

Formulário de usuário Excel VBA

Userform em VBA são formulários personalizados definidos pelo usuário que são feitos para receber a entrada de um usuário no formato de um formulário, tem diferentes conjuntos de controles para adicionar, como caixas de texto, rótulos de caixas de seleção, etc. para guiar um usuário para inserir um valor e armazena o valor na planilha, cada parte do formulário do usuário possui um código exclusivo.

Userform é um objeto dentro da interface do Excel e dentro desse formulário do usuário, podemos criar outras caixas de diálogo personalizadas úteis para obter os dados do usuário. Quando você está trabalhando com um arquivo de macro criado por seu sênior ou que pode ser baixado da Internet, você deve ter visto um formulário de usuário como este.

Neste artigo, mostraremos como criar um formulário de usuário semelhante para armazenar os dados do usuário.

Como criar Userform?

Da mesma forma que você insere um novo módulo, você precisa clicar no botão INSERT no Editor do Visual Basic para inserir o Userform.

Você pode baixar este modelo VBA Userform Excel aqui - VBA Userform Excel Template

Assim que você clicar nele, o formulário do usuário também será inserido.

Antes de dizer como programar, vou mostrar como formatar esse formulário de usuário.

Formatando formulário do usuário

Ao selecionar o formulário do usuário, pressione a tecla F4 para exibir a janela de propriedades.

Usando esta janela de propriedades, podemos formatar este formulário do usuário, podemos nomeá-lo, podemos mudar a cor, estilo da borda, etc ...

Assim, tente outras propriedades para obter a visão do formulário do usuário.

Agora, para este formulário de usuário, insira a caixa de ferramentas.

Agora veremos uma caixa de ferramentas como esta.

Neste momento, o formulário do usuário é apenas inserido e não programado. Para saber como funciona basta clicar no botão executar, veremos o formulário na planilha do excel.

Agora, usando o rótulo de desenho da Caixa de Ferramentas.

Insira o texto como nome do funcionário dentro do rótulo.

Para este rótulo, podemos formatar usando propriedades. Agora inserimos o texto como “Nome do funcionário:” agora podemos ver isso na janela de propriedades em Legendas.

Insira mais uma etiqueta. Para inserir mais uma etiqueta, você pode clicar em uma caixa de ferramentas ou pode arrastar a etiqueta atual segurando a tecla Ctrl , você terá uma réplica da etiqueta atual.

Agora teremos o mesmo rótulo.

Altere o nome para ID do funcionário.

Agora, da mesma forma, insira mais uma etiqueta e nomeie como “Departamento”.

Agora, na caixa de ferramentas, insira uma caixa de texto.

Nomeie essa caixa de texto como EmpName na janela de propriedades.

Assim, insira mais duas caixas de texto em de ID do funcionário e Departamento, respectivamente. Nomeie essas caixas de texto de acordo com seu título.

Da mesma forma, faça isso para o Departamento.

Agora, na caixa de ferramentas, insira o botão de comando.

Altere o nome do botão de comando para “SubmitButton” e altere a legenda para “Enviar”.

Insira mais um botão e chame-o de “Cancelar”.

Agora, apenas para ver a execução, pressione o botão Executar ou use a tecla F5 e veja como fica o formulário do usuário no Excel.

Agora está tomando forma.

Código VBA

Agora o usuário irá inserir dados neste, então precisamos programar isso para armazenar os dados inseridos pelo usuário neste formulário.

Dê um duplo clique no botão SUBMIT, ele o levará para a janela de macro com uma macro criada automaticamente como a abaixo.

It says SubmitButton click, remember we had given a name for SUBMIT button as SubmitButton.

So, whenever we want to call this button we can call this by this name (submit button). Inside this macro copy and paste the below code.

Code:

 Private Sub SubmitButton_Click() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(LR, 1).Value = EmpName.Value Cells(LR, 2).Value = EmpID.Value Cells(LR, 3).Value = Dept.Value EmpName.Value = "" EmpID.Value = "" Dept.Value = "" End Sub 

  • EmpName.Value here EmpName is the text box name we had given while creating the employee name text box.
  • EmpID.Value here EmpID is the text box name of Employee ID text box.
  • Dept.Value this is department text box name.

So, on the click on submit button it will store the values in the mentioned cells.

Now double click on Cancel button, this will also show you the auto macro name like this.

Copy the below code and paste.

Code:

 Private Sub CancelButton_Click() MyUserForm.Hide End Sub 

MyUserForm is the name we had given to the userform. MyUserForm.Hide means on the click on the CANCEL button it will hide the userform.

Ok, now create a template like this in the worksheet.

Delete all the other sheets in the workbook except this template sheet.

Now go to Visual Basic Editor.

And run the macro using F5 key or manually, we will see user form in front of us.

Enter the employee name, employee id, and Department name.

Now if you click on the SUBMIT button, it will store the values on to the template we have created.

Like this you can keep entering the names, userform will keep storing the values entered by the user in the specified cells.

So by using USER FORM, we can actually create wonderful projects to get the information from the user.