Usuário com melhor resposta
Macro para importar txt para o excel

Pergunta
-
Respostas
-
Você já experimentou abrir esse arquivo TXT pelo Excel?
Assim que você tentar, abrirá um assistente e você poderá visualizar os dados de uma forma melhor.
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator quarta-feira, 11 de março de 2015 00:30
Todas as Respostas
-
-
O Modelo seria basicamente assim:
Matricula Nome Data/dia entrada saida irregularidade escala escala justificativa
353535 xxx xxxxx xx xx xx xx xx xxx
353535 xxx xxxxx xx xx xx xx xx xxx
Linha em branco (cor azul)
454565 xxx xxxx xx xx xx xx xx xxx
O modelo é basicamente esse. Desculpa, mas não deixaram colar a imagem da tabela que eu queria
-
Você já experimentou abrir esse arquivo TXT pelo Excel?
Assim que você tentar, abrirá um assistente e você poderá visualizar os dados de uma forma melhor.
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator quarta-feira, 11 de março de 2015 00:30
-
sergio.bonin@hotmail.com
Caro amigo, usei o gravador para importar e fiz algumas modificações.
Salve seu arquivo em "C:\Work\Dados.txt"
Salve como cst
O arquivo ficará assim:
Matricula;Nome;Data/dia;entrada;Saida;irregularidade; escala; escala; justificativa
353535;xxx;xxxxx;xx;xx;xx;xx;xx;xxx;
353536;xxx;xxxxx;xx;xx;xx;xx;xx;xxx;
454565;xxx;xxxx;xx;xx;xx;xx;xx;xxx;
Sub Importar()
Dim cont As Byte
With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\Work\Dados.txt", _
Destination:=Range("$A$1"))
.Name = "Dados"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 4, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
cont = Range("a1048576").End(xlUp).Row
Range("a1048576").End(xlUp).Select
Do While cont > 1
If ActiveCell = "" Then
Range(ActiveCell, ActiveCell.Offset(0, 9)).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.399975585192419
.PatternTintAndShade = 0
End With
Else
End If
ActiveCell.Offset(-1, 0).Select
cont = cont - 1
Loop
Range("A1").Select
End Sub
- Editado Sergio Bonin quarta-feira, 16 de março de 2016 23:53
-
sergio.bonin@hotmail.com
Caro amigo, usei o gravador para importar e fiz algumas modificações.
Salve seu arquivo em "C:\Work\Dados.txt"
Salve como cst
O arquivo ficará assim:
Matricula;Nome;Data/dia;entrada;Saida;irregularidade; escala; escala; justificativa
353535;xxx;xxxxx;xx;xx;xx;xx;xx;xxx;
353536;xxx;xxxxx;xx;xx;xx;xx;xx;xxx;
454565;xxx;xxxx;xx;xx;xx;xx;xx;xxx;
Sub Importar()
Dim cont As Byte
With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\Work\Dados.txt", _
Destination:=Range("$A$1"))
.Name = "Dados"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 4, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
cont = Range("a1048576").End(xlUp).Row
Range("a1048576").End(xlUp).Select
Do While cont > 1
If ActiveCell = "" Then
Range(ActiveCell, ActiveCell.Offset(0, 9)).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.399975585192419
.PatternTintAndShade = 0
End With
Else
End If
ActiveCell.Offset(-1, 0).Select
cont = cont - 1
Loop
Range("A1").Select
End Sub
Revivendo o tópico.
Amigo nesse seu exemplo você importa o txt delimitado por ;
como faço pra informar outro delimitador ? tem como?
Att.