Notifications
Clear all

TXT para o Excel

7 Posts
2 Usuários
0 Reactions
1,297 Visualizações
(@digo203)
Posts: 117
Estimable Member
Topic starter
 

Senhores bom dia!

Preciso da ajuda dos senhores que manjam muito de Excel e Macros.

Em anexo está um exemplo do que eu preciso fazer para me ajudar e muito no dia a dia de minhas rotinas.

Creio que seja possível, porem não simples de se fazer, por isso peço a ajuda de vcs.

Obrigado.

 
Postado : 27/01/2014 8:35 am
(@depoisteconto)
Posts: 183
Reputable Member
 

Com uma pasta de trabalho excel aberta, escolha abrir, selecione a extensão 'todos os arquivos', localize os arquivos em .txt. Vai aparecer para você o Assistente de importação de texto - etapa 1 de 3.

Então começe a delimitar as colunas que forem possíveis.

At

 
Postado : 27/01/2014 9:41 am
(@digo203)
Posts: 117
Estimable Member
Topic starter
 

Com uma pasta de trabalho excel aberta, escolha abrir, selecione a extensão 'todos os arquivos', localize os arquivos em .txt. Vai aparecer para você o Assistente de importação de texto - etapa 1 de 3.

Então começe a delimitar as colunas que forem possíveis.

At

Olá amigo, boa tarde!

Obrigado pela resposta.

Então, este procedimento eu ja conheço e as vezes utilizo, o problema é quando o txt é muito extenso da muito trabalho em selecionar as linhas, por isso solicitei alguma especie de macro que consiga selecionar apenas as linhas que eu necessito.

Abraços,

 
Postado : 27/01/2014 10:47 am
(@depoisteconto)
Posts: 183
Reputable Member
 

Com uma pasta de trabalho excel aberta, escolha abrir, selecione a extensão 'todos os arquivos', localize os arquivos em .txt. Vai aparecer para você o Assistente de importação de texto - etapa 1 de 3.

Então começe a delimitar as colunas que forem possíveis.

At

Olá amigo, boa tarde!

Obrigado pela resposta.

Então, este procedimento eu ja conheço e as vezes utilizo, o problema é quando o txt é muito extenso da muito trabalho em selecionar as linhas, por isso solicitei alguma especie de macro que consiga selecionar apenas as linhas que eu necessito.

Abraços,

Veja se consegue adaptar a sua necessidade.

viewtopic.php?f=10&t=2697

At

 
Postado : 27/01/2014 2:18 pm
(@digo203)
Posts: 117
Estimable Member
Topic starter
 

Bom dia depoisteconto e a todos do blog.

Podem me dar uma ajuda?

Fiz uma macro bem bobinha que acho que vai me ajudar e agora gostaria da ajuda de vcs que sabem muito mais do que eu.
Da pra colocar dentro do codigo algo que ele entenda que certa linha do excel ja esta preenchida e que entao ela vá para a proxima linha vaga sem apagar as outras e assim por diante????

Deixei em anexo um exemplo de como ficou e do que preciso.

 
Postado : 28/01/2014 7:43 am
(@depoisteconto)
Posts: 183
Reputable Member
 

Bom dia depoisteconto e a todos do blog.

Podem me dar uma ajuda?

Fiz uma macro bem bobinha que acho que vai me ajudar e agora gostaria da ajuda de vcs que sabem muito mais do que eu.
Da pra colocar dentro do codigo algo que ele entenda que certa linha do excel ja esta preenchida e que entao ela vá para a proxima linha vaga sem apagar as outras e assim por diante????

Deixei em anexo um exemplo de como ficou e do que preciso.

Não depurei seu código ok. Tratando especificamente de como verificar se a linha está preenchida, segue abaixo um exemplo:

Cells(Rows.Count, "A").End(xlUp).Row

O resultado do trecho acima é a última linha preenchida.

