domingo, 16 de fevereiro de 2014

Como criar Formulários no Excel (Vba) - UserForm



Os formulários do Excel são uma excelente ferramenta para a introdução de dados numa planilha. 

Para construir um formulário iremos utilizar a linguagem Visual Basic for Applications (VBA).

O nosso formulário de exemplo é bastante "simplista", tornando o tempo de aprendizagem mais curto. Para o ajudar a compreender este tutorial, adicionamos uma vídeo aula no final do artigo

Formulários no Excel - Preparação

Antes de iniciar a criação do seu formulário em Excel, é necessário ativar o separador "Programador" (ou Desenvolvedor), e permitir a execução de Macros. Para isso, execute os seguintes procedimentos:

1. Ativar o separador Programador (ou Desenvolvedor)

Aceda ao Menu Ficheiro do Excel- Opções - clique no separador "Personalizar Friso" - e selecione a opção "Programador".

2. Executar Macros no Excel

Aceda ao Separador "Programador" e clique no botão "Segurança Macros". Selecione a opção "Ativar todas as Macros".


Criar um Formulário no Excel

Agora poderá dar início à criação do seu formulário em Excel. Em primeiro lugar, comece por definir os dados que pretende adicionar na sua planilha (por exemplo: Nome, Morada, etc.).

No nosso exemplo, usaremos apenas 3 campos, que serão distribuídos na horizontal (células A1, B1 e C1).

Construir Formulário em VBA (UserForm)

Clique no separador "Programador" e pressione o botão "Visual Basic" (teclas de atalho ALT+F11). Clique com o botão direito do rato na janela Project Explorer e selecione "Insert" - "UserForm".

Image and video hosting by TinyPic 

Caso a janela Project Explorer não esteja ativa, pressione as teclas de atalho CTRL+R. 

Como criar Formulários no Excel (Vba) - UserForm
Para construir o formulário, você deverá utilizar os elementos presentes na ToolBox. No nosso exemplo, iremos utilizar apenas 3 elementos:

Label: Texto Descritivo
TextBox: Usada para recolher dados introduzidos
CommandButton: Usado para gerar um evento (Fechar Janela, Introduzir os dados, etc.).

Para alterar o texto exibido nos CommandButton e Labels, altere o parâmetro "caption" da janela esquerda (Project Explorer). 

Adicionar Código VBA (Visual Basic for Applications)

Para gerar um evento será necessário adicionar o código VBA no elemento necessário, neste caso, nos "Command Button" do seu Formulário. 

Os nomes que atribuímos aos botões (Inserir - Sair) servem apenas como exemplo, você poderá adicionar o nome que achar mais conveniente.

Para adicionar o código VBA, clique duas vezes no botão que pretende editar para abrir a janela do Código.

Criar um botão de Sair:

Vamos começar pelo botão mais simples de criar, o botão "Sair" do seu formulário. Clique duas vezes no botão "Sair" e digite o seguinte código:

Private Sub CommandButton1_Click()
Unload Me
End Sub

Criar o botão "Inserir"

O botão "Inserir" irá gravar os dados do formulário, na sua planilha. Para adicionar o código, basta clicar duas vezes no botão Inserir e digitar o seguinte código:


Private Sub CommandButton1_Click()

Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Folha1")

iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
    SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1

'copia os dados para as celulas
ws.Cells(iRow, 1).Value = Me.TextBox1.Value
ws.Cells(iRow, 2).Value = Me.TextBox2.Value


'Limpa os campos TextBox para inserir novos dados
Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
Me.TextBox1.SetFocus

End Sub


Clique no botão "Play" (tecla de atalho F5) para verificar o resultado final.

Criar o Botão "Guardar": 


Private Sub CommandButton1_Click()

ActiveWorkbook.Save

End Sub


Executar o formulário automaticamente

Por fim, é necessário adicionar um código "extra" para que o seu formulário seja executado sempre que executa a sua planilha. Para isso, volte ao menu "Programador" - Visual Basic.

Na janela esquerda (Project Explorer) clique no objeto "EsteLivro" (ou o nome que deu ao seu arquivo). Na janela de código digite o seguinte trecho:


Image and video hosting by TinyPic 

Private Sub Workbook_Open()
    UserForm1.Show
End Sub


Guarde o seu formulário e verifique o resultado final. 

0 comentários:

Postar um comentário

Artigos Relacionados