Excel: formatação condicional ilimitada


A formatação condicional (ou MFC) permite aplicar, a uma célula ou a várias células selecionadas, diferentes formatos que mudarão, automaticamente, de acordo com o valor (ou o resultado obtido pela fórmula) que elas contêm.

Para versões do Excel anteriores a 2007, o número de formatações é limitado a 3, o que é pouco. Tendo visto muitos pedidos para aumentar esse limite, me diverti escrevendo uma Macro que permite fazê-lo, sem ter que modificá-la. Por isso, ela funciona sob demanda conforme necessário.

Como funciona

A macro vai recuperar os formatos a serem aplicados em uma planilha chamada MFC, a célula A1 dessa mesma planilha é usada para aplicar o formato padrão. A macro é ativada pela digitação de uma célula e aplica o MFC a essa célula. Porém, para que ela aplique os formatos nas células desejadas e, para não ter que modificar a macro para definir os diferentes intervalos, devemos programar um MFC na célula com a fórmula: =Minha_MFC. Esta macro também permite a efetuar formatos de acordo com os níveis de valores.

Código

Veja o código a ser colocado no módulo ThisWorkbook:


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim i As Integer, j As Long, Mfc As FormatCondition, c As Range, Ws1 As Worksheet
On Error GoTo fim ' em caso de manipulação errada, ela bloqueia na ordem seguinte
Application.EnableEvents = False
Set Ws1 = Sheets("MFC")
For i = 1 To Target.FormatConditions.Count
Set Mfc = Target.FormatConditions(i)
If UCase(Left(Mfc.Formula1, 7)) = "=MINHA_MFC" Then
Ws1.Range("A1").Value = Target.Value
Set c = Nothing
For j = 2 To Ws1.Range("A65536").End(xlUp).Row
If Ws1.Range("A" & j) = True Then
Set c = Ws1.Range("A" & j)
Exit For
End If
Next j
If c Is Nothing Then Set c = Ws1.Range("A1")
c.Copy
Target.PasteSpecial (xlPasteFormats)
Application.CutCopyMode = False
End If
Next i
Application.EnableEvents = True
fim:
On Error GoTo 0
End Sub

Foto: © Microsoft.
Artigo original publicado por wilfried_42. Tradução feita por pintuda. Última modificação: 27 de fevereiro de 2018 às 04:32 por pintuda.
Este documento, intitulado 'Excel: formatação condicional ilimitada', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (https://br.ccm.net/) ao utilizar este artigo.
Como inserir uma quebra de linha no Excel
Função SE no Excel: para que serve e como usar