IMPORTACAO DE TXT PARA EXCEL

HAYLANDER 02/04/2013 11:51:34
#421406
Amigos, estou aprendendo agora VB e estou precisando de uma ajuda!!!
Tenho um arquivo em TXT que preciso importar para Excel através de um [Ô]CommandButton[Ô], no entanto preciso apenas de algumas informações.
Até o momento consegui fazer esse código abaixo, no entanto ainda preciso que ele retorne apenas os dados das colunas e não o cabeçalho do arquivo Txt...preciso tbm nomear as colunas que vão receber esses dados.

Tem alguém que possa me auxiliar???

Segue o código:

Private Sub CommandButton1_Click()
Dim Campos As Variant
Dim Arquivo As String
Dim i As Long
Dim rg As Range
Set rg = Range([Ô]A2[Ô])

[ô]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

Dim S As String
Do Until EOF(1)
Line Input #1, S

[ô] If Left(s, 9) Like [Ô]4[Ô] Then
rg.Offset(0, 0) = Mid(S, 9, 9)
rg.Offset(0, 1) = Mid(S, 21, 32)
rg.Offset(0, 2) = Mid(S, 63, 13)

Set rg = rg.Offset(1, 0)
[ô]End If
Loop

Close #1

Columns([Ô]c:c[Ô]).Select
Selection.TextToColumns Destination:=Range([Ô]c1[Ô]), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Selection.Style = [Ô]Currency[Ô]

MsgBox [Ô]Extração realizada com sucesso[Ô]
End Sub
MITSUEDA 02/04/2013 13:31:45
#421413
Saudações

é importante saber qual a estrutura do txt que vc deseja importar,

Ai vc poder varrer o txt de acordo com a largura ou delimitador o que fo o caso.

Se puder disponibilizar um modelo do txt no site no e-mail mitsueda@ig.com.br

Abraço
HAYLANDER 02/04/2013 13:43:11
#421417
Agradeço a ajuda.
Segue um modelo no formato do txt (as informações foram editadas para proteger a integridade da empresa)
O código que fiz já retorna as colunas que preciso, que são a segunda, a terceira e a ultima, no entanto não preciso do cabeçalho e nem do final de cada página desse relatório.
Gostaria tbm de nomear as colunas sendo A = CONTA, B= DESCRIÇÃO E C=SALDO.

Desde já agradeço toda ajuda e atenção dispensada. VALEU!!!

Relatório: 8 - Demonstrativo de Resultado - /2013 09:30:39
Demonstrativo de Resultado
Critérios: Data Inicial: 01/12/2012 - Data Final: 30/12/2012
Red.Conta Percentual % Saldo $
Empresa: POSTO
153 4 RECEITAS 100,0000 % 9.999.999,99
154 4.1 RECEITAS OPERACIONAIS 100,0000 % 9.999.999,99
155 4.1.01 VENDAS 100,0000 % 9.999.999,99
201 4.1.01.01 VENDAS COMBUSTÍVEIS 100,0000 % 9.999.999,99
204 4.1.01.02 RECEITAS BALDE 100,0000 % 9.999.999,99
207 4.1.01.03 VENDAS GALAO 100,0000 % 9.999.999,99
210 4.1.01.04 VENDAS LITRO 100,0000 % 9.999.999,99
Impresso em: 02/04/2013 09:30:39 1 /3 XXXXXXXXXX 3.4.0.20 - (DB: 118)..
Relatório: 8 - Demonstrativo de Resultado - /2013 09:30:39
Red.Conta Percentual % Saldo $
102 3.2 DESPESAS OPERACIONAIS 100,0000 % 9.999.999,99
103 3.2.01 DESPESAS COM FUNCIONÁRIOS 100,0000 % 9.999.999,99
105 3.2.01.02 SALáRIOS 100,0000 % 9.999.999,99
106 3.2.01.03 VALE TRANSPORTE 100,0000 % 9.999.999,99
107 3.2.01.04 COMISSõES 100,0000 % 9.999.999,99
108 3.2.01.05 OUTRAS DESPESAS C/ FUNCIONARIOS 100,0000 % 9.999.999,99
109 3.2.01.06 13º SALáRIO 100,0000 % 9.999.999,99
Totalizador Empresa: C.M.V Receita VendResultado (%) Resultado
Lucro Brut9.999.999,99 9.999.999,99 100,00% 9.999.999,99
Despesas Receitas Resultado
Resultado do Exercício:9.999.999,99 9.999.999,99 9.999.999,99
Totalizador Relatório: C.M.V Receita Vendaesultado (%) Resultado
Lucro Bruto:9.999.999,99 9.999.999,99 100,00% 9.999.999,99
Despesas Receitas Resultado
Resultado do Exercício:9.999.999,99 9.999.999,99 9.999.999,99
Impresso em: 02/04/2013 09:30:39 3 /3 XXXXXXXXX 3.4.0.20 - (DB: 118)..

MITSUEDA 03/04/2013 07:58:56
#421436
Use um código após importar para arrumar o código abaixo deixa apenas os titulos que são númericos na primeira letra

Sub arrumar()
Dim intRetRow As Long
Dim x As Long
Dim sht As Worksheet

Set sht = ThisWorkbook.Sheets([Ô]Plan1[Ô])

intRetRow = sht.Range([Ô]A65536[Ô]).End(xlUp).Row

For x = intRetRow To 1 Step -1
If Not IsNumeric(Left(sht.Cells(x, 1).Value, 1)) Then
sht.Rows(x).Delete
End If
Next

Set sht = Nothing
End Sub

Ai vc chama uma função assim apos a importação.

Abraço
Faça seu login para responder