Notifications
Clear all

Alterar Cor Fonte Se For Letra

11 Posts
2 Usuários
0 Reactions
2,818 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal,
Na Coluna O possuo como resultado diferença entre datas.
Exemplo: 1a4m20d
Gostaria de destacar, na cor Vermelho, as letras, ficando assim: 1a4m20d
Grato,
Pedro

 
Postado : 18/08/2017 8:41 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

pedrobb,

Boa tarde!

Veja se é assim.

 
Postado : 18/08/2017 11:04 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde!!

tente

Sub AleVBA_1197632()
    Dim rng     As Range
    Dim cel     As Range
    Dim i       As Long
    
    Application.ScreenUpdating = False
        Set rng = Range("O1:O" & Cells(Rows.Count, 15).End(xlUp).Row)
        rng.Font.ColorIndex = xlAutomatic
        
        For Each cel In rng
            For i = 1 To cel.Characters.Count
                If IsNumeric(cel.Characters(i, 1).Text) Then
                    cel.Characters(i, 1).Font.Color = vbRed
                End If
            Next i
        Next cel
    Application.ScreenUpdating = True
End Sub

Att

 
Postado : 18/08/2017 12:04 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Wagner,
Obrigado pela atenção.
É exatamente o que preciso, mas Não está funcionando em minha planilha pois a coluna O recebe Fórmula.
Como resolver?
Grato.

 
Postado : 18/08/2017 4:58 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Alexandre,
Grato pela atenção.
Tá dando erro 1004 na linha For i = 1 To cel.Characters.Count
"Não é possível obter propriedade Count da Classe Characters
Grato.

 
Postado : 18/08/2017 5:02 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal,
Mando anexo a planilha do wagner, com fórmula na coluna O.
Aguardo colaboração,
Grato.

 
Postado : 19/08/2017 6:00 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Boa noite!

Com fórmula eu não sei como fazer, pois para colorir uma letra apenas em um texto dentro da célula é necessário dar um duplo clique dentro da célula. Nesse momento, se for uma fórmula, o Excel entra no modo de edição da própria fórmula.

 
Postado : 22/08/2017 4:48 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

De fato, em celulas com formulas não tem como fazer ete tipo de formatação, mas se puder alterar o layout da sua planilha, minha sugestão é que a Coluna O que contem Fórmulas fique OCULTA, e através da macro copiar somente os valores para a coluna P e aplicar a formatação nela.
No modelo anexo, adaptei a rotina que o Ale postou, mas da para fazer o mesmo com a do Wagner, efetuando a formatação da forma que citei.

De uma olhada e veja se ajuda.

Alterar cor da letra com formula - Wagner_Ale_Mauro

[]s

 
Postado : 23/08/2017 8:08 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Mauro Coutinho,
Há algum erro na função, pois não está colorindo como preciso.
Exemplo: 3a1m29d
Não consegui adaptar à rotina do wagner.
Você pode ajudar?

 
Postado : 24/08/2017 5:17 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Não tenho como baixar arquivo no serviço, e não me lembro da rotina do Wagner, mas nesta do Alexandre é só adicionar um "Else" após a condição, "If IsNumeric(cel.Characters(i, 1).Text) Then".

Ficando assim :

If IsNumeric(cel.Characters(i, 1).Text) Then
                    Else
                    cel.Characters(i, 1).Font.Color = vbRed
                End If

[]s

 
Postado : 24/08/2017 6:39 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Funcionou bem assim:

Sub CopiarEcolorirLetras()
Planilha9.Select
   Dim Nlin    As Double: Nlin = Range("A1012").End(xlUp).Row
    Dim j      As Long
    Dim i As Long
    
    For j = 14 To Nlin
        If Cells(j, 1).Value <> Empty Then
            Cells(j, 37).Value = Cells(j, 38).Value
            Cells(j, 15).Value = Cells(j, 37).Value
'            Stop
        End If
    Next j
    If Nlin < 0 Then Nlin = 14
    For i = 14 To Nlin 
        For j = 1 To Len(Range("O" & i).Value)
            If Not IsNumeric(Mid(Range("O" & i).Value, j, 1)) Then
                Range("O" & i).Characters(j, 1).Font.Color = -16776961
            End If
        Next
    Next
End Sub

Obrigado Wagner, Alexandre e Mauro

 
Postado : 02/09/2017 11:25 am