Página 1 de 1

[RESOLVIDO] Posição dos Espaços

Enviado: 04 Set 2023 às 23:22
por SandroLima
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.

Re: [RESOLVIDO] Posição dos Espaços

Enviado: 24 Out 2023 às 08:24
por ericamaral1977
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.

Re: [RESOLVIDO] Posição dos Espaços

Enviado: 26 Out 2023 às 10:26
por SandroLima
Muito obrigado pela colaboração, @ericamaral1977.

Tenha uma semana abençoada!