Notifications
Clear all

Macro para abrir arquivo txt

3 Posts
2 Usuários
0 Reactions
1,132 Visualizações
JaimeBorge
(@jaimeborge)
Posts: 41
Eminent Member
Topic starter
 

Boa tarde.

Existe algum jeito de fazer uma macro para abrir arquivos txt localizados na área de trabalho?

Preciso automatizar uma planilha, só que preciso fazer do principio, ou seja, o primeiro passo é abrir um arquivo txt e importar para o excel, posteriormente tratar ele.

Alguma sugestão?

Obrigado a quem puder ajudar.

Abs

 
Postado : 25/07/2017 1:16 pm
leandroxtr
(@leandroxtr)
Posts: 447
Reputable Member
 

Amigo, boa tarde!

Eu nunca trabalhei com file.txt, mas existe esse tutorial que explica detalhadamente como fazer esse processo que você está querendo.

O que pode ser um problema é que o tuto é em inglês, mas acho que o google pode traduzir de uma forma bem "entendível" .

Link: http://www.excel-easy.com/vba/examples/ ... -file.html

OBS: existem outros tópicos fantásticos neste site.

Espero ter ajudado de alguma forma!

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 25/07/2017 2:16 pm
JaimeBorge
(@jaimeborge)
Posts: 41
Eminent Member
Topic starter
 

Deu certo, consegui com o seguinte código:

Sub abrirArquivo()

MsgBox "Selecione o arquivo txt", vbOKOnly, "Seleção de Arquivo"

arquivo = " "

Dim fd As FileDialog

Set fd = Application.FileDialog(msoFileDialogFilePicker)

Dim arquivo_temp As Variant

With fd
.AllowMultiSelect = True
If .Show = -1 Then
For Each arquivo_temp In .SelectedItems
arquivo = arquivo_temp
Next arquivo_temp
End If
End With

Set fd = Nothing

Workbooks.OpenText Filename:="C:UsersJAIMEDesktop40_Abril.txt", Origin _
:=xlWindows, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array _
(0, 9), Array(17, 1), Array(19, 1), Array(70, 9), Array(91, 9), Array(108, 9), Array(121, 9) _
, Array(139, 9), Array(150, 9), Array(158, 9), Array(163, 1), Array(170, 9)), _
TrailingMinusNumbers:=True
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft

Columns("A:A").EntireColumn.AutoFit

End Sub

Mas será que tem jeito de "puxar" somente uma linha?

Obrigado

 
Postado : 25/07/2017 3:32 pm