Vba: aplique formatação condicional a valores duplicados


Você pode usar a seguinte sintaxe básica em VBA para aplicar formatação condicional a valores duplicados em um intervalo específico:

 Sub ConditionalFormatDuplicates()

Dim rg As Range
Dim uv As UniqueValues

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

'clear any existing conditional formatting
rg.FormatConditions.Delete

'identify duplicate values in range A2:A11
Set uv = rg.FormatConditions.AddUniqueValues
uv.DupeUnique = xlDuplicate

'apply conditional formatting to duplicate values
uv.Interior.Color = vbBlue
uv.Font.Color = vbWhite
uv.Font.Bold = True

End Sub

Este exemplo específico aplica formatação condicional a valores duplicados no intervalo A2:A11 da planilha atual do Excel.

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: use VBA para aplicar formatação condicional a valores duplicados

Suponha que temos a seguinte coluna de valores no Excel:

Suponha que queiramos aplicar a seguinte formatação condicional aos valores duplicados na coluna A:

  • Fundo azul
  • Texto preto
  • Texto em negrito

Podemos criar a seguinte macro para fazer isso:

 Sub ConditionalFormatDuplicates()

Dim rg As Range
Dim uv As UniqueValues

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

'clear any existing conditional formatting
rg.FormatConditions.Delete

'identify duplicate values in range A2:A11
Set uv = rg.FormatConditions.AddUniqueValues
uv.DupeUnique = xlDuplicate

'apply conditional formatting to duplicate values
uv.Interior.Color = vbBlue
uv.Font.Color = vbWhite
uv.Font.Bold = True

End Sub

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

Observe que a formatação condicional é aplicada a cada célula da coluna A com um valor duplicado.

Se você deseja aplicar formatação condicional a um intervalo diferente de células, basta substituir A2:A11 na macro por um intervalo diferente.

Além disso, se quiser remover toda a formatação condicional das células da planilha atual, você pode criar a seguinte macro para fazer isso:

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

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

Observe que qualquer formatação condicional foi removida das células.

Recursos adicionais

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

VBA: Como contar valores únicos no intervalo
VBA: Como contar células com texto específico
VBA: Como escrever funções COUNTIF e COUNTIFS

Add a Comment

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