Formatação condicio...
 
Notifications
Clear all

Formatação condicional com VBA

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

Prezados,

Preciso de uma formatação condicional, que penso não ser possível pela ferramenta padrão do Excel (por isso postei aqui em VBA)

Gostaria que qualquer célula da coluna F que contenha uma fórmula qualquer fique em negrito.

Ou seja, quero distinguir os valores que foram imputados manualmente dos que foram calculados por fórmulas.

Seria possível?

 
Postado : 28/11/2012 2:31 pm
(@hronconi)
Posts: 314
Reputable Member
 

Lostruler,

Isira este código no seu projeto dentro da planilha correspondente à formatação que deseja.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 6 Then
        If Target.HasFormula = True Then
            Range(Target.Address).Font.Bold = True
        Else
            Range(Target.Address).Font.Bold = False
        End If
    End If
End Sub

Sds,

Henrique Ronconi

 
Postado : 28/11/2012 2:51 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Putz... não funcionou

pq será? Vc já testou a rotina acima?

 
Postado : 28/11/2012 3:17 pm
(@hronconi)
Posts: 314
Reputable Member
 

Poste sua planilha em formato compactado que eu ajusto a fórmula para você.

 
Postado : 28/11/2012 3:46 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

segue:

Obgd desde já.

 
Postado : 28/11/2012 4:02 pm
(@hronconi)
Posts: 314
Reputable Member
 

Segue anexo.

Sds,

Henrique Ronconi

 
Postado : 28/11/2012 4:10 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Henrique,

Obgd pela ajuda. Funcionou certinho.

Ainda tenho algumas dúvidas. Veja se pode ajudar:

---1--- A função desfazer (CTRL+Z) se perde quando utilizo esse recurso. Há alguma maneira de habilitar essa função?

---2--- Se eu quiser mudar o intervalo de atuação da macro para as colunas (6;12;18;24....600),como poderia ser feito sem a necessidade de repetir a rotina acima 100 vezes?

Mais uma vez, muito obrigado.

 
Postado : 29/11/2012 6:54 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Só para acrescentar.

Ao invés de fazermos dessa maneira, não seria possível criar uma nova função para o excel que verificasse se tem ou não uma fórmula dentro de uma célula?

Por exemplo: =FUNÇÃO(A1)

se tiver fórmula na célula A1, a função retorna 1; ao contrário retorna 0.

Com isso eu consigo trabalhar com a formatação condicional.

É possível fazer isso?

 
Postado : 29/11/2012 7:05 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Henrique,

Obgd pela ajuda. Funcionou certinho.

Ainda tenho algumas dúvidas. Veja se pode ajudar:

---1--- A função desfazer (CTRL+Z) se perde quando utilizo esse recurso. Há alguma maneira de habilitar essa função?

---2--- Se eu quiser mudar o intervalo de atuação da macro para as colunas (6;12;18;24....600),como poderia ser feito sem a necessidade de repetir a rotina acima 100 vezes?

Mais uma vez, muito obrigado.

llostruler, quanto aquestão 1, de uma olhada :
Poder usar o Ctrl+Z depois de executar a macro
http://planilhando.com.br/forum/viewtop ... f=10&t=179

Quanto a questão 2, poderiamos utilizar um Case associada a instrução "Target.Column", na pesquisado forum encontrara algumas dicas :

Formatação Condicional [Resolvido]
viewtopic.php?f=24&t=4349&hilit=target&start=10

Preenchendo célula com VBA
viewtopic.php?f=10&t=5600&p=29162&hilit=target#p29162

Macro apresenta erro qd limpa as células
viewtopic.php?f=10&t=4556&p=23326&hilit=target#p23326

Ajuda para criar macro VBA
viewtopic.php?f=16&t=2952&p=13437#p13437

[]s

 
Postado : 29/11/2012 8:13 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Mauro,

Obgd pelas dicas.

Ainda aguardo ajuda para criar uma nova função do excel que verifique a existência ou não de fórmula.

 
Postado : 29/11/2012 11:09 am
(@hronconi)
Posts: 314
Reputable Member
 

Lostruler,

Crie um módulo e introduza o seguinte código:

Option Explicit
Function TemFormula(r As Range) As Boolean
 
    If r.HasFormula Then TemFormula = True
 
End Function

Sds,

Henrique Ronconi

 
Postado : 29/11/2012 11:30 am