Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Leitura de HTML

Gente, estava tentando montar um programinha no VBA para ler as TAGS de um HTML, esse HTML recebo no e-mail e abre a guia no navegador assim "C:\Users\ALINE\Desktop\1231456.html" a parte "123456" muda conforme a linha do Excel que utilizo

O Codigo fonte é assim

PJ: 1231456 - Processo: 000000000000000000 - Vara: 1 ABC

NomeCPFProduto/PlanoObservações
FULANO SAULO111.111.111-110000.0000

ABCDEF 123 GHIJKL

Eu preciso extrair os dados de NOME e colocar na celula "C", o dado CPF e colocar na celula "D", pegar o dado PJ e colocar na coluna "E". E se fosse possível pegar o quê está em "123" na parte

ABCDEF 123 GHIJKL

e colocar na coluna "F".

Já tentei buscar por fora e não consigo achar uma provável solução para isso. Como eu recebo esse arquivo em formato .html eu não sei se é possível abrir sem tem que salvar os arquivos no meu desktop

3 respostas

Oi Aline, tudo bem?

Vi que sua dúvida já está aqui há algum tempo, então talvez você já tenha conseguido evoluir mais.

O seu post tem uma parte que parece estar cortada (uma imagem) e fiquei com uma dúvida, você está lendo o HTML como texto ou pegando as "tags" com comandos do tipo: "getElement"?

Se estiver lendo como texto, já experimentou usar "MID". Seu código ficaria parecido com:

range("C3").value = mid([dados da linha], [início], [comprimento])

onde:

[dados da linha] = a linha de texto que você leu;

[início] = posição da linha de texto em que você quer pegar o dado;

[comprimento] = quantidade de caracteres que você quer pegar naquele campo;

Se não conseguir, mande mais detalhes para vermos se podemos te ajudar...

Abraços!

Olá professor Roberto, gostaria de pegar as informações através de tags com o getElement (Ler ele como HTML); se tento usar o MID. não ou ter uma precisão para retirar os dados do nome, já que o nome da pessoa as vezes é pequeno e não vai precisar de tantos caracteres e as vezes o nome é extenso e precisa de mais caracteres.

<table style = 'max-width:750px; text-align: center'><tr><img src = '\\iu800000020333\Arquivos\PC\.jpg' width='750'></img></tr><tr><p>PJ: <b>1231456</b> - Processo: <b>000000000000000000</b> - Vara: <b>1 ABC</b></p><tr><tr><table style=' text-align: center'><tr><th width = '150'>Nome</th><th width='150'>CPF</th><th width='150'>Produto/Plano</th><th width= '300'>Observações</th></tr><tr><td>FULANO SAULO</td><td>111.111.111-11</td><td>0000.0000</td><td width = '300'></td></table></tr><tr><p>ABCDEF <b>123</b> GHIJKL<p></tr><tr><img src = '\\iu800000020333\Arquivos\PC\.jpg' width='750'></img></tr></table>

Eu conseguir usar o comando "MID." para retirar o nome do arquivo que é o "PJ" mas agora travei novamente porquê: 1 -) Não consigo criar uma rotina para olha a minha subpasta onde recebo esses e-mails e pegar os arquivos .HTML e salvar em uma pasta de rede compartilhada 2 - ) Criar um comando para abrir o HTML no Internet Explorer (Exemplo: C:\User\Aline) e concatenar com o nome do arquivo (Esse consegui extrair e está em uma célula especifica) e abrir ele

solução!

Oi Aline, tudo bem?

Peço desculpas pela demora. Como esse tópico não está diretamente no meu curso, acabei não vendo e demorei para responder, desculpe.

Vamos lá, não sei se conseguiu resolver seu problema.

Esse código que você quer fazer é um pouco mais complexo, depende um pouco do seu ambiente e o que você já tem (além do seu conhecimento).

Experimente simplificar seu problema, dividindo essa string em várias, em vez de usar getElement.

Exemplo:

'Declarando uma variável

Dim MinhaStringOriginal as string

Dim StringQuebrada as variant

'Separando a string em um array

MinhaStringOriginal = "linha lida"

StringQuebrada = split(MinhaStringOriginal, "<")

'Coloque aqui o código para pegar o valor que precisa

(isso vai quebrar a sua string em uma array a cada "<" que tiver na sua string original. Bastaria você entender na sua estrutura qual é o índice da informação que você quer e limpar os primeiros e últimos caracteres que serão sujeira)

Veja abaixo como ficou cada um dos itens do array para essa string que você mandou:

StringQuebrada (1) = table style = 'max-width:750px; text-align: center'>

StringQuebrada (2) = tr>

StringQuebrada (3) = img src = '\iu800000020333\Arquivos\PC.jpg' width='750'>

StringQuebrada (4) = /img>

StringQuebrada (5) = /tr>

StringQuebrada (6) = tr>

StringQuebrada (7) = p>PJ:

StringQuebrada (8) = b>1231456

StringQuebrada (9) = /b> - Processo:

StringQuebrada (10) = b>000000000000000000

StringQuebrada (11) = /b> - Vara:

StringQuebrada (12) = b>1 ABC

StringQuebrada (13) = /b>

StringQuebrada (14) = /p>

StringQuebrada (15) = tr>

StringQuebrada (16) = tr>

StringQuebrada (17) = table style=' text-align: center'>

StringQuebrada (18) = tr>

StringQuebrada (19) = th width = '150'>Nome

StringQuebrada (20) = /th>

StringQuebrada (21) = th width='150'>CPF

StringQuebrada (22) = /th>

StringQuebrada (23) = th width='150'>Produto/Plano

StringQuebrada (24) = /th>

StringQuebrada (25) = th width= '300'>Observações

StringQuebrada (26) = /th>

StringQuebrada (27) = /tr>

StringQuebrada (28) = tr>

StringQuebrada (29) = td>FULANO SAULO

StringQuebrada (30) = /td>

StringQuebrada (31) = td>111.111.111-11

StringQuebrada (32) = /td>

StringQuebrada (33) = td>0000.0000

StringQuebrada (34) = /td>

StringQuebrada (35) = td width = '300'>

StringQuebrada (36) = /td>

StringQuebrada (37) = /table>

StringQuebrada (38) = /tr>

StringQuebrada (39) = tr>

StringQuebrada (40) = p>ABCDEF

StringQuebrada (41) = b>123

StringQuebrada (42) = /b> GHIJKL

StringQuebrada (43) = p>

StringQuebrada (44) = /tr>

StringQuebrada (45) = tr>

StringQuebrada (46) = img src = '\iu800000020333\Arquivos\PC.jpg' width='750'>

StringQuebrada (47) = /img>

StringQuebrada (48) = /tr>

StringQuebrada (49) = /table>