Créer une macro de formatting conditionnelle pour la valeur du text sur Excel

Très souvent, je dois créer des règles de formatting conditionnelles sur mes feuilles de calcul excel, pas toujours sur la même gamme, pour formater la couleur du text en fonction de ce qui est écrit.

La situation la plus courante est de transformer toutes les cellules dans la gamme qui ont le text "Effective" vert et gras, et "Pas efficace" rouge et gras.

J'ai essayé de créer cette macro à l'aide de la fonction Enregistrer la macro sur l'onglet Développeur, mais cela ne fonctionnait pas, le code était vide.

Comme je n'ai aucune connaissance sur VBA, je me demandais si quelqu'un pouvait m'aider à créer cette macro.

Définitions:

  • Il n'y a pas de plage fixe, il doit capturer la plage sélectionnée;
  • Format basé sur le text, si "Efficace" vert et gras, si "Pas efficace" rouge et gras.
  • Seulement pour une seule feuille.

[Résolu]

Sub EffectiveNot() ' ' EffectiveNot Macro ' Dim rStart As Range Set rStart = Selection Selection.FormatConditions.Add Type:=xlTextSsortingng, Ssortingng:="Effective", _ TextOperator:=xlContains Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority With Selection.FormatConditions(1).Font .Bold = True .Italic = False .Color = -11489280 .TintAndShade = 0 End With Selection.FormatConditions(1).StopIfTrue = False Selection.FormatConditions.Add Type:=xlTextSsortingng, Ssortingng:="Not effective", _ TextOperator:=xlContains Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority With Selection.FormatConditions(1).Font .Bold = True .Italic = False .Color = -16776961 .TintAndShade = 0 End With Selection.FormatConditions(1).StopIfTrue = False End Sub 

Vous avez vérifié votre ThisWorkbook ThisWorkbook -Module? L'enregistreur macro ajoute un nouveau module vide chaque jour que vous l'exécutez, puis déplace le code là-dedans …

C'est essentiellement ce que l'enregistreur de macro apparaît, après que je l'ai nettoyé un peu. N'hésitez pas à échanger la Selection avec un object de scope plus approprié pour votre utilisation.

 Option Explicit Sub format() With Selection With .FormatConditions .Delete With .Add(Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Not Effective""") With .Font .Color = vbRed .Bold = True End With .StopIfTrue = False End With With .Add(Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Effective""") With .Font .Color = vbGreen .Bold = True End With .StopIfTrue = False End With End With End With End Sub