Vba: como aplicar formatação condicional às células


Você pode usar os seguintes métodos em VBA para aplicar formatação condicional às células:

Método 1: Aplicar formatação condicional com base em uma condição

 Sub ConditionalFormatOne()
Dim rg As Range
Dim cond As FormatCondition

'specify range to apply conditional formatting
Set rg = Range(" B2:B11 ")

'clear any existing conditional formatting
rg.FormatConditions.Delete

'apply conditional formatting to any cell in range B2:B11 with value greater than 30
Set cond = rg.FormatConditions.Add(xlCellValue, xlGreater, " =30 ")

'define conditional formatting to use
With cond
.Interior.Color = vbGreen
.Font.Color = vbBlack
.Font.Bold = True
End With

End Sub

Método 2: aplicar formatação condicional com base em múltiplas condições

 Sub ConditionalFormatMultiple()
Dim rg As Range
Dim cond1 As FormatCondition, cond2 As FormatCondition, cond3 As FormatCondition

'specify range to apply conditional formatting
Set rg = Range(" A2:A11 ")

'clear any existing conditional formatting
rg.FormatConditions.Delete

'specify rules for conditional formatting
Set cond1 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Mavericks ”)
Set cond2 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Blazers ”)
Set cond3 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Celtics ”)

'define conditional formatting to use
With cond1
.Interior.Color = vbBlue
.Font.Color = vbWhite
.Font.Italic = True
End With

With cond2
.Interior.Color = vbRed
.Font.Color = vbWhite
.Font.Bold = True
End With

With cond3
.Interior.Color = vbGreen
.Font.Color = vbBlack
End With

End Sub

Método 3: remover todas as regras de formatação condicional das células

 Sub RemoveConditionalFormatting()
ActiveSheet.Cells.FormatConditions.Delete
End Sub

Os exemplos a seguir mostram como usar cada método na prática com o seguinte conjunto de dados no Excel:

Exemplo 1: Aplicar formatação condicional com base em uma condição

Podemos usar a seguinte macro para preencher células no intervalo B2:B11 que possuem um valor maior que 30 com fundo verde, fonte preta e estilo de texto em negrito:

 Sub ConditionalFormatOne()
Dim rg As Range
Dim cond As FormatCondition

'specify range to apply conditional formatting
Set rg = Range(" B2:B11 ")

'clear any existing conditional formatting
rg.FormatConditions.Delete

'apply conditional formatting to any cell in range B2:B11 with value greater than 30
Set cond = rg.FormatConditions.Add(xlCellValue, xlGreater, " =30 ")

'define conditional formatting to use
With cond
.Interior.Color = vbGreen
.Font.Color = vbBlack
.Font.Bold = True
End With

End Sub

Quando executamos esta macro, recebemos a seguinte saída:

Observe que cada célula no intervalo B2:B11 que possui um valor maior que 30 está sujeita à formatação condicional.

Qualquer célula com valor igual ou inferior a 30 é simplesmente deixada de lado.

Exemplo 2: Aplicar formatação condicional com base em múltiplas condições

Podemos usar a seguinte macro para aplicar formatação condicional às células no intervalo A2:A11 com base no nome da equipe:

 Sub ConditionalFormatMultiple()
Dim rg As Range
Dim cond1 As FormatCondition, cond2 As FormatCondition, cond3 As FormatCondition

'specify range to apply conditional formatting
Set rg = Range(" A2:A11 ")

'clear any existing conditional formatting
rg.FormatConditions.Delete

'specify rules for conditional formatting
Set cond1 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Mavericks ”)
Set cond2 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Blazers ”)
Set cond3 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Celtics ”)

'define conditional formatting to use
With cond1
.Interior.Color = vbBlue
.Font.Color = vbWhite
.Font.Italic = True
End With

With cond2
.Interior.Color = vbRed
.Font.Color = vbWhite
.Font.Bold = True
End With

With cond3
.Interior.Color = vbGreen
.Font.Color = vbBlack
End With

End Sub

Quando executamos esta macro, recebemos a seguinte saída:

Observe que as células com os nomes dos times “Mavericks”, “Blazers” e “Celtics” estão todas sujeitas a formatação condicional específica.

O único time com o nome “Lakers” é deixado sozinho, pois não especificamos nenhuma regra de formatação condicional para células com esse nome de time.

Exemplo 3: Remover todas as regras de formatação condicional das células

Finalmente, podemos usar a seguinte macro para remover todas as regras de formatação condicional das células da planilha atual:

 Sub RemoveConditionalFormatting()
ActiveSheet.Cells.FormatConditions.Delete
End Sub

Quando executamos esta macro, recebemos a seguinte saída:

Observe que toda a formatação condicional foi removida de cada uma das células.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:

VBA: Como contar ocorrências de caracteres em uma string
VBA: como verificar se uma string contém outra string
VBA: uma fórmula para “Se” a célula contém”

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *