Vídeo recomendado
https://youtu.be/diWPPPhW-9E

IMPORTAR TXT A PARTIR DE CERTA POSIÇÃO-RESOLVIDO-

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: IMPORTAR TXT A PARTIR DE CERTA POSIÇÃO-RESOLVIDO-

Mensagem por Reinaldo »

Sim, a priori é possivel


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


fao17
Colaborador
Colaborador
Mensagens: 10
Registrado em: Seg Jun 10, 2019 7:10 pm

Re: IMPORTAR TXT A PARTIR DE CERTA POSIÇÃO-RESOLVIDO-

Mensagem por fao17 »

Obrigado Reinaldo.

Estou tentando entender um pouco mais deste código pq ele é bem útil e como estou iniciando no VBA agora então estou com algumas dificuldades.
Como disse anteriormente precisava que o retorno da linha fosse somente se a partir da posição 296 o conteúdo fosse "130818".

Para isso apenas deixei comentado no código a linha:
If xAsc > 64 And xAsc < 91 Then

E tirei a linha abaixo como comentada.
If Mid(L, 296, 6) = "130818" Then

Dessa maneira não houve nenhum retorno na planilha.
Para o que necessito é preciso de uma nova estrutura de repetição?

Qual a parte do código em que ele por exemplo identifica a posição onde esta o nome do cliente no arquivo txt e traz ele para a planinha com o número de caracteres correto?


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: IMPORTAR TXT A PARTIR DE CERTA POSIÇÃO-RESOLVIDO-

Mensagem por Reinaldo »

"...Dessa maneira não houve nenhum retorno na planilha. ..."
Se está utilizando o arquivo exemplo, veja que no txt anexo não há registros com "130818", então não retornará registro algum.
Altere 130818 para "130918" e veja o resultado

Código: Selecionar todos

'INSERIR DADOS NA PLANILHA
'-------------------------------------------------------------
Do While Not EOF(I)
    frmmenu.LBLSTATUS.Caption = "PROCESSANDO LINHA:" & LN - 1
    DoEvents
    Line Input #I, L
'Verifica se o valor da string é o esperado
If Mid(L, 296, 6) = "130918" Then
        W.Cells(LN, COL).Value = Mid$(L, PTI1, PTF1)
        W.Cells(LN, COL + 1).Value = Mid$(L, PTI2, PTF2)
        W.Cells(LN, COL + 2).Value = Mid$(L, PTI3, PTF3)
        W.Cells(LN, COL + 3).Value = Mid$(L, PTI4, PTF4)
        W.Cells(LN, COL + 4).Value = Mid$(L, PTI5, PTF5)
        LN = LN + 1
    End If
Loop


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder