Veja como gerar arquivo texto txt com vba no Excel passo-a-passo, código pronto, exemplo para download e vídeo-aula.
Planilha Exemplo Gerar TXT
Esta planilha possui uma estrutura com alguns campos, cabeçalho e dados na planilha.
A intenção é que exportemos estes dados em arquivos texto separado em CSV, mas pode fazer alterações no código, como no vídeo no topo e colocar outros tipos de delimitadores ou até deixar sem delimitadores.
Gerar Arquivo Texto Excel com VBA
Para gerar o arquivo texto à partir de uma tabela criamos um formulário aonde definimos o intervalo, a pasta aonde salvar o arquivo e o nome do arquivo que iremos criar.
Ao clicar no botão Criar arquivo texto o intervalo será gerado com todos os dados que estão no intervalo em um arquivo com o nome definido e na pasta.
Para utilizar este formulário em outras planilhas pode seguir o seguinte procedimento.
Criar Sistema de Gerar Arquivo Texto
Para instalar o formulário de gerar sistema de arquivo texto você deve Habilitar Guia Desenvolvedor e então clique na guia Desenvolvedor.
Então clique com o botão direito na árvore de objetos em Projeto e clique em Importar arquivo…, poderá selecionar então o formulário que está no download ao final do artigo.
Desta forma ficará como temos abaixo.
Após isso, clique em Inserir->Módulo no VBE e insira este código VBA:
Public Sub lsGerar()
frmGerar.Show
End Sub
Este código irá chamar o formulário de geração de arquivo texto, pode voltar ao Excel fechando o VBE e clique em Desenvolvedor e no botão Macros, selecione lsGerar.
Isso irá abrir o formulário e poderá utilizar ele para gerar um arquivo txt separado com “;” ou pode também editar o código como no vídeo.
Para colocar o código fonte em um outro botão, clique em inserir imagem e clique com o botão direito e em atribuir macro, selecionando o nome da macro lsGerar que será executado ao clicar na imagem.
Código VBA para Selecionar Pasta Excel
No código fonte temos uma função para selecionar a pasta no Excel e outra para gerar o arquivo texto automaticamente.
O código para selecionar uma pasta e colocar no campo de nome da pasta é:
Private Sub txtPasta_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
On Error GoTo TratarErro
Dim fdlg As FileDialog
Set fdlg = Application.FileDialog(msoFileDialogFolderPicker)
If fdlg.Show = -1 Then
txtPasta.Text = fdlg.SelectedItems(1)
Else
MsgBox "Não foi selecionada uma pasta."
End If
Sair:
Exit Sub
TratarErro:
MsgBox "Houve um erro na aplicação: " & Err.Description & " - " & Err.Number
GoTo Sair
End Sub
Código VBA para Criar Arquivo Texto Excel
O código VBA para criar arquivo texto no Excel segue abaixo e pode ser aplicado ou alterado.
Private Sub cmdGerar_Click()
On Error GoTo TratarErro
Dim llArquivo As Long
Dim lstrCaminho As String
Dim lRegiao As Range
Dim lTexto As String
Dim lLinhas As Long
Dim lLinha As Long
Dim lColunas As Long
Dim lColuna As Long
lstrCaminho = txtPasta.Text & "\" & txtNome.Text
Set lRegiao = Range(frmGerar.refIntervalo)
lLinhas = lRegiao.Cells.Rows.Count
lColunas = lRegiao.Columns.Count
'Verificar se o arquivo existe
If Dir(lstrCaminho) = "" Then
'Cria endereço de memória e abre o arquivo txt
llArquivo = FreeFile
Open lstrCaminho For Output As #llArquivo
'Insere os dados de cada célula
For lLinha = 1 To lLinhas
lTexto = ""
For lColuna = 1 To lColunas
If lColuna = 1 Then
lTexto = lRegiao.Cells(lLinha, lColuna).Value
Else
lTexto = lTexto & ";" & lRegiao.Cells(lLinha, lColuna).Value
End If
Next lColuna
Print #llArquivo, lTexto
Next lLinha
Else
MsgBox "Arquivo já existe"
GoTo Sair
End If
MsgBox "Arquivo criado em: " & lstrCaminho
Sair:
Close #llArquivo
Exit Sub
TratarErro:
MsgBox "Houve um erro na aplicação: " & Err.Description & " - " & Err.Number
GoTo Sair
End Sub
Se quiser pode alterar a linha lTexto = lTexto & “;” & lRegiao.Cells(lLinha, lColuna).Value trocando o campo “;” por outro delimitador.
Para baixar a planilha pode clicar no botão em Download Planilha Gerar Arquivo TXT com VBA Excel.
Download Planilha Gerar Arquivo TXT com VBA Excel
Clique no botão abaixo para realizar o download do Excel de exemplo: