Macro mise en forme conditionnelle

Y compris Power BI, Power Query et toute autre question en lien avec Excel
n
nooby74
Jeune membre
Jeune membre
Messages : 43
Inscrit le : 9 mars 2015
Version d'Excel : 2007

Message par nooby74 » 29 juillet 2015, 10:01

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
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
exemple12.xlsm
(17.13 Kio) Téléchargé 25 fois
n
nooby74
Jeune membre
Jeune membre
Messages : 43
Inscrit le : 9 mars 2015
Version d'Excel : 2007

Message par nooby74 » 29 juillet 2015, 16:19

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
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message