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 > Salvar dados de um UserForm (Formulário) no Bloco de Notas



VBA - Salvar dados no Bloco de Notas





Neste tutorial estarei mostrando uma das formas de salvar os dados de um formulário (UserForm) diretamente no Bloco de Notas do Windows.


A título de exemplo estarei usando um formulário de Cadastro como o da imagem abaixo:


Formulário - VBA


Depois de preencher todos os campos do formulário o usuário clicará no botão Salvar no Bloco de Notas e todos os dados informados serão enviado para um arquivo .txt que será  criado e nomeado tempo de execução.


Crie um formulário como este que foi mostrado na imagem acima, em seguida adicione os códigos conforme as etapas a seguir:


1- No evento Initialize do formulário adicione o código abaixo:


Private Sub UserForm_Initialize()
'Mantém o foco na primeira Caixa de Texto (Nome)
TextBox1.SetFocus

'Adiciona os item da primeira Caixa de Combinação (Sexo)
With ComboBox1
.AddItem ""
.AddItem "Masculino"
.AddItem "Feminino"
End With


'Adiciona os item da segunda Caixa de Combinação (UF)
With ComboBox2
.AddItem ""
.AddItem "AC"
.AddItem "AL"
.AddItem "AP"
.AddItem "AM"
.AddItem "BA"
.AddItem "CE"
.AddItem "DF"
.AddItem "ES"
.AddItem "GO"
.AddItem "MA"
.AddItem "MT"
.AddItem "MS"
.AddItem "MG"
.AddItem "PA"
.AddItem "PB"
.AddItem "PR"
.AddItem "PE"
.AddItem "PI"
.AddItem "RJ"
.AddItem "RN"
.AddItem "RS"
.AddItem "RO"
.AddItem "RR"
.AddItem "SC"
.AddItem "SP"
.AddItem "SE"
.AddItem "TO"
End With
End Sub


O código acima entra em ação quando o formulário é executado (iniciado), ele posiciona o ponto de inserção na primeira Caixa de Texto do formulário e preenche as duas Caixas de Combinação com os itens necessários.


Ficará como na imagem abaixo:


Formulário - VBA


2- Selecione a Caixa de Texto (Nome), clique com o botão direito do mouse sobre ela e selecione Exibir Código.


Exibir código - VBA


No evento Change adicione o seguinte código:


Private Sub TextBox1_Change()
'Todo texto em Caixa alta (maiúscula)
TextBox1.Text = UCase(TextBox1)
End Sub



A função Ucase faz com que todo texto digitado nesta Caixa de Texto seja exibido em caixa alta (maiúscula).



3- Selecione a Caixa de Texto (Data de Nascimento), clique com o botão direito do mouse sobre ela e selecione Exibir Código.


Exibir código - VBA


Selecione o evento KeyPress como mostra a imagem abaixo:


Evento KeyPress


Adicione o seguinte código:


Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

TextBox2.MaxLength = 10 ' máximo de 10 digitos
'só aceita a digitação de números
Select Case KeyAscii
Case 8, 48 To 57
If Len(TextBox2) = 2 Or Len(TextBox2) = 5 >Then
TextBox2.Text = TextBox2.Text &"/"
SendKeys "(End)", True
End If
Case Else
KeyAscii = 0
End Select
End Sub



A propriedade MaxLength está definido para 10, isso significa que esse é o máximo de caracteres que podem ser digitados nesta caixa de texto (números e barras).


As demais linhas de código faz uma validação para que a caixa de texto aceite somente as teclas de código KeyAscii igual a 8 (tecla BackSpace) e 48 a 57 (teclas de 0 a 9). Detalhe especial neste código é a estrutura If que formata a caixa de texto para que as barras sejam adicionadas conforme a data é digitada.


Deverá ficar como na imagem a seguir:


Código VBA


4- Selecione o botão Salvar no Bloco de Notas, clique com o botão direito do mouse sobre ele e selecione Exibir Código.


Exibir código - VBA


No evento Click deste botão adicione o código abaixo:


