Estou com um PROBLEMA aqui! Como criar uma macro para delimitar um arquivo txt onde as colunas desse arquivo podem aumentar ou diminuir.
Por exemplo;
1º TXT:
Código Encomenda 9039 9049 9059 Fornecedor Demanda N Linha
(Esse txt tem todas essas colunas)
Se todos os meus txt's tivessem a mesma quantidade de colunas seria perfeito, mas o problema é que podem haver mais colunas como as que estamos vendo acima com números.
2º TXT:
Código Encomenda 9039 9049 9059 9069 9072 9044 9045 Fornecedor Demanda N Linha
Aí já vai dar problema para delimitar!
Existe alguma forma de solucionar isso na macro! Pensei na hora de executar a macro aparecer um inputbox pedindo a quantidade de colunas e ele delimitar considerando essa variável, mas não saberia fazer. A macro que comecei a tentar fazer esta abaixo!
Se alguém puder me ajudar, fico-lhes imensamente grato!
Código: Selecionar todos
Sub Encs()
'Seleção dos arquivos
filenames = Application.GetOpenFilename(, , , , True)
counter = 1
k = 1
'ubound determina quantos arquivos serão selecionados
While counter <= UBound(filenames)
'Abre os arquivos selecionados
Workbooks.Open filenames(counter)
'Acertando o relatório do sistema
Application.ScreenUpdating = False
Workbooks.OpenText Filename:=filenames(counter), Origin:= _
xlWindows, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, _
2), Array(17, 1), Array(76, 1), Array(89, 1), Array(108, 1), Array(126, 1), Array(147, 1), _
Array(165, 1), Array(183, 1), Array(201, 1), Array(219, 1), Array(237, 1), Array(243, 1), _
Array(244, 1), Array(247, 1), Array(264, 1), Array(281, 1), Array(298, 1), Array(315, 1), _
Array(332, 1), Array(349, 1), Array(366, 1), Array(383, 1), Array(400, 1), Array(417, 1), _
Array(434, 1), Array(451, 1), Array(468, 1), Array(485, 1), Array(502, 1), Array(519, 1), _
Array(536, 1), Array(553, 1), Array(570, 1), Array(587, 1), Array(604, 1), Array(621, 1), _
Array(638, 1), Array(655, 1), Array(672, 1), Array(689, 1), Array(706, 1), Array(723, 1), _
Array(740, 1), Array(757, 1), Array(774, 1), Array(791, 1), Array(808, 1), Array(825, 1), _
Array(842, 1), Array(859, 1), Array(876, 1), Array(893, 1), Array(910, 1), Array(927, 1), _
Array(944, 1), Array(976, 1), Array(984, 1), Array(992, 1)), TrailingMinusNumbers:= _
True
counter = counter + 1
Wend
End Sub
Obrigado