Para aproveitar essa informação da maneira que pretende, atribua o resultado desse trecho a uma variável, exemplo:

linhavazia = Cells(Rows.Count, "A").End(xlUp).Row + 1

Observe que eu criei (para criar de fato a variável seria preciso declará-la e definir o tipo de dado que ela vai receber, seria algo tipo assim: Dim linhavazia as Long) uma variável de nome linhavazia e atribui o resultado de Cells... nela. E não foi só isso, como o resultado de Cells...vai ser a última linha preenchida, eu somei esse resultado + 1, porque ae sim temos a próxima linha vazia e apta a receber o próximo registro.

E agora, como podemos fazer isso na prática. Normalmente em loops, tipo assim;

For x = 2 to 100
linhavazia = Cells(Rows.Count, "A").End(xlUp).Row + 1
Cells(linhavazia, "A") = valor que desejo atribuir nessa célula.
Next

Tente evoluir um pouco mais, e não hesite em nos consultar.

At

 
Postado : 28/01/2014 10:15 am
(@digo203)
Posts: 117
Estimable Member
Topic starter
 

Bom dia!

Consegui adaptar os codigos a minha planilha.
Agora preciso de mais uma ajuda que é muito fod4.

Podem me ajudar com um codigo que busque e abra varios arquivos em TXT nomeados com datas diferentes??

ex: 01/01/2014.txt
02/01/2014.txt e assim por diante

A estrutura de todos eles é a mesma

Abaixo segue o meu codigo que foi todo feito no modo mais basico. Gravar macro.

Workbooks.OpenText Filename:="J:2014Relatórios EOSAN064R1ANBP064C.txt", _
Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array( _
Array(0, 1), Array(12, 1), Array(21, 1), Array(53, 1), Array(61, 1), Array(71, 1), Array(87 _
, 1), Array(105, 1), Array(123, 1)), TrailingMinusNumbers:=True

Range("H1,H11,H21,H31,H41,H51,H61").Select
Range("H61").Activate
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.Replace What:="pa", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Sheets("ANBP064C").Select

Range("A7:H7,A17:H17,A27:H27,A37:H37,A47:H47,A57:H57,A67:H67").Select
Range("A67").Activate
Application.CutCopyMode = False
Selection.Copy
Sheets("Plan1").Select
Range("B1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("ANBP064C").Select
Range("A2,A12,A22,A32,A42,A52,A62").Select
Range("A62").Activate
Application.CutCopyMode = False
Selection.Copy
Sheets("Plan1").Select
Range("J1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1:J6").Select
Application.CutCopyMode = False

Cells.Select
Application.CutCopyMode = False
With Selection.Font
.Name = "Calibri"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
Range("A1:J6").Select
Selection.Copy
Windows("Seleção x Ctas à Pagar_2014 - Cópia.xlsm").Activate
Range("A3").Select
Selection.Insert Shift:=xlDown
Columns("A:A").Select
Application.CutCopyMode = False
Selection.NumberFormat = "dd/mm/yyyy"
Columns("H:H").Select
Selection.NumberFormat = "dd/mm/yyyy"
Range("A3").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Range("A3:J160").Select

With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("P1").Select
ActiveWorkbook.Worksheets("ARV").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("ARV").AutoFilter.Sort.SortFields.Add Key:=Range( _
"A1:A861"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("ARV").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("P1").Select

Range("N1").Select

Windows("ANBP064C.txt").Activate
ActiveWindow.Close False
Range("P1").Select

ActiveWorkbook.Worksheets("ARV").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("ARV").AutoFilter.Sort.SortFields.Add Key:=Range( _
"A1:A735"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("ARV").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Columns("I:I").Select
Selection.NumberFormat = "_(* #,##0.00_);_(* (#,##0.00);_(* ""-""??_);_(@_)"
Range("P1").Select

End Sub

 
Postado : 29/01/2014 7:49 am