/ / Excel UserManager VBA com várias páginas

Formulário de usuário do Excel VBA com várias páginas

Abaixo, veremos um programa no Excel VBA que cria um Userform que contém várias páginas. Este userform também contém imagens.

O controle de várias páginas contém duas páginas. Na página 1, o usuário pode preencher suas informações pessoais. Na página 2, o usuário pode indicar qual pintura gosta mais.

Userform Page 1
Página de formulário do usuário 2

Para criar este formulário de usuário, 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 o controle Multipage, rótulos, caixas de texto (primeiro no topo, o segundo abaixo do primeiro), quadro, botões de opção (primeiro à esquerda, o segundo à direita), caixa de listagem, controle de imagem e botão de comando. Depois que isso for concluído, o resultado deve ser consistente com a versão vazia da forma de usuário mostrada anteriormente. Por exemplo, crie um controle Multipage clicando em Multipage na caixa de ferramentas. Em seguida, você pode arrastar um controle Multipage no Userform. Quando você chegar ao quadro Gênero, lembre-se de desenhar este quadro antes de colocar os dois botões de opção nele.

4 Você pode alterar os nomes e as legendas dos controles. 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, mas isso não é necessário aqui porque temos apenas alguns controles neste exemplo. Para alterar a legenda do Userform, guias de várias páginas, rótulos, quadros, botões de opção e botão de comando, clique em View, Properties Window e clique em cada controle.

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

Private Sub CommandButton1_Click()

UserForm1.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.

6. Abra o Editor do Visual Basic.

7. No Project Explorer, clique com o botão direito do mouse em UserForm1 e clique em View Code.

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

9. Adicione as seguintes linhas de código:

Private Sub UserForm_Initialize()

With ListBox1
    .AddItem "Mountains"
    .AddItem "Sunset"
    .AddItem "Beach"
    .AddItem "Winter"
End With

End Sub

Explicação: a caixa de listagem na página 2 será preenchida.

Agora criamos a primeira parte do formulário de usuário. Embora pareça arrumado, nada acontecerá quando selecionarmos um item da caixa de listagem ou quando clicarmos no botão OK.

10. Faça o download das imagens (lado direito desta página) e adicione-as a "C: test"

11. No Project Explorer, clique duas vezes em UserForm1.

12. Clique duas vezes na caixa de listagem.

13. Adicione as seguintes linhas de código:

Private Sub ListBox1_Click()

If ListBox1.ListIndex = 0 Then
    Image1.Picture = LoadPicture("C:testMountains.jpg")
End If

If ListBox1.ListIndex = 1 Then
    Image1.Picture = LoadPicture("C:testSunset.jpg")
End If

If ListBox1.ListIndex = 2 Then
    Image1.Picture = LoadPicture("C:testBeach.jpg")
End If

If ListBox1.ListIndex = 3 Then
    Image1.Picture = LoadPicture("C:testWinter.jpg")
End If

End Sub

Explicação: estas linhas de código carregam uma imagem dependendo do item selecionado na caixa de listagem.

14. Clique duas vezes no botão OK.

15. Adicione as seguintes linhas de código:

Private Sub CommandButton1_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 = TextBox1.Value
Cells(emptyRow, 2).Value = TextBox2.Value

If OptionButton1.Value = True Then
    Cells(emptyRow, 3).Value = "Male"
Else
    Cells(emptyRow, 3).Value = "Female"
End If

Cells(emptyRow, 4).Value = ListBox1.Value

"Close Userform
Unload Me

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. Em seguida, transferimos as informações do Userform para as colunas específicas do emptyRow. Por fim, fechamos o formulário do usuário.

16. 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: