Macro mise en forme conditionnelle

boyz

XLDnaute Nouveau
Bonjour bonjour,

Je suis face à une petite difficulté. Je souhaite réaliser une mise en forme conditionnelle via une macro. Je dispose en faite d'un tableau dans lequel via un formulaire j'ajoute des lignes et selon la ligne la mise en forme peut changer de plus elles ne sont pas réparties à intervalle régulier d'ou une macro.

Je souhaiterais pour mon exemple que lorsque la cellule A1 = "X" que la cellule se colore en rouge idem pour B1, C1.... J1.

J'ai tenté une macro mais je bloque à ligne 6 : Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=F9=""X""" et plus particulièrement sur le "F9". Je souhaiterais que cette valeur soit égale à ActiveCell.Offset(0,v) comme ça la valeur cible à laquelle doit être égale la mise en forme conditionnelle se déplace.

Pour finir lorsque j’exécute la macro pour i =0 ça marche mais pour i=1, il y un bug à la ligne : Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority avec le message suivant : ::( l'indice n'appartient pas à la selection. Si quelqu'un sait pourquoi je suis preneur.

Merci à vous.

Je vous joints au besoin mon fichier exemple

Code:
Sub Mise_en_forme()
'macro 2

Dim i, n&, v&

n = "0" 'nombre de colone avant le 1èere colone à mettre en forme

  For i = 0 To 10
  v = n + i
   Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=F9=""X"""
   ActiveCell.Offset(0, v).Select
   Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
   With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
   Next i
End Sub
 

Pièces jointes

  • exemple12.xlsm
    17.1 KB · Affichages: 19

jpb388

XLDnaute Accro
Re : Macro mise en forme conditionnelle

Bonjour à tous
essaye ceci
Code:
Sub Test()

    Cells.FormatConditions.Delete
    Range("A1:J1").FormatConditions.Add Type:=xlTextString, String:="x", _
        TextOperator:=xlContains
    Range("A1:J1").FormatConditions(Range("A1:J1").FormatConditions.Count).SetFirstPriority
    With Range("A1:J1").FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
    Range("A1:J1").FormatConditions(1).StopIfTrue = False
End Sub
 

boyz

XLDnaute Nouveau
Re : Macro mise en forme conditionnelle

Bonjour,

Merci pour ta réponse en reprenant ta syntaxe, j'ai réussi à obtenir ce que je souhaitais

Voici le code pour ceux qui en auraient besoin :

Code:
Sub Test()
Dim i, n&, v&
  
  n = "0"
  For i = 0 To 10
  v = n + i
  ActiveCell.Offset(0, v).FormatConditions.Delete
 ActiveCell.Offset(0, v).FormatConditions.Add Type:=xlTextString, String:="x", _
        TextOperator:=xlContains
  ActiveCell.Offset(0, v).FormatConditions(ActiveCell.Offset(0, v).FormatConditions.Count).SetFirstPriority
    With ActiveCell.Offset(0, v).FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
   ActiveCell.Offset(0, v).FormatConditions(1).StopIfTrue = False
   Next i
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 679
Messages
2 090 858
Membres
104 677
dernier inscrit
soufiane12