Ir ao conteúdo

Excel EXCEL, Mudar Fonte de cor com macro.


Ir à solução Resolvido por Edson Luiz Branco,

Posts recomendados

Postado

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 o que está escrito na celular e pinta-se somente os números que estão entre parenteses. Ou alguma macro que localiza-se o que está escrito e muda-se de cor somente os números que tiver escrito na celula.

Obrigado.

Postado

Experimente o código abaixo.

Serão processadas todas as células preenchidas da coluna A.

 

Sub MudaCorFonte()
 Dim x As Long, y As Long, c As Range
  For Each c In Range("A1:A" & Cells(Rows.Count, 1).End(3).Row)
   x = InStr(1, c.Value, "("): y = InStrRev(c.Value, ")")
   c.Characters(x + 1, y - x - 1).Font.ColorIndex = 3
  Next c
End Sub

 

Postado
5 horas atrás, osvaldomp disse:

Experimente o código abaixo.

Serão processadas todas as células preenchidas da coluna A.

 


Sub MudaCorFonte()
 Dim x As Long, y As Long, c As Range
  For Each c In Range("A1:A" & Cells(Rows.Count, 1).End(3).Row)
   x = InStr(1, c.Value, "("): y = InStrRev(c.Value, ")")
   c.Characters(x + 1, y - x - 1).Font.ColorIndex = 3
  Next c
End Sub

 

Então ele realmente foi útil, porém as celulas que não possuem os "(" ")" acabou sendo colorida, precisaria de algo que consegui-se diferenciar ou não colorir as celulas que não possuem os "(" ")".

  • Solução
Postado

Reprodução da resposta a esta pergunta dada na Comunidade do Hardware, tópico, Como mudar a cor da fonte de apenas 1 palavra

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")
    .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
Postado
2 horas atrás, Eduardo9969 disse:

..não colorir as celulas que não possuem os "(" ")".

 

substitua esta linha

c.Characters(x + 1, y - x - 1).Font.ColorIndex = 3

 

por esta

If x > 0 And y > 0 Then c.Characters(x + 1, y - x - 1).Font.ColorIndex = 3

Todos os exemplos que você colocou têm parênteses :tw_worried:

Na próxima vez coloque as informações exatas e completas no início, assim evitará desperdício de tempo. :tw_smirk:

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!