Notifications
Clear all

Associar restricao de uma coluna na logica de outra coluna

10 Posts
2 Usuários
0 Reactions
1,718 Visualizações
(@geite)
Posts: 21
Eminent Member
Topic starter
 

Boa tarde senhores!

Possuo o seguinte codigo de formatacao condicional da coluna E ( se valores forem maiores que 4 a células da coluna e ficam vermelha).

Sub Macro2()

    Range("E3:E10").Select
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
        Formula1:="=4"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    
End Sub

O problema é que se algum valor da coluna F for menor que 4, a respectiva célula na coluna E não poderá ficar vermelha!!!!!

Sera que alguem pode me ajudar!!!

desde ja agradeco!!

 
Postado : 05/06/2013 12:28 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Utilizando o Operator:=xlGreter --> significa "maior do que", se o objetivo e valores "igual" deve ser Operator:=xlEqual

 
Postado : 05/06/2013 1:12 pm
(@geite)
Posts: 21
Eminent Member
Topic starter
 

Na verdade Reinaldo o objetivo é maior que mesmo, no caso quero associar o menor que 4 da coluna F com a coluna E

 
Postado : 05/06/2013 1:20 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Creio que não entendi; Pode descrever / exemplificar o que realmente pretende?

 
Postado : 05/06/2013 1:54 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se entendi corretamente :
Se o Valor na coluna "E" forem maiores que 4 a células na coluna "E" que atenderem o criterio ficam vermelha.

Mas se ALGUM Valor na coluna "F" for MENOR que 4 as células na coluna "E" que estavam em Vermelho pela condição acima ficam sem Cor.

Se for isto, que me corrijam, teriamos de limpar a primeira condição da formatação e aplicar a segunda, até onde sei não tem como deixar duas regras em diferentes ranges.

De qualquer forma, em algumas pesquisas encontrei alguns links interessantes, vejase ajuda :

How to add Format Conditions using Excel VBA
http://vbadud.blogspot.com.br/2009/08/h ... using.html

VBA - FormatConditions inconsistent behavior
http://answers.microsoft.com/en-us/offi ... b599b31bf5

Espero que ajude.

[]s

 
Postado : 05/06/2013 6:21 pm
(@geite)
Posts: 21
Eminent Member
Topic starter
 

O objetivo é exatamente esse Mauro Coutinho, vou dar uma olhada nos links que você me passou! Obrigado.
Reinaldo o que eu necessito é exatamente oque o Mauro descreveu acima!
Agradeço a ajuda dos dois

 
Postado : 06/06/2013 7:13 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se o Valor na coluna "E" forem maiores que 4 a células na coluna "E" que atenderem o criterio ficam vermelha.

Mas se ALGUM Valor na coluna "F" for MENOR que 4 as células na coluna "E" que estavam em Vermelho pela condição acima ficam sem Cor.

Se for isto, que me corrijam, teriamos de limpar a primeira condição da formatação e aplicar a segunda, até onde sei não tem como deixar duas regras em diferentes ranges.

Mauro, tem sim. Podemos criar formatação condicional absoluta ou relativa.
Se formos reler a sua brilhante síntese do que o geite quer, posso reescrever, em formato mais lógico assim:

As células da coluna E só serão pintadas quando o conteúdo dela for maior que 4 (ou seja, nao incluindo o 4) e ao mesmo tempo o conteúdo da mesma linha na coluna F for maior ou igual a 4.

Porém, quando F for menor que 4, então, E ficará SEM COR, ou seja, outra condição.
Se eu errei no entendimento do SEM COR, pare de seguir as instruções abaixo a partir do item 6.

    1) seleciona a célula E1
    2) tecle Ctrl+Espaço (para selecionar a coluna inteira, mantendo a célula E1 como a célula ativa dentro da seleção (isso é o MAIS importante))
    3) vá em formatação condicional / gerenciar regras / nova regra / usar fórmula para determinar quais células formatar
    4) use a seguinte fórmula

    =E($E1>4;$F1>=4)

    5) clique em formatar e formate como quiser, Ok / Ok
    6) vá em formatação condicional / gerenciar regras / nova regra / usar fórmula para determinar quais células formatar
    7) use a seguinte fórmula

    =E($E1>4;$F1<4)

    8) clique em formatar e formate como quiser, Ok / Ok.
    [/list:u:3py87zja]
    Brinque com os valores para ver o que acontece.

     
Postado : 06/06/2013 9:41 am
(@geite)
Posts: 21
Eminent Member
Topic starter
 

Fernando Exatamente isso que eu precisava!! muito obrigado pela força.

 
Postado : 06/06/2013 11:36 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Valeu Fernando, aprendi mais uma, o excel tem tantos recursos, e que na maioria das vezes não utilizamos nem a metade, e só vamos atraz quando precisamos.

Pela sua dica utilizando o Gravador de Macros ficaria assim :

Sub Macro1()
'
' Macro1 Macro
' Macro gravada em 6/6/2013 por mauro.coutinho
'

'
    Range("E1").Select
    Range(Selection, Selection.End(xlDown)).Select

    Selection.FormatConditions.Delete
    
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=E($E1>4;$F1>=4)"
    Selection.FormatConditions(1).Interior.ColorIndex = 3
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=E($E1>4;$F1<4)"
    Selection.FormatConditions(2).Interior.Pattern = xlNone
End Sub

Depois fazemos uma adaptação melhor, por hora fica desta forma rustica, mas funcional.

[]s

 
Postado : 06/06/2013 1:53 pm
(@geite)
Posts: 21
Eminent Member
Topic starter
 

Brigado Mauro Coutinho, serviu muito bem essa macro para o meu codigo!

 
Postado : 07/06/2013 6:21 am