Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

VBA : Comment appliquer une mise en forme conditionnelle aux cellules



Vous pouvez utiliser les méthodes suivantes dans VBA pour appliquer une mise en forme conditionnelle aux cellules :

Méthode 1 : appliquer une mise en forme conditionnelle basée sur une condition

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éthode 2 : appliquer une mise en forme conditionnelle basée sur plusieurs conditions

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éthode 3 : supprimer toutes les règles de mise en forme conditionnelle des cellules

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

Les exemples suivants montrent comment utiliser chaque méthode en pratique avec l’ensemble de données suivant dans Excel :

Exemple 1 : appliquer une mise en forme conditionnelle basée sur une condition

Nous pouvons utiliser la macro suivante pour remplir les cellules de la plage B2:B11 qui ont une valeur supérieure à 30 avec un fond vert, une police noire et un style de texte en gras :

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

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

Notez que chaque cellule de la plage B2:B11 qui a une valeur supérieure à 30 est soumise à une mise en forme conditionnelle.

Toute cellule ayant une valeur égale ou inférieure à 30 est simplement laissée seule.

Exemple 2 : appliquer une mise en forme conditionnelle basée sur plusieurs conditions

Nous pouvons utiliser la macro suivante pour appliquer une mise en forme conditionnelle aux cellules de la plage A2:A11 en fonction du nom de leur équipe :

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

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

Notez que les cellules portant les noms d’équipe « Mavericks », « Blazers » et « Celtics » sont toutes soumises à une mise en forme conditionnelle spécifique.

La seule équipe portant le nom « Lakers » est laissée seule puisque nous n’avons spécifié aucune règle de formatage conditionnel pour les cellules portant ce nom d’équipe.

Exemple 3 : Supprimer toutes les règles de mise en forme conditionnelle des cellules

Enfin, nous pouvons utiliser la macro suivante pour supprimer toutes les règles de mise en forme conditionnelle des cellules de la feuille actuelle :

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 de chacune des cellules.

Ressources additionnelles

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

VBA : Comment compter les occurrences de caractères dans une chaîne
VBA : comment vérifier si une chaîne contient une autre chaîne
VBA : une formule pour « Si » la cellule contient »

Ajouter un commentaire

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