/ / Excel User form VBA

Excel UserManager VBA

Adicione os controles | Mostrar o formulário do usuário | Atribuir as macros | Teste o formulário do usuário

Este capítulo ensina como criar um Excel UserManager VBA. A forma de usuário que vamos criar é a seguinte:

Excel UserManager VBA

Adicione os controles

Para adicionar os controles ao Userform, execute as etapas a seguir.

1. Abra o Editor do Visual Basic. Se o Explorador de Projetos não estiver visível, clique em Visualizar, Explorador de Projetos.

2. Clique em Inserir, Userform. Se a caixa de ferramentas não aparecer automaticamente, clique em Exibir, Caixa de ferramentas. Sua tela deve ser configurada como abaixo.

Configuração da Tela Userform no Excel VBA

3. Adicione os controles listados na tabela abaixo. Depois que isso for concluído, o resultado deve ser consistente com a imagem da forma de usuário mostrada anteriormente. Por exemplo, crie um controle de caixa de texto clicando em TextBox na caixa de ferramentas. Em seguida, você pode arrastar uma caixa de texto no Userform. Quando você chegar no quadro Car, lembre-se de desenhar este quadro antes de colocar os dois botões de opção nele.

4 Altere os nomes e legendas dos controles de acordo com a tabela abaixo. Os nomes são usados ​​no código do Excel VBA. Legendas são aquelas que aparecem na tela. É uma boa prática alterar os nomes dos controles. Isso tornará seu código mais fácil de ler. Para alterar os nomes e legendas dos controles, clique em Exibir, janela Propriedades e clique em cada controle.

Ao controle Nome Rubrica
Userform DinnerPlannerUserForm Planejador de jantar
Caixa de texto NameTextBox
Caixa de texto PhoneTextBox
List Box CityListBox
Caixa combo DinnerComboBox
Caixa de verificação DateCheckBox1 13 de junho
Caixa de verificação DateCheckBox2 20 de junho
Caixa de verificação DateCheckBox3 27 de junho
Quadro, Armação CarFrame Carro
Botão de Opção CarOptionButton1 sim
Botão de Opção CarOptionButton2 Não
Caixa de texto MoneyTextBox
Botão girar MoneySpinButton
Botão de comando OKButton Está bem
Botão de comando ClearButton Claro
Botão de comando CancelButton Cancelar
7 etiquetas Não há necessidade de mudar Nome:, Número de Telefone :, etc.

Nota: uma caixa de combinação é uma lista suspensa de onde um usuário pode selecionar um item ou preencher sua própria escolha. Apenas um dos botões de opção pode ser selecionado.

Mostrar o formulário do usuário

Para mostrar o formulário de usuário, coloque um botão de comando em sua planilha e adicione a seguinte linha de código:

Private Sub CommandButton1_Click()

DinnerPlannerUserForm.Show

End Sub

Agora vamos criar o Sub UserForm_Initialize. Quando você usa o método Show para o Userform, este sub será automaticamente executado.

1. Abra o Editor do Visual Basic.

2. No Project Explorer, clique com o botão direito do mouse em DinnerPlannerUserForm e, em seguida, clique em View Code.

3. Escolha Userform na lista suspensa à esquerda. Escolha Inicializar na lista suspensa à direita.

4. Adicione as seguintes linhas de código:

Private Sub UserForm_Initialize()

"Empty NameTextBox
NameTextBox.Value = ""

"Empty PhoneTextBox
PhoneTextBox.Value = ""

"Empty CityListBox
CityListBox.Clear

"Fill CityListBox
With CityListBox
    .AddItem "San Francisco"
    .AddItem "Oakland"
    .AddItem "Richmond"
End With

"Empty DinnerComboBox
DinnerComboBox.Clear

"Fill DinnerComboBox
With DinnerComboBox
    .AddItem "Italian"
    .AddItem "Chinese"
    .AddItem "Frites and Meat"
End With

"Uncheck DataCheckBoxes

DateCheckBox1.Value = False
DateCheckBox2.Value = False
DateCheckBox3.Value = False

"Set no car as default
CarOptionButton2.Value = True

"Empty MoneyTextBox
MoneyTextBox.Value = ""

"Set Focus on NameTextBox
NameTextBox.SetFocus

End Sub

Explicação: caixas de texto são esvaziadas, caixas de listagem e caixas de combinação são preenchidas, caixas de seleção estão desmarcadas, etc.

Atribuir as macros

Agora criamos a primeira parte do formulário de usuário. Embora pareça arrumado, nada acontecerá quando clicarmos nos botões de comando no Userform.

1. Abra o Editor do Visual Basic.

2. No Project Explorer, clique duas vezes em DinnerPlannerUserForm.

3. Clique duas vezes no botão de rotação do Money.

4. Adicione a seguinte linha de código:

Private Sub MoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

End Sub

Explicação: esta linha de código atualiza a caixa de texto quando você usa o botão giratório.

5. Clique duas vezes no botão OK.

6. Adicione as seguintes linhas de código:

Private Sub OKButton_Click()

Dim emptyRow As Long

"Make Sheet1 active
Sheet1.Activate

"Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1

"Transfer information
Cells(emptyRow, 1).Value = NameTextBox.Value
Cells(emptyRow, 2).Value = PhoneTextBox.Value
Cells(emptyRow, 3).Value = CityListBox.Value
Cells(emptyRow, 4).Value = DinnerComboBox.Value

If DateCheckBox1.Value = True Then Cells(emptyRow, 5).Value = DateCheckBox1.Caption

If DateCheckBox2.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox2.Caption

If DateCheckBox3.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox3.Caption

If CarOptionButton1.Value = True Then
    Cells(emptyRow, 6).Value = "Yes"
Else
    Cells(emptyRow, 6).Value = "No"
End If

Cells(emptyRow, 7).Value = MoneyTextBox.Value

End Sub

Explicação: primeiro, ativamos a Sheet1. Em seguida, determinamos emptyRow. A variável emptyRow é a primeira linha vazia e aumenta toda vez que um registro é adicionado. Por fim, transferimos as informações do Userform para as colunas específicas do emptyRow.

7. Clique duas vezes no botão Limpar.

8. Adicione a seguinte linha de código:

Private Sub ClearButton_Click()

Call UserForm_Initialize

End Sub

Explicação: esta linha de código chama o Sub UserForm_Initialize quando você clica no botão Limpar.

9. Clique duas vezes no botão Cancelar.

10. Adicione a seguinte linha de código:

Private Sub CancelButton_Click()

Unload Me

End Sub

Explicação: esta linha de código fecha o Userform quando você clica no botão Cancelar.

Teste o formulário do usuário

Saia do Editor do Visual Basic, insira as etiquetas mostradas abaixo na linha 1 e teste o Userform.

Resultado:

Teste o formulário do usuário

Leia também: