Notifications
Clear all

Substituir texto de valor

5 Posts
2 Usuários
0 Reactions
997 Visualizações
(@fkleinbley)
Posts: 62
Trusted Member
Topic starter
 

Boa tarde!

em VBA...
queria saber se tem como fazer um código para substituir parte do valor de uma célula, digamos, no exemplo 1 abaixo, quero substituir somente o BRANCA por PRETA, esse valor vai sempre começar C/FOLHA, mas depois de BRANCA o valor pode variar sempre começando com "(", portanto precisaria de um código que identifique o primeiro espaço e o espaço depois do BRANCA, substituindo o valor entre os espaços por PRETA.
Como seria esse código em VBA?

Exemplo 1:
C/FOLHA BRANCA (CLEA 2L6,5)

Desde já obrigado....

 
Postado : 20/04/2015 11:01 am
(@lmonteiro)
Posts: 4
New Member
 

Boa tarde fkleinbley!

Para substituir um valor especifico no texto você pode usar a função Replace, que funciona como a função substituir do próprio excel. A função é composta de três parâmetros, sendo o primeiro o texto onde está o texto para ser substituído, o segundo o texto que será substituído e o último parâmetro o texto que você deseja colocar no lugar.

Segue um exemplo:

Replace("Papel Branco (XYZ)", "Branco","Preto")

Espero ter ajudado.

 
Postado : 20/04/2015 11:28 am
(@fkleinbley)
Posts: 62
Trusted Member
Topic starter
 

No meu caso o valor BRANCO é variável, pode ser outro, por isso eu precisaria identificar o espaço antes e o depois para substituir o valor entre eles.

 
Postado : 20/04/2015 11:35 am
(@lmonteiro)
Posts: 4
New Member
 

Levando em consideração que o valor sempre irá começar com "C FOLHA" (Ou seja, sempre teremos 10 caracteres) só precisa fazer uma adaptação na fórmula anterior. Utilizei as funções Instr e MID para capturar de forma dinâmica a primeira palavra que vem após o "FOLHA".

A formula Instr serve para retornar a posição de um caractere especifico a partir de um determinado caractere de um texto, nesse caso estamos retornando o número correspondente ao primeiro espaço após o 10º caractere.

A formula MID serve para extrair um pedaço especifico de um texto, nesse caso estamos extraindo a palavra que precisamos substituir (Ex. branco)

Replace("C FOLHA Branco (XYZ)",MID("C FOLHA Branco (XYZ)",10,Instr(10,"C FOLHA Branco (XYZ)"," ")-10),"Preto")
 
Postado : 20/04/2015 11:52 am
(@fkleinbley)
Posts: 62
Trusted Member
Topic starter
 

Deu certo!

descrfolhamad = Replace(descrfolhamad, Mid(descrfolhamad, 9, InStr(9, descrfolhamad, " ") - 9), "PRETA")

Muito Obrigado!

 
Postado : 20/04/2015 12:08 pm