Tutoriais Word
Home  |  Tutoriais  |  Artigos  |  VBA  |  Download  |  eBooks Word VBA  |  Dicas e Truques  |  Teclas de Atalho  |  Serviços  |  Contato


Categorias

Básico/Intermediário

  Avançado

  VBA

  Tabelas

  Formulário

  Campo

  Livros

  ABNT

  TCC

Personalizando Formulário

eBook Word 2010 VBA

Tabela do Word como banco de dados

Home > VBA > Como preencher uma tabela com dados de um formulário - UserForm







Como preencher uma tabela através de um formulário (UserForm)


Neste tutorial, criaremos um formulário que irá preencher uma tabela.


O objetivo principal deste tutorial é mostrar ao leitor como preencher uma tabela do Word através do VBA.


Mas a partir desta aprendizagem você poderá criar outras aplicações e adequá-los a quaisquer outros documentos, conforme suas necessidades.


Primeiramente vamos criar o documento que conterá a tabela que receberá os dados do Formulário, como o da imagem abaixo:




Após criar o documento com a tabela, dê um nome salve-o como Modelo Habilitado para Macro do Word



Construindo a Interface (Formulário)


Abra o Editor do Visual Basic e insira um Formulário (UserForm1).


 


Na Janlea de Propriedades, altere as seguintes propriedades:


Name: frmResultadoFinal

Caption: Resultado Final

Height: 246,75

Width: 303




Agora devemos adicionar alguns controles ao formulário. Para esse formulário necessitaremos dos seguintes controles:


Quantidade Controle
2 Frame(Quadro)
6 Label(Rótulo)
5 TextBox(Caixa de Texto)
1 ComboBox(Caixa de Combinação)
3 CommandButton(Botão de Comando)

Na Caixa de Ferramentas clique na ferramenta Quadro (Frame1) para adicionar o primeiro Quadro ao formulário e altere as seguintes propriedades:


Caption: Resultado Final por Série

Font: Tahoma, Tamanho 11

Height: 204

Left: 12

Top: 12

Width: 276

 


Na Caixa de Ferramentas clique na ferramenta Quadro (Frame2) para adicionar o segundo Quadro dentro do primeiro Quadro (Frame1) e altere as seguintes propriedades:


Caption: (Deixe esta propriedade em branco)

Height: 108

Left: 180

Top: 48

Width: 84

 


Ficará como na imagem abaixo:




Continuando com o processo de criação do Formulário, novamente na Caixa de Ferramentas clique na ferramenta Rótulo (Label1) para adicionar o primeiro Rótulo dentro do primeiro Quadro (Frame1) e altere as seguintes propriedades:


Caption: Selecione a Série/Ano:

Font: Tahoma, Tamanho 11

Height: 18

Left: 12

Top: 18

Width: 102


Na Caixa de Ferramentas clique na ferramenta Rótulo (Label2) para adicionar o segundo Rótulo dentro do primeiro Quadro (Frame1) e altere as seguintes propriedades:


Caption: Alunos Matriculados

Font: Tahoma, Tamanho 11

Height: 20

Left: 12

Top: 48

Width: 100


Na Caixa de Ferramentas clique na ferramenta Rótulo (Label3) para adicionar o terceiro Rótulo dentro do primeiro Quadro (Frame1) e altere as seguintes propriedades:


Caption: Alunos Transferidos

Font: Tahoma, Tamanho 11

Height: 20

Left: 12

Top: 78

Width: 100


Na Caixa de Ferramentas clique na ferramenta Rótulo (Label4) para adicionar o quarto Rótulo dentro do primeiro Quadro (Frame1) e altere as seguintes propriedades:


Caption: Alunos Evadidos:

Font: Tahoma, Tamanho 11

Height: 20

Left: 12

Top: 107,95

Width: 100


Na Caixa de Ferramentas clique na ferramenta Rótulo (Label5) para adicionar o quinto Rótulo dentro do primeiro Quadro (Frame1) e altere as seguintes propriedades:


Caption: Alunos Retidos:

Font: Tahoma, Tamanho 11

Height: 20

Left: 12

Top: 138

Width: 100


Na Caixa de Ferramentas clique na ferramenta Rótulo (Label6) para adicionar o sexto Rótulo dentro do primeiro Quadro (Frame1) e altere as seguintes propriedades:


Caption: Alunos Promovidos

Font: Tahoma, Tamanho 11

Height: 20

Left:12

Top: 168

Width: 100


Ficará como a imagem abaixo:




Na Caixa de Ferramentas clique na ferramenta Caixa de Combinação (ComboBox) para adicionar uma Caixa de Combinação dentro do primeiro Quadro (Frame1) e altere as seguintes propriedades:


Font: Tahoma, Tamanho 11

Height: 20

Left: 120

Top: 18

Width: 126


Ficará como na imagem abaixo:




Na Caixa de Ferramentas clique na ferramenta Caixa de Texto (TextBox1) para adicionar a primeira Caixa de Texto no formulário e posicione-a dentro do primeiro Quadro (Frame1), em seguida altere as propriedades:


Font: Tahoma,Tamanho 11

Height: 20

Left: 120

TextAlign: 3-fmTextAlignCenter

Top: 48

Width: 54


Na Caixa de Ferramentas clique na ferramenta Caixa de Texto (TextBox2) para adicionar a segunda Caixa de Texto no formulário e posicione-a dentro do primeiro Quadro (Frame1), em seguida altere as propriedades:


Font: Tahoma, Tamanho 11

Height: 20

Left: 120

TextAlign: 3-fmTextAlignCenter

Top: 78

Width: 54


Na Caixa de Ferramentas clique na ferramenta Caixa de Texto (TextBox3) para adicionar a terceira Caixa de Texto no formulário e posicione-a dentro do primeiro Quadro (Frame1), em seguida altere as propriedades:


Font: Tahoma,Tamanho 11

Height: 20

Left: 120

TextAlign: 3-fmTextAlignCenter

Top: 108

Width: 54


Na Caixa de Ferramentas clique na ferramenta Caixa de Texto (TextBox4) para adicionar a quarta Caixa de Texto no formulário e posicione-a dentro do primeiro Quadro (Frame1), em seguida altere as propriedades:


Font: Tahoma,Tamanho 11

Height: 20

Left: 120

TextAlign: 3-fmTextAlignCenter

Top: 138

Width: 54


Na Caixa de Ferramentas clique na ferramenta Caixa de Texto (TextBox5) para adicionar a quinta Caixa de Texto no formulário e posicione-a dentro do primeiro Quadro (Frame1), em seguida altere as propriedades:


Font: Tahoma,Tamanho 11

Height: 20

Left: 120

TextAlign: 3-fmTextAlignCenter

Top: 168

Width: 54


Outras propriedades desta Caixa de Texto serão alteradas  quando o Formulário forinicializado (evento initialize).


Deverá ficar como na imagem abaixo:




Agora para finalizar a interface adicionaremos três botões de comando ao nosso formulário.


Na Caixa de Ferramentas clique na ferramenta Botão de Comando (CommandButton1) para adicionar o primeiro Botão de Comando no formulário e posicione-a dentro do segundo Quadro (Frame2), em seguida altere as propriedades:


Caption: Adicionar

Font: Tahoma, Tamanho 11

Height: 24

Left: 6

Top: 12

Width: 66


Na Caixa de Ferramentas clique na ferramenta Botão de Comando (CommandButton2) para adicionar o segundo Botão de Comando no formulário e posicione-a dentro do segundo Quadro (Frame2), em seguida altere as propriedades:


Caption: Limpar

Font: Tahoma, Tamanho 11

Height: 24

Left: 6

Top: 42

Width: 66


Na Caixa de Ferramentas clique na ferramenta Botão de Comando (CommandButton4) para adicionar o terceiro Botão de Comando no formulário e posicione-a dentro do segundo Quadro (Frame2), em seguida altere as propriedades:


Caption: Fechar

Font: Tahoma, Tamanho 11

Height: 24

Left: 6

Top: 72

Width: 66


Com isso, concluímos então a criação da interface da nossa aplicação a qual, seguindo todos os passos acima, deverá ficar com a mesma aparência da imagem abaixo:




Iniciaremos agora a criação do código que será responsável pelo bom funcionamento da aplicação e fará todo trabalho pesado por trás do formulário.


Na Janela de Projeto selecione o Formulário (frmResultadoFinal) e clique em Exibir código ou use o botão direito do mouse.




Na caixa objeto selecione UserForm.




Em procedimento selecione Initialize:




Dentro de evento Initialize do nosso Formulário (frmResultadoFinal) adicione o seguinte código.


' Adiciona itens à Caixa de Combinação
With ComboBox1
.AddItem ""
.AddItem "5ª Série/6º Ano"
.AddItem "6ª Série/7º Ano"
.AddItem "7ª Série/8º Ano"
.AddItem "8ª Série/9º Ano"
End With
With TextBox5
.Enabled = False
.BackColor = &H8000000F
.SpecialEffect = fmSpecialEffectEtched
End With



Ficará como na imagem abaixo:




Selecione a Caixa de Texto (TextBox1), clique com o botão direito do mouse sobre ela e em seguida clique em Exibir código.




Na Janela de Código selecione o procedimento KeyPress.




Dentro do Evento KeyPress adicione o código abaixo:


'só aceita digitação de números
Select Case KeyAscii
Case 8, 48 To 57
Case Else
KeyAscii = 0
End Select



Deverá ficar como na imagem abaixo:




Selecione as demais Caixas de Textos e execute a mesma operação em cada uma delas. Deverá ficar como na imagem abaixo:




No formulário selecione o Botão de Comando (CommandButton1), clique com o botão direito do mouse e depois clique em Exibir Código.




No evento Click do Botão adicione o seguinte código:


On Error GoTo CommandButton1_Click_Err  'Tratamento de erro

'Validação
If ComboBox1.Text = "" Then
MsgBox "Selecione a série.", vbOKOnly, "Resultado Final"
Exit Sub
ComboBox1.SetFocus
ElseIf TextBox1.Text = "" Then
MsgBox "Informe o número de alunos matriculados", vbOKOnly, "Resultado Final"
Exit Sub
TextBox1.SetFocus
End If
If TextBox2.Text = "" Then
TextBox2.Text = "0"
End If
If TextBox3.Text = "" Then
TextBox3.Text = "0"
End If
If TextBox4.Text = "" Then
TextBox4.Text = "0"
End If

'Calcula o total de alunos promovidos
TextBox5.Value = Val(TextBox1 - TextBox2 - TextBox3 - TextBox4)

'Limpa a tabela para receber novos dados
With ActiveDocument.Tables(1)
.Cell(Row:=1, Column:=1).Range.Delete
.Cell(Row:=3, Column:=1).Range.Delete
.Cell(Row:=3, Column:=2).Range.Delete
.Cell(Row:=3, Column:=3).Range.Delete
.Cell(Row:=3, Column:=4).Range.Delete
.Cell(Row:=3, Column:=5).Range.Delete

'Preenche a tabela com os dados do formulário
.Cell(1, 1).Range.InsertAfter ComboBox1
.Cell(3, 1).Range.InsertAfter TextBox1.Text
.Cell(3, 2).Range.InsertAfter TextBox2.Text
.Cell(3, 3).Range.InsertAfter TextBox3.Text
.Cell(3, 4).Range.InsertAfter TextBox4.Text
.Cell(3, 5).Range.InsertAfter TextBox5.Text
End With

'Fecha o Formulário (frmResultadoFinal)
Unload Me

'Em caso de erro a rotina abaixo é executada
CommandButton1_Click_Fim:
Exit Sub 'Sai do prodecimento
CommandButton1_Click_Err:
MsgBox "Erro n. " & Err.Number & " - " & Err.Description
Resume CommandButton1_Click_Fim



Deverá ficar como na imagem abaixo:




Uma observação importante: Os trechos de texto em verde são apenas comentários que inseri entre os códigos para que todos possam entender melhor como funciona cada rotina (linha de código).


Se a Caixa de Combinação estiver vazia será exibida uma mensagem solicitando ao usuário para selecionar uma série/ano.


Se a Caixa de Texto (TextBox1) estiver vazia, será exibida uma mensagem ao usuário solicitando que seja informado o nº de alunos matriculados.


Se as Caixas de Textos (TextBox2, TextBox3 e TextBox4) estiverem vazias serão preenchidas com 0 (zero) para não gerar erros no cálculo exibido na Caixa de Texto (TextBox5).


Agora selecione o Botão de Comando (CommandButton2), clique com o botão direito do mouse sobre o mesmo e em seguida clique em Exibir Código.




No evento clique deste botão adicione o seguinte código:


'Limpa a Caixa de Combinação e as Caixas de Textos
ComboBox1.Text = ""
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""



Deverá ficar como na imagem abaixo:




Selecione o Botão de Comando (CommandButton3), clique com o botão direito do mouse sobre o mesmo e em seguida clique em Exibir Código.




No evento clique deste botão adicione o seguinte código:


Unload Me


Deverá ficar como na imagem abaixo:




Com isso concluímos nossa aplicação.


Agora vamos criar uma macro para exibir o formulário sempre que for necessário.


Em um novo módulo adicione o código abaixo:


Sub resultadofinal()
frmResultadoFinal.Show
End Sub





Feche o Editor do Visual Basic para voltar ao Word.


Agora vamos testar nossa aplicação.


Na Guia Desenvolvedor, no Grupo Código clique em Macros.




Selecione a macro resultadofinal e clique em Executar.




Preencha o formulário e clique em Adicionar.




Os dados do formulário serão inseridos na tabela. Veja o resultado na imagem abaixo:







Gostou? Se quiser mais eu tenho um e-Book sobre VBA que você pode se interessar.
Confira aqui







eBook Word 2010 VBA

      

 Inscreva-se

 E seja informado sempre que um novo tutorial for publicado.

 E mais... Você poderá fazer gratuitamente o download de 02(dois) e-Books:
- Como preencher uma tabela(VBA) - Iniciante;
- Como preencher uma tabela com várias linhas(VBA) - Iniciante.


 Nome* 
 E-mail* 
 *Preenchimento obrigatório.
Prometemos não utilizar suas informações de contato para enviar qualquer tipo de SPAM.

 



eBook Word 2010 VBA


© 2013 Tutoriais Word - Todos os direitos reservados