Excel: formatação condicional ilimitada

Faça uma pergunta

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.
Jean-François Pillou

Jean-François Pillou - Fundador do CCM
Mais conhecido como Jeff, Jean-François Pillou é o fundador do CommentCaMarche.net. Ele também é CEO do CCM Benchmark e diretor digital do Grupo Figaro.

Mais informações sobre a equipe do CCM