Notifications
Clear all

Criar um TXT

10 Posts
3 Usuários
0 Reactions
1,414 Visualizações
(@vpeglow)
Posts: 88
Estimable Member
Topic starter
 

Bom dia.

Estou com um problema não estou conseguindo resolver, tenho uma planilha com 10 abas, queria criar um botão que salva-se a aba "Exportação" como arquivo TXT no meu desktop, no caso gera-se um arquivo TXT... alguém sabe algum método?

Obrigado

 
Postado : 20/04/2015 7:54 am
(@lmonteiro)
Posts: 0
New Member
 

Boa tarde amigo,

Existe mais de uma forma para se fazer isso, mas acredito que o mais fácil seja você utilizar o método Open. Abaixo encaminho um exemplo:


Sub gravarTXT()
    Dim localGravacao As String
    Dim nomeArquivo As String
    Dim linhaGravar As String
    Dim ultLinha As Integer
    Dim ultColuna As Integer
    
    localGravacao = Environ("USERPROFILE") & "Desktop"
    nomeArquivo = "ArquivoExportado.txt"
    ultLinha = Sheets("Exportação").Range("A65000").End(xlUp).Row
    ultCol = Sheets("Exportação").Range("A1").End(xlToRight).Column
    
    'Abre o arquivo para gravação
    Open localGravacao & nomeArquivo For Output As #1
        For i = 1 To ultLinha
            For j = 1 To ultCol
                   'Concatena as colunas separando elas por ","
                   linhaGravar = linhaGravar & Sheets("Exportação").Cells(i, j).Value & ","
            Next j
            'Grava a linha no arquivo - As funções Left e Len são utilizadas para excluir a última virgula do texto
            Write #1, Left(linhaGravar, Len(linhaGravar) - 1)
            linhaGravar = ""
        Next i
    Close #1
End Sub

 
Postado : 20/04/2015 11:45 am
(@vpeglow)
Posts: 88
Estimable Member
Topic starter
 

Olá Imonteiro

esse código VBA que me passou criou o arquivo na minha área de trabalho, entretanto não gerou as informações no arquivo TXT, o mesmo ficou em branco.

Att;

 
Postado : 20/04/2015 2:29 pm
(@lmonteiro)
Posts: 0
New Member
 

Olá vpeglow,

O código que passei leva em consideração que os dados estão em formato de base iniciando na célula "A1". Pode me informar como sua base está disposta no arquivo?

Att,

 
Postado : 22/04/2015 5:06 am
(@vpeglow)
Posts: 88
Estimable Member
Topic starter
 

Bom dia Imonteiro

Segue em anexo o arquivo, creio que ficara mais fácil de visualizar, e começa na célula A1.

 
Postado : 22/04/2015 5:15 am
(@vpeglow)
Posts: 88
Estimable Member
Topic starter
 

Alguém sabe um método para resolver isso?

 
Postado : 24/04/2015 5:37 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

A proposta do colega lmonteiro executa o que deseja.
Porem altere as linhas da ultima linha (ultLinha) e ultima coluna (ultCol,esta está buscando a ultima mesmo +16000)
talvez seja por isso que não viu resultado.
P.S.: Conforme regra do forum, os arquivos devem ser postados Compactados (Zip, 7z,Rar....)

Sub gravarTXT()
    Dim localGravacao As String
    Dim nomeArquivo As String
    Dim linhaGravar As String
    Dim ultLinha As Integer
    Dim ultColuna As Integer
    
    localGravacao = Environ("USERPROFILE") & "Desktop"
    nomeArquivo = "ArquivoExportado.txt"
    ultLinha = Sheets("Exportação").Cells(Cells.Rows.Count, "A").End(xlUp).Row
    ultCol = Sheets("Exportação").Cells(1, Cells.Columns.Count).End(xlToLeft).Column
    
    'Abre o arquivo para gravação
    Open localGravacao & nomeArquivo For Output As #1
        For i = 1 To ultLinha
            For j = 1 To ultCol
                   'Concatena as colunas separando elas por ","
                   linhaGravar = linhaGravar & Sheets("Exportação").Cells(i, j).Value & ","
            Next j
            'Grava a linha no arquivo - As funções Left e Len são utilizadas para excluir a última virgula do texto
            Write #1, Left(linhaGravar, Len(linhaGravar) - 1)
            linhaGravar = ""
        Next i
    Close #1
End Sub
 
Postado : 24/04/2015 8:14 am
(@vpeglow)
Posts: 88
Estimable Member
Topic starter
 

Boa tarde Reinaldo

o código funciona corretamente, porem esta gerando Aspas no inicio e no fim de cada linha conforme podemos ver na imagem abaixo.

 
Postado : 24/04/2015 12:00 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente substituir Write #1 por Print #1

 
Postado : 24/04/2015 2:36 pm
(@vpeglow)
Posts: 88
Estimable Member
Topic starter
 

Funcionou... muito obrigado

 
Postado : 26/04/2015 6:58 pm