Formatação condicional ilimitada
Introdução
A formatação condicional (ou MFC) permite aplicar a uma ou várias células selecionadas, diferentes
formatos que mudarão, automaticamente, em função do valor (ou do resultado da fórmula), que elas contêm.
Para as versões do Excel anteriores a 2007, o número de MFC é limitado a 3. O que é pouco. Tendo visto muitos pedidos para estender esse limite, me diverti escrevendo uma macro que pode fazê-lo sem necessidade de modificá-lo. Ela funciona, conforme a demanda e necessidades.
Princípio
A macro irá recuperar os formatos a serem aplicados em uma planilha chamada
MFC , a célula A1 desta mesma planilha é usada para aplicar o formato padrão.
A macro é desencadeada pela apreensão de uma célula, ela usa o MFC nesta célula. Mas para que ela aplique os formatos nas células desejadas e, para não ter que alterar a macro para definir os diversos trechos, programa-se um MFC na célula, com uma fórmula:
=Ma_MFC.
Esta macro também pode 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 fin 'em caso de manipulação errada, trava na seguinte ordem
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)) = "=MA_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
Arquivo anexo
É muito mais fácil ver a sua utilização com um arquivo de exemplo:
Baixar o arquivo (em francês)
Tradução feita por Lucia Maurity y Nouira
A ver igualmente
Comunidade de assistência e de conselho.
Artigo original publicado por
wilfried_42. Tradução feita por
pintuda.