Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Por SandroLima
#73603
Boa noite.

Estou tentando escrever uma macro para localizar e extrair algumas partes de texto das células de uma tabela com base na quantidade e na posição de caracteres específicos, nesse caso o espaço (" ") .

Gostaria de ajuda para estruturar a base dessa macro.

Na coluna [Qtde de Espaços] ela retorna a quantidade de " " das células da Coluna Descrição (essa parte eu consegui).

Agora precisava de ajuda para obter o resultado das colunas:
- Último : refere-se a posição do último caracter espaço (" ") da Célula
- Penúltimo : refere-se a posição do Penúltimo caracter espaço (" ") da Célula
- Antepenúltimo : refere-se a posição do Antepenúltimo caracter espaço (" ") da Célula
- Pré-Antepenúltimo : refere-se a posição do Pré-Antepenúltimo caracter espaço (" ") da Célula
- Algarismo entre III e IV : refere-se à parte do texto que se encontra entre o Pré-Antepenúltimo e o Antepenúltimo espaço.

A Coluna Resultado Desejado refere-se ao texto da Coluna [Algarismo entre III e IV] para efeito de verificação do resultado.

Deixei na forma de comentário as partes que não soube desenvolver.

Como a quantidade de espaços na célula é variável preciso que a macro faça a localização dessas posições dos espaços (" ").

A medida que for construindo a macro vou usando a base dela para referenciar outras partes de texto a serem extraídas.

Iniciei a estrutura da macro mas não sei se essa é a maneira mais ágil... lembrando que a tabela pode variar de 1 até 200 linhas aproximadamente... se alguém souber de uma maneira melhor de fazer aceito sugestões.

Segue a planilha anexa para verificação e testes.

Obrigado a todos que puderem colaborar.
Você não está autorizado a ver ou baixar esse anexo.
#73701
Com algumas funções de texto eu consegui fazer o exercício.

Na coluna Quantidade de espaços: =NÚM.CARACT([@Descrição])-NÚM.CARACT(SUBSTITUIR([@Descrição];" ";""))
na coluna do 3° espaço (Coluna I): PROCURAR("*";SUBSTITUIR([@Descrição];" ";"*";3))
na coluna do último espaço (Coluna II) : =PROCURAR("*";SUBSTITUIR([@Descrição];" ";"*";[@[Qtde Espaços]]))
na coluna do penúltimo espaço (coluna III) : =PROCURAR("*";SUBSTITUIR([@Descrição];" ";"*";[@[Qtde Espaços]]-1))
na coluna do Antepenúltimo espaço (Coluna IV) : =PROCURAR("*";SUBSTITUIR([@Descrição];" ";"*";[@[Qtde Espaços]]-2))
Na coluna do Pré-antepenúltimo espaço : =PROCURAR("*";SUBSTITUIR([@Descrição];" ";"*";[@[Qtde Espaços]]-3))
NA coluna Algarismo entre III e IV eu usei a seguinte funçao: =EXT.TEXTO([@Descrição];[@[Pré-Antepenúltimo]]+1;[@Antepenúltimo]-[@[Pré-Antepenúltimo]])
Como se pode ver o resultado bate com os valores desejados. Anexo aqui o arquivo resolvido.
Você não está autorizado a ver ou baixar esse anexo.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord