Notifications
Clear all

Exportar dados da planilha para arquivo com extensão ".txt"

10 Posts
3 Usuários
0 Reactions
1,859 Visualizações
(@madi-land)
Posts: 33
Eminent Member
Topic starter
 

Boa noite pessoal, tudo bem?!

O que preciso fazer parece simples, porém não estou conseguindo.

O QUE PRECISO FAZER: Apertar em um botão que exporte os dados de texto de uma planilha para um arquivo com extensão ".txt".

Fiz um exemplo de uma planilha preenchida com os dados e o resultado que deverá ficar após clicar no botão para exportar o arquivo.

Segue em anexo a planilha e o resultado que necessito.

Desde já, agradeço...

Abraço!!!

 
Postado : 01/10/2015 10:36 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Esse codigo salva um arquivo txt separado por tabulação na pasta backup em C:.

Adeque a sua necessidade.

Sub Macro1()
'
' Macro1 Macro
'

'
Sheets("Plan1").Select
ChDir "C:Backup"
ActiveWorkbook.SaveAs Filename:="C:BackupExemplo.txt", FileFormat:=xlText _
, CreateBackup:=False
End Sub

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 02/10/2015 5:48 am
(@madi-land)
Posts: 33
Eminent Member
Topic starter
 

Bom dia...

Agradeço a resposta mas não é isto que preciso... Creio que chegou neste resultado utilizando a opção gravar macro do desenvolvedor.

Preciso criar um arquivo exatamente como o que enviei em anexo, com a extenão ".txt", onde preciso colocar no arquivo .txt o símbolo "|" entre cada texto de cada célula, exceto na última.

Fico no aguardo.

Obrigado.

 
Postado : 02/10/2015 6:25 am
(@mprudencio)
Posts: 2749
Famed Member
 

Agora fiquei curioso pq esse simbolo "|" é tao importante??????????

Se ele é so um separador não da para usar outro?

Pelo que vc fala isso vai ser usado e tratado em outro programa, pode dizer qual o objetivo?

Talvez apareça outra ideia que funcione para você.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 02/10/2015 7:13 am
(@madi-land)
Posts: 33
Eminent Member
Topic starter
 

Opa...

No dia 01/01/2016 estará entrando em vigor o bloco k, que nada mais é do que o controle do estoque de produção para as indústrias.

Para implantar o bloco k, é preciso gerar um sistema onde seja possível fazer este controle. Então, é preciso criar um arquivo de texto a partir dos dados do sistema, com um leiaute definido pela receita federal. Este leiaute encontra-se na seguinte página http://www1.fazenda.gov.br/confaz/confa ... 009_08.htm

Resumindo, a receita fez um programa (PVA), onde este arquivo de texto será implantado de acordo com o leiaute que eles definiram. Por isso, não posso alterar o símbolo "|", pois o sistema deles não aceitaria.

 
Postado : 02/10/2015 8:11 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Tente algo assim..

Sub AleVBA_17579()
'Leia:http://www.cpearson.com/excel/ImpText.aspx
    Const DELIMITER As String = "|"
 
    Dim myRecord As Range
    Dim myField As Range
    Dim sOut As String

    Open "C:Usersalexandre.goncalvesDownloadsAleVBA.txt" For Output As #1
 
    For Each myRecord In Worksheets("Plan1").Range("A1:H" & Range("A" & Rows.Count).End(xlUp).Row)
        With myRecord
            For Each myField In Worksheets("Plan1").Range(.Cells, Cells(.Row, Columns.Count).End(xlToLeft))
                sOut = sOut & myField.Text & DELIMITER
            Next myField
            Print #1, Mid(sOut, 1)
            sOut = Empty
        End With
    Next myRecord
    Close #1
    MsgBox "O Arquivo foi criado!", vbOKOnly
 
End Sub

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 02/10/2015 8:55 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde,

Segue minha contribuição.

Qualquer coisa da o grito.
Abraço

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 02/10/2015 10:02 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Mais uma possibilidade

Sub GeraTxt()
Dim Dados As String, Cpo() As String
Dim lR As Integer, lCol As Integer
'Local onde o arquivo txt ira ser gravado
Caminho = ThisWorkbook.Path & Application.PathSeparator
'Nome do arquivo txt
Arquivo = "Exportar_Excel_pTxt.txt"
Open Caminho & Arquivo For Output As #1

Worksheets("Plan1").Activate
Range("A1").Select
linha = 1

Do Until IsEmpty(ActiveCell.Offset(0, 0))
    lCol = Application.WorksheetFunction.CountA(Rows(linha & ":" & linha))
    ReDim Cpo(lCol)
        
    For lR = 0 To lCol - 1
        Cpo(lR) = "|" & Cells(linha, lR + 1).Value
    Next
    
    For X = LBound(Cpo) To UBound(Cpo)
        Dados = Dados & Cpo(X)
    Next
    
    Print #1, Dados
    linha = linha + 1
    Dados = ""
    If Cells(linha, 1) = Empty Then Exit Do
Loop
        
Close #1
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 02/10/2015 10:43 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa também Reinaldo,

O "lCol" não funcionou muito bem quando existe uma célula em branco.

Se mudar o:

lCol = Application.WorksheetFunction.CountA(Rows(linha & ":" & linha))

por:

lCol = Cells(linha, Columns.Count).End(xlToLeft).Column

corrige isso.

Qualquer coisa da o grito.
Bernardo Maia

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 02/10/2015 10:52 am
(@madi-land)
Posts: 33
Eminent Member
Topic starter
 

Pessoal, vocês são muito feras nisso aqui!!! haha

Muito obrigado pela ajuda aí, de verdade!!!

Testei todos exemplos e praticamente todos deram certo, porém, o mais completo foi o do Bernardo, muito obrigado tchê!!!

Abraço.

 
Postado : 02/10/2015 12:14 pm