VBA : appliquer une mise en forme conditionnelle aux valeurs en double



Vous pouvez utiliser la syntaxe de base suivante dans VBA pour appliquer une mise en forme conditionnelle aux valeurs en double dans une plage spécifique :

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

Cet exemple particulier applique une mise en forme conditionnelle aux valeurs en double dans la plage A2: A11 de la feuille actuelle dans Excel.

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : utiliser VBA pour appliquer une mise en forme conditionnelle aux valeurs en double

Supposons que nous ayons la colonne de valeurs suivante dans Excel :

Supposons que nous souhaitions appliquer la mise en forme conditionnelle suivante aux valeurs en double dans la colonne A :

  • Fond bleu
  • Texte noir
  • Texte en gras

Nous pouvons créer la macro suivante pour ce faire :

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

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

Notez que la mise en forme conditionnelle est appliquée à chaque cellule de la colonne A avec une valeur en double.

Si vous souhaitez appliquer une mise en forme conditionnelle à une plage de cellules différente, remplacez simplement A2: A11 dans la macro par une plage différente.

De plus, si vous souhaitez supprimer toute la mise en forme conditionnelle des cellules de la feuille actuelle, vous pouvez créer la macro suivante pour ce faire :

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

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

Notez que toute mise en forme conditionnelle a été supprimée des cellules.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :

VBA : Comment compter les valeurs uniques dans la plage
VBA : Comment compter les cellules avec un texte spécifique
VBA : Comment écrire les fonctions COUNTIF et COUNTIFS

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *