Macro mise en forme conditionnelle
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 :
Merci à vous.
Je vous joints au besoin mon fichier exemple
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
J'ai trouvé la solution grâce à l'aide d'une personne. voici la solution si quelqu'un cherche la même chose :
Sub Mise_en_forme_Anc()
Dim i, n&, v&
n = "8"
For i = 1 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