Logo Hardware.com.br
Eduardo9969
Eduardo9969 Novo Membro Registrado
1 Mensagem 0 Curtidas

Excel, Como mudar a cor da fonte de apenas 1 palavra

#1 Por Eduardo9969 10/09/2018 - 15:43
Boa tarde a todos, estou com uma duvida que vem me tirando noites de sono.

Gostaria de saber como mudar a cor da fonte de apenas 1 palavra na celula.

EX. A5 "SAMSUNG OS (4589)"
A6 "LG OS (8598)"

Gostaria de alguma macro que analisa-se oque está escrito na celular e pinta-se somente os números que estão entre parenteses. Ou alguma macro que localiza-se oque está escrito e muda-se de cor somente os números que tiver escrito na celula.

Obrigado.
Responder
EdsonBR
EdsonBR Veterano Registrado
273 Mensagens 280 Curtidas
#3 Por EdsonBR
10/09/2018 - 23:49
Bem vindo à Comunidade do Hardware, @Eduardo9969

Faça um teste com este código:

Sub FormataNúms()
Dim rg As Range, c As Range, m As Object
Set rg = Application.InputBox(Prompt:="Selecione as células", Title:="Formatar Números", Type:=8)
With CreateObject("VBScript.Regexp&quot
.Pattern = "\d+": .Global = True
For Each c In rg
For Each m In .Execute(c.Value)
With c.Characters(Start:=m.FirstIndex + 1, Length:=m.Length)
.Font.Color = vbRed
.Font.Bold = True
End With
Next m
Next c
End With
End Sub
Bikke
Bikke Super Participante Registrado
255 Mensagens 46 Curtidas
#4 Por Bikke
13/09/2018 - 12:30
Eu fiz o teste e não muda só a cor do que está entre parênteses: A5 SAMSUNG OS (4589)

Mas muda também a cor se houver algum número fora do parênteses: A5 SAMSUNG OS (4589)

Não há forma de mudar automaticamente sem que enhamos que estar a escoler??

Isso pergunto eu, o autor do post pode não querer isso.

Obrigado

Cumps
((º·.¸(¨*·.¸ ¸.·*¨)¸.·º ))
«.·°·* BIKKE ..*·°·.»
((¸.·º(¸.·¨ * *¨·.¸)º·.¸))
EdsonBR
EdsonBR Veterano Registrado
273 Mensagens 280 Curtidas
#5 Por EdsonBR
13/09/2018 - 13:33
O post original pedia, no último trecho, que
Eduardo9969 disse:
...muda-se de cor somente os números que tiver escrito na celula.


Mas se seu interesse é apenas nos números que estão entre parênteses, use o seguinte código (selecione as células antes de rodar a macro):

Sub FormataNúms()
Dim rg As Range, c As Range, m As Object
On Error GoTo Sair 'Caso a seleção seja outro objeto que não uma célula, não faz nada.
Set rg = Selection
With CreateObject("VBScript.Regexp&quot
.Pattern = "\(\d+\)": .Global = True
For Each c In rg
For Each m In .Execute(c.Value)
With c.Characters(Start:=m.FirstIndex + 2, Length:=m.Length - 2)
.Font.Color = vbRed: .Font.Bold = True
End With
Next m
Next c
End With
Sair:
Set rg = Nothing: Set c = Nothing: Set m = Nothing
Exit Sub
End Sub
EdsonBR
EdsonBR Veterano Registrado
273 Mensagens 280 Curtidas
#7 Por EdsonBR
13/09/2018 - 16:40
Tem várias formas de fazer. Essa forma seria, digamos, sob demanda, ou seja, é executada manualmente e somente o momento em que se deseja. Mas dá pra fazer com que execute automaticamente após o valor ser digitado na célula ou sempre que uma determinada célula ou células ou planilha sofra alteração, etc. Tudo vai depender do que vc espera que seja feito. Para isso tente explicar exatamente o que vc quer.
Responder Tópico
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal