Ir ao conteúdo

Excel Importar txt com tabulação de diretório e salvar como xls em diretório


Ir à solução Resolvido por Wendell Menezes,

Posts recomendados

Postado

Tenho vários arquivos .txt no diretório c:\txt e preciso importar individualmente para o excel salvando individualmente com o nome de cada arquivo txt no formato .xls no diretório c:\xls

Em anexo tem os arquivos txt com os dados a serem importados e os arquivos xls de como devem ficar.

1.txt 2.txt 3.txt 3.xls 2.xls 1.xls

Postado

Experimente essa macro:

 

Sub CONVERT_TXT()

Const PathTXT As String = "C:\Users\PC\Downloads\" 'Diretório dos .TXT (com "\" no fim!)
Const PathXLS As String = "C:\Users\PC\Downloads\" 'Diretório dos .XLS (com "\" no fim!)

Dim FSO     As Object
Dim File    As Object
Dim wb      As Workbook

Application.DisplayAlerts = False

Set FSO = VBA.CreateObject("Scripting.FileSystemObject")

For Each File In FSO.GetFolder(PathTXT).Files
    If Right(LCase(File), 4) = ".txt" Then
        Set wb = Workbooks.Open(File)
        wb.SaveAs PathXLS & Replace(LCase(wb.Name), ".txt", ".xls")
        wb.Close False
    End If
Next

End Sub

 

Postado

E se você clica em Sim, não abre o arquivo?

De qualquer maneira, altere essa linha do código, acrescentando , xlWorkbookNormal no fim":

 

wb.SaveAs PathXLS & Replace(LCase(wb.Name), ".txt", ".xls"), xlWorkbookNormal

 

Postado

@Wendell Menezes Se eu clicar em Sim o arquivo abre porém fica ruim pois são 400 arquivos e de qualquer forma o seu último código ficou perfeito.

 

Se for de sua boa vontade e puder ajudar, toda guia da planilha convertida pra xls tem que ter o nome "plan1" ao invés do nome do arquivo txt

 

  • Solução
Postado

Claro, ficaria assim:

 

Sub CONVERT_TXT()

Const PathTXT As String = "C:\Users\PC\Downloads\" 'Diretório dos .TXT (com "\" no fim!)
Const PathXLS As String = "C:\Users\PC\Downloads\" 'Diretório dos .XLS (com "\" no fim!)

Dim FSO     As Object
Dim File    As Object
Dim wb      As Workbook

Application.DisplayAlerts = False

Set FSO = VBA.CreateObject("Scripting.FileSystemObject")

For Each File In FSO.GetFolder(PathTXT).Files
    If Right(LCase(File), 4) = ".txt" Then
        Set wb = Workbooks.Open(File)
        ActiveSheet.Name = "Plan1"
        wb.SaveAs PathXLS & Replace(LCase(wb.Name), ".txt", ".xls"), xlWorkbookNormal
        wb.Close False
    End If
Next

End Sub

 

  • 2 meses depois...
Postado

Olá amigos,

No caso aqui citado a macro está gravando um arquivo para cada txt. É possível gravar em apenas uma Pasta de Trabalho do Excel sendo cada txt como uma aba (planilha) dentro dessa pasta?

Podem me ajudar?

    

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!