Private Sub CommandButton1_Click()
'Declara as Variáveis
Dim sNome, sDtnasc, sSexo, sEndereco, sNum, sBairro, sCidade, sUF, sTel, sCel As String
Dim sNomeArquivo As String

'Define os valores das variáveis
sNome = TextBox1.Text
sDtnasc = TextBox2.Text
sSexo = ComboBox1.Text
sEndereco = TextBox3.Text
sNum = TextBox4.Text
sBairro = TextBox5.Text
sCidade = TextBox6.Text
sUF = ComboBox2.Text
sTel = TextBox7.Text
sCel = TextBox8.Text


'função CreatObject retorna o método FileSystemObject
'Scripting permite processar unidades, pastas e arquivos usando o FileSystemObject (FSO)
Set fs= CreateObject("Scripting.FileSystemObject")

'Usamos a função InputBox para que o usuário digite um nome para o arquivo .txt que será criado
sNomeArquivo = InputBox("Digite o nome do arquivo.", "Cadastro")

' Cria um arquivo de texto
Set a = fs.CreateTextFile("c:\" & sNomeArquivo & ".txt", True)

'A função WriteLine grava os dados do formulário no arquivo .txt que foi criado
a.WriteLine "DADOS PESSOAIS" & vbCrLf & vbCrLf
a.WriteLine "Nome: " & sNome
a.WriteLine "Data de Nascimento: " & sDtnasc
a.WriteLine "Sexo: " & sSexo
a.WriteLine "Endereço: " & sEndereco
a.WriteLine "Número: " & sNum
a.WriteLine "Bairro: " & sBairro
a.WriteLine "Cidade: " & sCidade
a.WriteLine "Estado: " & sUF
a.WriteLine "Telefone: " & sTel
a.WriteLine "Celular: " & sCel


'O método Close libera o Buffer e fecha o arquivo
a.Close
End Sub


O código acima cria um novo arquivo e solicita através da função InputBox que o usuário digite um nome para esse arquivo que será salvo na unidade C: com a extensão .txt e depois transfere os dados informados no formulário para este arquivo que logo em seguida é fechado.



Veja como ficará na imagem abaixo:


Código VBA


5-Selecione agora o botão Fechar, clique com o botão direito do mouse sobre ele e selecione Exibir Código.


Exibir código - VBA


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


Private Sub CommandButton2_Click()
'Fecha o Formulário
Unload Me
End Sub


Usamos a instrução UNLOAD ME para fechar apenas o formulário.


Deverá ficar como na imagem abaixo:


Código VBA


6- Para concluirmos este exemplo criaremos agora um código que deverá executar(exibir) o formulário sempre que o arquivo for aberto, portanto, na Janela de Projeto clique duas vezes em ThisDocument.


ThisDocument


No evento Open adicione o seguinte código:


Private Sub Document_Open()
'Exibe o formulário de Cadastro
frmCadastro.Show
End Sub



Ficará como na imagem abaixo:


Código VBA


7- Feche o Editor do Visual Basic para voltar ao Word, clicando no menu Arquivo e em Fechar e voltar para o Microsoft Word.


Fechar e voltar para o Microsoft Word


8- Dê um nome ao documento e salve como Documento Habilitado para Macro do Word.


Salvar como Documento habilitado para macro do Word


9- Feche o documento e abra-o novamente. Será exibido o formulário para que o usuário possa preenchê-lo, como pode ser visto na imagem abaixo:


Formulário VBA


Faça um teste preenchendo o formulário e em seguida clique no botão Salvar no Bloco de Notas.


Salvar no Bloco de Notas


Será solicitado um nome para o arquivo. Aqui neste exemplo chamaremos de Cadastro_1.


Salvar


Agora vá até a Unidade C: e procure pelo arquivo que foi criado.


Unidade C:


Após encontrá-lo clique duas vezes sobre ele para abri-lo.


Eis o resultado:


Salvar no Bloco de Notas


Faça o download deste exemplo clicando no link abaixo:


Download




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