Ir ao conteúdo

Posts recomendados

Postado

pessoal,

eu tenho uma macro para conversão de txt em excel, eu fiz um codigo que converte e abre o arquivo.

como eu tenho muitos arquivos eu repliquei o codigo alterando o nome do arquivo que estava sendo convertido.

ai agora eu faco a conversão e fico com 40 planilhas abertas e tenho que juntar todas em uma unica planilha,

todas tem o mesmo layout, ai eu pego uma e vou colando as demais embaixo dela e fechando...

esse é um processo que eu perco muito tempo, gostaria de saber se tem alguma macro que eu consiga unificar todas as planilhas ativas de uma só vez.

Postado

@djacy.neto Então se tiver 40 TXT seu código converte cada um desses arquivos em 40 planilhas? Esse é o problema?

 

Se for isso é só usar um único objeto Workbook para criar uma planilha (ou apenas usar a planilha que está rodando a macro) e ir convertendo ou importando cada TXT para ela.

 

Se você puder postar o código vai ficar mais fácil ajudar.

 

Postado

@Midori

certo!

 

o codigo que eu uso é este:

Workbooks.OpenText Filename:="P:\MACRO P CONVERSÃO\txt_01.txt", Origin _
        :=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0 _
        , 1), Array(5, 1), Array(12, 1), Array(21, 1), Array(23, 1), Array(73, 1), Array(84, 1), _
        Array(89, 1), Array(90, 1), Array(101, 1), Array(104, 1), Array(110, 1), Array(122, 1), _
        Array(142, 1)), TrailingMinusNumbers:=True
    Columns("N:N").Select
    Selection.ClearContents
    Range("P3").Select
    ActiveWindow.SmallScroll Down:=-18
    
      Workbooks.OpenText Filename:="P:\MACRO P CONVERSÃO\txt_02.txt", Origin _
        :=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0 _
        , 1), Array(5, 1), Array(12, 1), Array(21, 1), Array(23, 1), Array(73, 1), Array(84, 1), _
        Array(89, 1), Array(90, 1), Array(101, 1), Array(104, 1), Array(110, 1), Array(122, 1), _
        Array(142, 1)), TrailingMinusNumbers:=True
    Columns("N:N").Select
    Selection.ClearContents
    Range("P3").Select
    ActiveWindow.SmallScroll Down:=-18

eu uso a repetição, mudando apenas o nome do arquivo que vai ser convertido.

Postado

@djacy.neto Você pode usar um loop para ir abrindo o TXT e fechado após copiar os dados para a planilha da macro,

 

Sub Macro()
    Dim Planilha    As Worksheet
    Dim TXT         As Workbook
    Dim I           As Integer
    
    Set Planilha = ThisWorkbook.ActiveSheet
    
    For I = 1 To 2
        Workbooks.OpenText Filename:="P:\MACRO P CONVERSÃO\txt_" & Format(I, "00") & ".txt", Origin _
        :=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0 _
        , 1), Array(5, 1), Array(12, 1), Array(21, 1), Array(23, 1), Array(73, 1), Array(84, 1), _
        Array(89, 1), Array(90, 1), Array(101, 1), Array(104, 1), Array(110, 1), Array(122, 1), _
        Array(142, 1)), TrailingMinusNumbers:=True
    
        Set TXT = ActiveWorkbook
    
        TXT.ActiveSheet.Columns("N:N").ClearContents
        TXT.ActiveSheet.Range("A1").CurrentRegion.Copy
        
        Planilha.Range("A" & Planilha.Range("A1048576").End(xlUp).Row + 1).PasteSpecial
        
        Application.DisplayAlerts = False
        TXT.Close
        Application.DisplayAlerts = True
    Next I
End Sub

 

Como não sei a formatação que fica a sua planilha após importar o TXT, usei CurrentRegion para tentar copiar todos os dados importados da "planilha TXT" para a planilha da macro. Talvez seja preciso fazer alguma alteração para adaptar para o seu caso.

 

Quando a macro estiver rodando, não altere manualmente a planilha ativa ou pode dar problema por causa desta "Set TXT = ActiveWorkbook"

 

Nesse caso testei com dois arquivos (For de 1 a 2), mas se estiver ok você pode aumentar para a quantidade de arquivos que tiver no formato de nome "txt_NN.txt".

 

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...