Página 1 de 1
Ajuda - Macro Formatação condicional
Enviado: 18 Jul 2019 às 09:18
por julianaggamba
Bom dia!
Alguém saberia me dizer o que está errado nesse código? Quando executo, a fórmula fica como falso na regra de formatação condicional
Sub REGRA1()
'
' REGRA1 Macro
'
'
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
Selection.Cells.Value = Now
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent4
.TintAndShade = 0.599963377788629
End With
Selection.FormatConditions(1).StopIfTrue = False
Next
End Sub
Gostaria de criar um macro para executar uma formação condicional na linha selecionada.
Re: Ajuda - Macro Formatação condicional
Enviado: 18 Jul 2019 às 11:24
por Jimmy
Olá Juliana,
Veja se isto te ajuda.
Código: Selecionar todosSub REGRA1()
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=" & Selection.Cells.Address & "=agora()"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent4
.TintAndShade = 0.599963377788629
End With
Selection.FormatConditions(1).StopIfTrue = False
'Next
End Sub
Três observações:
- Há um NEXT na penúltima linha, mas não há um FOR aberto anteriormente, logo, o NEXT causa erro.
- A macro não criará a condicional
na linha selecionada, como você mencionou, mas
nas células selecionadas, podendo inclusive serem de linhas diferentes (Ex: selecionando C4:F10)
- Now, que no Excel em português é o Agora() tem a duração de 1 segundo, logo, a célula formatada ficaria pintada por apenas 1 segundo (isso se der sorte do excel recalcular aquela célula naquele instante). Se pretende marcar quando um determinado momento for alcançado, recomendo usar ">" ou "<" (dependendo da finalidade) ao invés de "=", pois o "=" é efêmero.
Jimmy
Re: Ajuda - Macro Formatação condicional
Enviado: 18 Jul 2019 às 13:06
por julianaggamba
Olá Jimmy!
Muito obrigada!
Alterei o "agora" para "hoje", pois preciso apenas da data, e deu certo.
Sub REGRA1()
'Regra hoje
If Selection.FormatConditions.Delete Then
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=" & Selection.Cells.Address & "=hoje()"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent4
.TintAndShade = 0.599963377788629
End With
Selection.FormatConditions(1).StopIfTrue = False
Preciso também colocar mais duas condições na mesma linha:
A primeira seria pintar a linha toda se a célula selecionada for menor que hoje e a célula da direita estiver em branco, e pintar a linha de outra cor se a célula selecionada for menor que a célula da direita
Fiz assim mas sei que não está certo, se puder me ajudar agradeço.
'Regra Atrasado
Else: Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=" & Selection.Cells.Address & "<hoje()"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 10461183
.TintAndShade = 0.599963377788629
End With
Selection.FormatConditions(1).StopIfTrue = False
'Regra Entregue Atrasado
Else: Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=" & Selection.Cells.Address & "I:<hoje()"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 10461184
.TintAndShade = 0.599963377788629
End With
Selection.FormatConditions(1).StopIfTrue = False
Obrigada!
Ajuda - Macro Formatação condicional
Enviado: 18 Jul 2019 às 13:27
por julianaggamba
Teria como criar um botão para inserir linha e nessa linha inserir essas três regras?
Ajuda - Macro Formatação condicional
Enviado: 18 Jul 2019 às 13:50
por Jimmy
Juliana, tem sim.
Gostaria que você enviasse uma planilha modelo para que possamos trabalhar sobre ela. Assim seremos mais precisos.
Mande exemplos das situações, explicando porque está ou não pindata.
No post anterior você falou em "pintar a linha toda". Acho que não deve ser toda; especifique qual a faixa da linha. Note que as células que serão pintadas terão formatação condicional também.
Jimmy
Re: Ajuda - Macro Formatação condicional
Enviado: 18 Jul 2019 às 16:18
por julianaggamba
Ok Jimmy, segue anexo.
Mandei apenas um exemplo com a formatação condicional para você entender.
Nesse caso, gostaria de colocar um botão com macro para ir adicionando linhas na planilha já com a formatação condicional.
Obrigada pela atenção!
Re: Ajuda - Macro Formatação condicional
Enviado: 19 Jul 2019 às 00:09
por Jimmy
Juliana,
Veja se te atende. Faça muitos testes.
Eu coloquei o botão na célula C1, mas pode ser mudado.
É possível também acionar a macro pelo teclado, sem usar o botão. Basta segurar as teclas CTRL + SHIFT pressionadas, e teclar Q.
Jimmy
Ajuda - Macro Formatação condicional
Enviado: 19 Jul 2019 às 17:01
por julianaggamba
Certo Jimmy!
Muito obrigada pela ajuda!
Juliana
Ajuda - Macro Formatação condicional
Enviado: 19 Jul 2019 às 17:18
por Jimmy
Disponha Juliana,
Se está tudo resolvido, não esqueça de encerrar o tópico pois isso ajuda a organizar melhor o forum.
Jimmy San Juan