Pessoal
Sou novo aqui e descobri uma macro que faz a importação de txt automaticamente, postada pelo alexandrevba.
Sub ImportarTXT()
Dim Campos As Variant
Dim Arquivo As String
Dim i As Long, j As Long
'Contador de linhas
i = 2
'abre um "mini" explorer de arquivos
Arquivo = Application.GetOpenFilename("Arquivos Texto(*.txt), *.txt")
'abre o arquivo texto
Open Arquivo For Input As #1
'Enquanto não chega ao fim do arquivo
While Not (EOF(1))
'Captura 1 linha e armazena na variável Linha
Line Input #1, linha
'separa os campos e armazena na variável "Campos"
Campos = Split(linha, "|")
'Distribui os campos na planilha
For j = 0 To UBound(Campos)
Cells(i, j + 1).Value = Campos(j)
Next
'incrementa uma linha
i = i + 1
Wend
'fecha o arquivo texto
Close #1
MsgBox "Fim de execução da macro"
End Sub
Muito boa! Parabéns. Porém preciso que ela insira o número de cada linha importada e distribua os dados importados para outras planilhas da pasta de trabalho, atendendo a alguns critérios.
Alguém pode me ajudar?
Obrigado
Bom dia!!!
Porém preciso que ela insira o número de cada linha importada e distribua os dados importados para outras planilhas da pasta de trabalho, atendendo a alguns critérios.
Olá, acho é preciso mais detalhes...
Quais e quantas são as planilhas?
Quais os critérios?
Att
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Boa noite Alexandre
Exemplo do arquivo texto:
|0000|002|0|||01012012|31012012|NOME|87654093000192|ES|31325309||00|2|
|0001|0|
|0100|nome do responsaveil|08988938993|RR9999999-9||31987280|NOME DA RUA|269||CENTRO|4287654800|4287493480|reg@DDD.com.br|7699999|
|0110|3|2|1|
|0111|4251311,98|542042,96|0|0|4793354,94|
|0140|04|NOMEDEQUEM GEROUAINFORMACAO|86366363636366454|766666666|9854388|||
|0150|SA10405289892|DFSDFSFSFSFDFSDFSDSFS|1058||99999999990||2787609||RUA MMMMMMMM|14||KKKKKK LLLLLE|
|0400|2102|TEXTO DA OPERA|
|0400|5102|IUTROTEXTOOPERACIONE|
|0990|11002|
|A001|1|
|A990|2|
|C001|0|
|C010|22222222222222|1|
|C100|0|1|SA104MAPBH104|01|00|1|139816||02012012|02012012|129,9|9|0|0|129,9|9|0|0|0|129,9|22,08|0|0|0|2,14|9,87|0|0|
|C170|1|9999999999999|NOMEPRODUTO|1|PC|129,9|0|0|000|1202|1202|129,9|17|22,08|0|0|0|0|||0|0|0|50|129,9|1,65|||2,14|50|129,9|7,6|||9,87||
|C100|0|1|SA10411444901|01|00|1|139819||02012012|02012012|59,96|9|0|0|59,96|9|0|0|0|59,96|10,19|0|0|0|0,99|4,56|0|0|
|C170|1|789136172|XIC CHA QUARTIERE|4|PC|59,96|0|0|000|1202|1202|59,96|17|10,19|0|0|0|0|||0|0|0|50|59,96|1,65|||0,99|50|59,96|7,6|||4,56||
|C990|31991|
|D001|0|
|D010|88888888888888|
|D500|0|1|S22288888 01|21|00|||3984|12012012|23012012|5,26|0|5,26|0|0|0|0|0||0|0|
|F01|0|
|F10|99999999999999|
|F00|0|1|SA9999941 01|21|00|||3984|12012012|23012012|5,26|0|5,26|0|0|0|0|0||0|0|
|M001|0|
|M010|66666666666666|
|M500|0|1|S87878781 01|21|00|||3984|12012012|23012012|5,26|0|5,26|0|0|0|0|0||0|0|
|1001|0|
|1010|77777777777777|
|1500|0|1|TTTT77777 01|21|00|||3984|12012012|23012012|5,26|0|5,26|0|0|0|0|0||0|0|
|9001|0|
|9010|23333333333333|
|9500|0|1|KJ7777771 01|21|00|||3984|12012012|23012012|5,26|0|5,26|0|0|0|0|0||0|0|
Esses dados são importados para o Excel na Pan1 e os registros que começam com 0(zero) devem ser copiados na Plan2, os que começam com A para a Plan3, os que começam com C para a Plan4, com D para a Plan5, com F para a Plan6, com M para a Plan7, com 1 para a Plan8 e com 9 para a Plan9.
Desde já fico grato pelo interesse e ajuda
Boa noite!!!
Só te serve por meio de VBA.
Caso contrário baixe o anexo.
Dê retorno!
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Muito Obrigado Alexandre
Boa noite!!!
Vamos tentar via VBA, mas terá adaptar ...
Autor:Chris
Sub ClickNaMãozinha() Dim lr As Long Dim lrOutWs As Long Dim ws As Worksheet Dim sWsOutname As String Dim i As Long Dim j As Long Dim vArrSplitter As Variant Set ws = Worksheets("Plan1") For i = 1 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row Select Case Mid(ws.Cells(i, 1), 2, 1) Case "0" sWsOutname = "Plan2" Case "A" sWsOutname = "Plan3" Case "C" sWsOutname = "Plan4" Case "D" sWsOutname = "Plan5" Case "F" sWsOutname = "Plan6" Case "M" sWsOutname = "Plan7" Case "1" sWsOutname = "8" Case "9" sWsOutname = "Plan9" Case Else sWsOutname = "ERROS" End Select lrOutWs = Worksheets(sWsOutname).Cells(Worksheets(sWsOutname).Rows.Count, 1).End(xlUp).Row Worksheets(sWsOutname).Row(lrOutWs + 1).Value = ws.Rows(i).Value vArrSplitter = Split(ws.Cells(i, 1), "|") For j = 1 To UBound(vArrSplitter()) - 1 Worksheets(sWsOutname).cels(lr + 1, j) = vArrSplitter(j) Next j Next i Set ws = Nothing End Sub
Caso resolva favor marcar o tópico como resolvido.
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Boa noite Alexandre
A execução deu erro em tempo de execucao '438'. O objeto não aceita esta propriedade ou método, nesse ponto da execução
Worksheets(sWsOutname).Row(lrOutWs + 1).Value = ws.Rows(i).Value.
sWsOutname = 'Plan2' e
lrOutWs = 1
Não sei como tratar esse erro.
Tem como ajudar-me?
Obrigado
Bom ia!!!
Fneves, veja se o arquivo baixo te ajuda.
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel