Formatage conditionnel dans Excel VBA

Dans Excel, nous avons tous utilisé la mise en forme conditionnelle pour mettre en évidence les valeurs en double. Un formatage majoritairement conditionnel est utilisé pour obtenir des valeurs en double. Nous pouvons mettre en évidence les valeurs en double de plusieurs façons. Nous pouvons mettre en évidence les valeurs en double, les valeurs spécifiques de la plage et également définir la règle pour compléter les critères de mise en forme. Voici les fonctions variables disponibles sous Mise en forme conditionnelle.

Mais que se passe-t-il si nous pouvons automatiser ce processus de mise en évidence des doublons ou de tout type de valeurs selon nos besoins. Les critères que nous pouvons définir à l'aide de la mise en forme conditionnelle dans Excel peuvent également être définis dans VBA. Pour appliquer une mise en forme conditionnelle, nous pouvons choisir n'importe quelle cellule, plage disponible dans la feuille de calcul Excel. La mise en forme conditionnelle ne fonctionne que lorsque les critères définis répondent à l'exigence. Sinon, il ne montrera aucun changement de couleur. Avec l'aide de la mise en forme conditionnelle dans VBA, nous pouvons changer la couleur de n'importe quelle cellule ou contenu de cellule, supprimer la couleur de cellule ou supprimer également la couleur. En plus de changer la couleur de la cellule, nous pouvons changer le contenu de la cellule en texte gras ou en texte italique . Une fois cela fait, nous pouvons également annuler toutes les modifications.

Comment utiliser la mise en forme conditionnelle dans Excel VBA?

Voici les différents exemples d'utilisation de la fonction de mise en forme conditionnelle dans Excel à l'aide du code VBA.

Vous pouvez télécharger ce modèle Excel de mise en forme conditionnelle VBA ici - Modèle Excel de mise en forme conditionnelle VBA

Formatage conditionnel VBA - Exemple # 1

Nous avons des données de certains nombres et texte comme indiqué ci-dessous dans les colonnes A et B. Maintenant, nous avons déjà catégorisé la couleur que nous devons donner au nombre et au texte qui se trouve dans la cellule D2. Nous avons identifié la couleur jaune pour le numéro 1 et l'alphabet A et la couleur verte pour le numéro 2 et l'alphabet B.

Bien que la mise en forme conditionnelle VBA puisse être implémentée dans Module, l' écriture du code pour la mise en forme conditionnelle dans la feuille ne fera fonctionner le code que dans cette feuille. Pour cela, au lieu d'aller dans l'option Module, cliquez sur l'onglet Insérer pour insérer un module.

Étape 1: Maintenant, dans la première liste déroulante, sélectionnez Feuille de travail qui sera générale par défaut et dans la liste déroulante, sélectionnez automatiquement l'option SelectionChange comme indiqué ci-dessous.

Étape 2: Une fois que nous faisons cela, il activera automatiquement la sous-catégorie privée et la cellule cible sera en tant que plage.

Code:

 Sous-feuille de travail privée_SelectionChange (cible ByVal en tant que plage) End Sub 

Étape 3: Maintenant, écrivez le code, définissez d'abord une variable MyRange en tant que plage . Ou vous pouvez choisir n'importe quel autre nom au lieu de MyRange selon votre choix.

Code:

 Sub Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range End Sub 

Étape 4: Utilisez Set et choisissez la plage définie comme indiqué ci-dessous.

Code:

 Sous-feuille privée Worksheet_SelectionChange (cible ByVal en tant que plage) Dim MyRange As Range Set MyRange = End Sub 

Étape 5: Après cela, sélectionnez la feuille de calcul à laquelle nous voulons appliquer la mise en forme conditionnelle. Ici, notre feuille est Sheet1. Nous pouvons également mettre la séquence sur 1 au lieu d'écrire Sheet1. Et puis sélectionnez la plage de ces cellules que nous devons formater. Ici, notre gamme va de la cellule A1 à B8.

Code:

 Sous-dossier privé Worksheet_SelectionChange (cible ByVal en tant que plage) Dim MyRange en tant que plage définie MyRange = Worksheets ("Sheet1"). Range ("A1: B8") End Sub 

Étape 6: Ouvrez maintenant une boucle For Each-Next comme indiqué ci-dessous. Et commencez par sélectionner la variable définie par cellule MyRange .

Code:

 Sous-feuille privée Worksheet_SelectionChange (cible ByVal en tant que plage) Dim MyRange en tant que plage Définir MyRange = Worksheets ("Sheet1"). Plage ("A1: B8") pour chaque cellule de MyRange 

Étape 7: Maintenant, ouvrez à nouveau une boucle If-Else.

Code:

 Sous-dossier privé Worksheet_SelectionChange (cible ByVal en tant que plage) Dim MyRange en tant que plage Définir MyRange = Worksheets ("Sheet1"). 

Il s'agit de la région où nous attribuerions les couleurs à tous les nombres et alphabets disponibles dans notre gamme.

Étape 8: Écrivez le code, si la valeur de la cellule est 1, puis la couleur intérieure, la cellule de la plage sélectionnée qui va de A1 à B8 sera verte. Et pour le vert, nous avons un code de couleur qui lui est assigné comme 6.

Code:

 Sous-dossier privé Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") For Each Cell In MyRange If Cell.Value Like "1" Then Cell.Interior.ColorIndex = 6 End If Next End Sub 

Étape 9: Maintenant, pour la valeur de cellule numéro 2. Sinon, si la valeur de cellule d'une cellule de la plage sélectionnée est 2, la couleur intérieure de cette cellule sera jaune. Et pour le jaune, nous avons un code de couleur qui lui est attribué comme 4.

Code:

 Sous-dossier privé Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") For Each Cell In MyRange If Cell.Value Like "1" Then Cell.Interior.ColorIndex = 6 ElseIf Cell.Value comme "2" Then Cell.Interior.ColorIndex = 4 End If Next End Sub 

Pour chaque couleur, nous avons différents codes de couleur qui leur sont attribués, qui vont de 1 à 56. Alors que le code numérique 1 est attribué à la couleur noire et le numéro 56 est affecté à la couleur gris foncé. Entre les deux, nous avons différentes autres nuances de couleurs que nous pouvons trouver dans Microsoft Documents.

Étape 10: Si l'une des réponses ci-dessus

la condition est FAUX alors nous aurions un autre Else si la condition où si la valeur de la cellule est A alors la couleur intérieure de la cellule sera Jaune. Et pour le jaune à nouveau, nous attribuerons le code 6.

Code:

 Sous-dossier privé Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") For Each Cell In MyRange If Cell.Value Like "1" Then Cell.Interior.ColorIndex = 6 ElseIf Cell.Value comme "2" puis Cell.Interior.ColorIndex = 4 ElseIf Cell.Value comme "A" Then Cell.Interior.ColorIndex = 6 End If Next End Sub 

Étape 11: Faites la même chose pour la valeur de cellule B également, avec le code couleur 4 vert.

Code:

 Sous-dossier privé Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") For Each Cell In MyRange If Cell.Value Like "1" Then Cell.Interior.ColorIndex = 6 ElseIf Cell.Value comme "2" Puis Cell.Interior.ColorIndex = 4 ElseIf Cell.Value comme "A" Then Cell.Interior.ColorIndex = 6 ElseIf Cell.Value comme "B" Then Cell.Interior.ColorIndex = 4 End If Next End Sub 

Étape 12: Si l'une des conditions n'est pas vraie, alors pour Else, nous préférerons sélectionner le code couleur comme Aucun .

Code:

 Sous-dossier privé Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") For Each Cell In MyRange If Cell.Value Like "1" Then Cell.Interior.ColorIndex = 6 ElseIf Cell.Value comme "2" Puis Cell.Interior.ColorIndex = 4 ElseIf Cell.Value comme "A" Then Cell.Interior.ColorIndex = 6 ElseIf Cell.Value comme "B" Then Cell.Interior.ColorIndex = 4 Else Cell.Ineterios.ColorIndex = xlNone End If Next End Sub 

Étape 13: Comme le code est gros, pour compiler chaque étape de code, appuyez sur la touche fonctionnelle F8. Si aucune erreur n'a été trouvée, cliquez sur le bouton de lecture pour exécuter l'intégralité du code en une seule fois. Nous verrons, conformément à la règle de mise en forme conditionnelle définie dans le code VBA, la couleur des cellules a été remplacée par les codes de couleur sélectionnés, comme indiqué ci-dessous.

Étape 14: ce formatage est maintenant corrigé. Si nous voulons voir les changements de couleur, pour tester, modifions la valeur de n'importe quelle cellule, considérons A1 de 1 à 2. Nous verrons, la couleur de la cellule A1 est changée en vert.

C'est parce que nous avons déclaré que dans la plage A1 à B8, toute cellule contenant les chiffres 1 et 2 et les alphabets A et B, sera formatée en couleur jaune et verte comme indiqué dans les cellules D2 à E3.

Avantages et inconvénients

  • Il donne une sortie instantanée si nous avons d'énormes données. Alors que si nous appliquons la même chose à partir de l'option de menu Excel, il faudra du temps pour effacer la mise en forme de l'ensemble de données volumineuses.
  • Nous pouvons également effectuer tous les types de fonctions disponibles dans Excel pour le formatage conditionnel dans VBA.
  • Il n'est pas recommandé d'appliquer la mise en forme conditionnelle VBA pour un petit ensemble de données.

Choses dont il faut se rappeler

  • Il existe de nombreuses autres fonctions à part la mise en évidence des doublons et des cellules de même valeur. Nous pouvons changer le format de la cellule de n'importe quelle manière, par exemple en gras, en italique, en changeant la couleur de la police, en changeant la couleur d'arrière-plan, en mettant en évidence les valeurs entre une plage spécifique.
  • Une fois la mise en forme conditionnelle appliquée, nous pouvons modifier la règle, en fait, nous pouvons également supprimer les conditions de mise en forme. Pour que nos données reviennent à la normale.
  • Nous pouvons appliquer plusieurs conditions dans une macro.

Articles recommandés

Ceci est un guide de mise en forme conditionnelle VBA. Ici, nous discutons de l'utilisation de la fonction de mise en forme conditionnelle VBA Excel avec des exemples pratiques et un modèle Excel téléchargeable. Vous pouvez également consulter nos autres articles suggérés -

  1. Fonction Copier Coller dans VBA
  2. Fonction Excel de sous-chaîne
  3. Indice VBA hors plage
  4. Formule ISNUMBER Excel
  5. Formatage conditionnel pour les dates dans Excel

Catégorie: